본문 바로가기

Dev/Network, Web

[Network] 도메인? DNS?

도메인==웹사이트 주소? 에 대한 답은, 반만 정답이라고 할 수 있겠다.

컴퓨터의 논리적 주소는 IP 주소이고, 이는 172.217.171.196 같은 숫자 형태이다. 그러므로 어떤 컴퓨터(서버)에 데이터를 요청하기 위해서는 해당 컴퓨터의 IP주소를 알아야 한다, 하지만 우리는 브라우저 주소창에 IP주소가 아닌 문자열로 된 주소를 입력한다. 왜냐하면 사이트마다 IP주소를 다 외우고 기억하기 힘들기 때문인데, 이 편리한 기능을 제공해주는 시스템이 바로 DNS(Domain Name System)이다.

 

도메인 시스템의 원리를 간단히 요약하자면, DNS Server(네임서버)라는 곳에서 도메인(문자열)이 실제로 어떤 IP(숫자)인지 파악해 저장해두고 있다가, 도메인명으로 요청이 들어오면 IP주소로 바꿔 요청을 보내는 방식이라고 생각하면 된다.

참고)웹사이트 도메인 주소로 ping을 보내거나 nslookup을 이용하면, 해당 도메인의 실제 IP주소를 확인할 수 있다.

 

도메인의 예시로, https://www.google.com 주소를 하나하나 분해해보면,

1. 프로토콜: https, ftp 등이 올수 있음

2. 3레벨 도메인: www

3. 2레벨 도메인: google

4. 최상위 레벨 도메인(TLD): com, org, net, gov 등 

부가적으로,

서브 도메인: co, ac, or, go 등

국가코드 최상위 레벨 도메인(ccTLD): kr, us, jp, cn 등

등으로 구성되어 있다.

 

어떻게 도메인이 IP주소로 변환되어 해당 서버에 요청을 보내고 클라이언트에게 응답을 주는지 예시를 통해 조금 더 자세히 알아보자.

1. 클라이언트가 브라우저에서 주소창에 naver.com을 입력한다.

2. 브라우저로부터 요청을 받은 Recursive DNS Server(DNS Resolver라고도 불리며, ISP의 DNS Server등이 여기 속함)라는 서버는, 자신이 naver.com에 해당하는 IP를 가지고 있는지 확인한다.

3-1. 캐시에 저장되어 있다면 8번으로 이동

3-2. 캐시에 저장되어 있지 않다면 4번으로 이동

4. Recursive DNS Server에서 Root DNS Server로 naver.com이라는 도메인을 넘겨준다.

5. Root DNS Server -> TLD DNS Server(com, org, net 등의 최상위 레벨 도메인을 분류하는 서버) -> Authoritative DNS Server(AWS, 가비아, 후이즈 등 도메인 정보를 가지고있는 여러 업체의 네임서버) 순서로 naver.com 도메인의 IP가 어느 DNS 서버에 저장되어 있는지 확인한다.

6. naver.com라는 도메인이 저장되어있는 Authoritative DNS Server에서 naver.com에 해당하는 IP를 Recursive DNS Server로 넘겨준다.

7. Recursive DNS Server에서 해당 IP주소를 캐싱해 저장해 둔다.

8. Recursive DNS Server에서 브라우저로 naver.com의 IP주소를 전달하고, 브라우저는 드디어 naver.com의 IP로 서버에 데이터를 요청하게 된다.

9. naver.com 서버에서 브라우저에게 응답을 리턴한다.

위와 같은 과정이 있기 때문에 우리가 브라우저에서 IP주소가 아닌 도메인을 입력해도 데이터를 받아볼 수 있는 것이다.

 

ISP(Internet Service Provider)

인터넷 IP 제공자. 국내에는 KT, LG 등이 통신사가 있다