Server

[WEB/Server] DNS 1탄 - IP주소, 도메인, DNS(도메인 네임 시스템) 개념

somuxsomu 2024. 1. 2. 14:55

DNS 1탄 

 

IP주소, Host(호스트), Domain(도메인), 도메인 구성요소,

DNS(Domain Name System - 도메인 네임 시스템) 개념

 

 

 

 

DNS는 백엔드 개발자라면 

무조건 필수적으로 알아야하는 개념이기때문에,

어려워도 완벽하게는 아니더라도

어떤 역할을 하는지 이해를 하고 넘어가는것이 좋다.

 

본격적인 시작을 하기 전에,

 

DNS(Domain Name System)을 간략하게 설명하자면

도메인 이름을 IP주소로 변환 시켜주는 시스템 이다.

 

 

DNS 대한 자세한 설명을 하기 전에 IP 주소, 도메인 이름 개념에 대해 먼저 알아보자.

 


IP Adress (IP주소) ?

인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 타블릿, 서버 등등)들은

각각의 장치를 식별할 수 있는 고유한 주소이며 숫자로 구성되어 있다.

 

👉🏽 예) 115.68.24.88 (IPv4) , 2400:cb00:2048:1::c629:d7a2 (IPv6)

 

 

IP주소는 네트워크 주소 호스트 주소를 조합한 주소 체계를 가지고 있다.

- 네트워크 주소 : IP 기기가 속해 있는 네트워크를 구분

- 호스트 주소 : 네트워크 안에 있는 IP 기기를 구분

 

 

이런 주소 체계를 표현하는 방법은 IPv4 IPv6로 표현할 수 있다.

 

🔸 IPv4 ?

IPv4 주소는 (.)마침표로 구분되며, 4개의 8비트 필드로 구분된 10진수로 작성된다.

비트로 표현하면 영역마다 8비트로 이루어지며 총 4개의 영역으로 구분되므로 32비트를 사용한다.

하지만 기술이 급속도로 발전하면서 단말기의 갯수도 기하급수적으로 증가하다 보니

40억개에 달하는 IP주소의 수가 부족하게 되어 IPv6라는 확장된 주소 체계가 등장하게 되었다.

 

👉🏽 192.168.2.33

      ← 4 Octets →

 

🔸 IPv6 ?

IPv6 주소는 128비트체계로 구성 되어 있으며,

그 표현 방법은 128비트를 16비트씩 8부분으로 나누어지며,

각 구분은 16진수로 표현한다.

128비트 주소 체계를 사용하게 되면 최대 1조개 이상의 주소를 가질 수 있는게 장점이다.

또한 IPv4에서 사용하는 클래스 계층 구조를 사용하지 않고

유니캐스트, 멀티캐스트 형태의 유형으로 할당하기 때문에 할당된 주소의 낭비 요인이 사라지게 된다.

 

 👉🏽 FDEC : BA98 : 7654 : 3210 : ADFC : BDFF : 2990 : FFFF

      ←————————— 16 Octets ————————→

 


호스트(Host)

 

네트워크에 연결 되어 있는 컴퓨터들을 호스트(Host)라고 칭한다.

인터넷은 TCP/IP 프로토콜을 이용하여 통신을 하는데,

통신을 하려고 해도 목적지와 출발지가 없으면 어디로 데이터를 보낼지 받을지 모른다.

이것을 IP주소를 통해 정할 수 있다.

 

즉, 호스트는 IP주소를 갖는 시스템이라고 할 수 있다.

호스트는 IP를 가지고 있고 양방향 통신이 가능한 컴퓨터 라고 생각하면 된다.

 


도메인(Domain) ?

 

네트워크 상에서 컴퓨터가 서비스하는 호스트 주소를 이름으로 부르는 것이다.

문자로 구성된 도메인의 경우 IP보다 의미를 알기 쉽고 사용하기도 편리하다.

문자로 구성되어 있다.

 

👉🏽 google.co.kr , naver.com

 

- 도메인의 구성요소와 구조

 

인터넷상에서 사용되는 도메인은 전 세계적으로 고유하게 존재하는 이름이기 때문에,

정해진 규칙 및 체계에 따라야 하며, 임의로 변경하거나 생성 될 수 없다.

 

 

[이미지 출처 : novell.com ]

 

 

도메인들은 상단의 이미지와 같이 나무를 거꾸로 한 역트리(Inverted Tree)구조 계층적으로 구성이 되어있다.

Root(또는 .dot), Top-Level-Domain, Second-Level-Domain, Third-Level-Domain 이루어져 있다.

 

 

인터넷 도메인의 체계에서 최상위 Root(루트)로, 인터넷 도메인의 시작점이 된다.

바로 아래의 단계에 있는 것 을 1단계 도메인 또는 최상위도메인(TLD, Top Level Domain)이라고 부르며,

그 다음 아래 단계를 2단계 도메인 또는 차상위 도메인(SLD, Second Level Domain)이라고 한다.

 

도메인 구조

 

 

🔸 Top-Level-Domain (최상위 도메인)

 

kr 각 국가별 사용을 위해 정의한 도메인으로, ISO 3166 [4]에서 정의하는 국가 코드에 기반한다.

com 기업과 같은 상용 조직을 위한 도메인
edu 교육기관들을 위한 도메인
net 네트워크 서비스 제공자와 관련된 시스템을 위한 도메인
org 다른 TLD에 속하지 않는 비정부 단체를 위한 도메인
int 국제 협약에 의해 만들어진 조직을 위한 도메인
gov 정부 기관이나 단체를 위한 도메인
mill 미국 국방성 관련 기관에서 사용하도록 정의한 도메인
arpa IP주소를 도메인 이름으로 매핑하기 위해 사용 되는 특수 도메인

 

 

최상위 도메인에는 여러 종류가 있는데, 

우리가 평소에 많이 접하는 도메인은 .com, .org, .net 등이 있는데,

특별한 제한 없이 전세계적으로 많이 쓰이는 도메인들이다.

이런 도메인을 gTLD(generic TLD, 일반 최상위 도메인)라고 한다.

 

반면,

국내 정부 및 기관 사이트에 자주 보는 co.kr, or.kr과 같은 도메인들은 .kr 도메인의 하위 도메인이다.

.kr은 ccTLD(country code TLD, 국가코드 최상위 도메인) 중 하나이다.

 

🔸 Second-Level-Domain (차상위 도메인)

co  영리 목적의 단체, 기업체
go 정부기관
ac 교육기관
ne, nm 네트워크 관리 기관
or 비영리 기관
re 연구소, 연구단체

com, net, org 등 과 같은 gTLD의 경우에는 SLD와 함께 사용하지 않고,

국가를 나타내는 kr, jp, cn과 같은 ccTLD는 SLD를 함께 쓰기도 하고 쓰지 않기도 한다.

 

 

 👉🏽 www.google.co.kr. 로 예를 들자면

맨 끝의 '.'이 Root 도메인이다. 모든 도메인의 Root가 같기 때문에 보통 생략된다.

맨 끝에 '.'을 붙이고 들어가도 정상적으로 접속할 수 있다.

 

T(Top)LD는 그 다음인 .kr이고,

S(Second)LD는 그 다음인 .co 이고,

google은 도메인(컴퓨터)이름이고,

T(Third)LD는 www이다.

 

 


DNS (Domain Name System - 도메인 네임 시스템)?

 

DNS는 사전적 정의로는,

호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나

그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다.

특정 컴퓨터(또는 네트워크로 연결된 임의의 장치)의 주소를 찾기 위해,

도메인 이름을 숫자로 된 식별 번호(IP 주소)로 변환해 준다.

 

 

네트워크 상에서 컴퓨터들은 문자로 이루어져 있는 도메인이 아닌,

숫자로 이루어진 IP주소를 이용하여 서로를 구별하고 통신한다.

즉, 네트워크를 통해 컴퓨터를 접속하기 위해서는 IP주소를 이용해야 한다.

 

하지만, 길고 복잡한 숫자로 이루어진 IP주소를 사용자가 외우기 쉽지 않기 때문에

쉽게 기억할 수 있는 문자 주소로 이루어진 도메인 이름으로 웹 브라우저 주소창에 웹 사이트를 접속한다.

 

 

그럼,

사용자가 주소창에 입력한 도메인을 IP주소로 변환을 해줘야 하는데

이 변환을 도와주는 시스템이 바로 DNS(Domain Name System)이다.

 

즉, DNS는 웹사이트의 IP주소와 도메인 주소를 이어주는 환경/시스템 이다.