본문 바로가기
💻 네트워크 𝗡𝗲𝘁𝘄𝗼𝗿𝗸

[Network] DNS lookup 과정(DNS 동작 방식)

by 비타민찌 2022. 11. 18.
728x90

nslookup 은 name server lookup 의 약자로,

윈도우 명령프롬프트로 name server 에 대한 정보를 확인할 수 있다.

 

1.  브라우저에 naver.com 을 입력하면

 

2.  컴퓨터의 hosts 파일에 naver.com 의 ip 주소 정보가 있는지 확인한다.

*hosts 파일 : ip 주소와 hostname 을 매칭시켜놓은 텍스트 파일이며, 해당 컴퓨터 안에선 이 파일이 우선권을 갖는다. mac os 기준 hosts 파일의 위치는 /etc/hosts.

/etc/hosts 파일 변경 후, dscacheutil -flushcache 명령어로 캐시를 갱신하면 바로 적용된다.

 

3.  hosts 파일에 정보가 없으면, 컴퓨터에 있는 local DNS cache에 ip 주소가 있는지 확인한다.

Local DNS Server 는 ip를 찾기 위해 가장 먼저 찾게 되는 곳이다.

Local DNS 서버에 내가 찾는 도메인의 ip 주소가 캐싱되어 있다면 여기서 끝.

Local DNS 서버에 ip 주소가 없다면, Root DNS 서버에 물어본다.

 

/etc/resolv.conf 파일에서 내 컴퓨터의 Local DNS 서버가 뭔지 확인할 수 있다.

 

이용하는 ISP가 제공하는 DNS 주소를 볼 수 있는데, 아래 결과는 통신사에서 제공하는 DNS 말고도 여러 Public DNS 들이 있고(google, cloudflare 등), 쉽게 변경할 수 있다.

cat /etc/resolv.conf

 

4. hosts 파일에서도, DNS cache 에서도 ip 주소를 알아낼 수 없다면, DNS 서버에 물어봐야 한다.

DNS 쿼리를 보내고 응답을 받는 과정을 알려면, 도메인의 구조를 먼저 알아야한다. 도메인의 구조는 아래와 같다.

어떤 DNS 서버에 도메인네임에 대한 쿼리를 날렸을 때, 한 번에 ip 주소를 돌려줄 수 있는 네임서버는 없다. 각각의 레벨을 담당하는 네임서버가 있으며, 각 서버는 바로 하위 레벨 도메인에 대한 네임서버 주소 밖에 알지 못한다. Root Server 는 Top-Level 의 정보 밖에 모르고, Top-Level 서버는 Second-Level 의 정보 밖에 모른다. 따라서, DNS 요청이 들어올 경우 Root 부터 시작해서 단계적으로 ip 주소를 찾아가게 된다. 아래는 naver.com의 IP 주소를 조회하는 과정이다.

이렇게 여러 네임서버를 거쳐 ip 주소를 찾는 과정을 Recursive Query 라고 함.

 

한대의 DNS 서버가 모든 도메인에 대한 정보를 가지고 있는 것을 어려운 일이다. 그래서 인터넷에서는 도메인 정보를 분산해서 저장하고 있다. 루트 도메인은 전세계에 13개가 존재하고, 이 도메인의 IP는 잘 변경되지 않기 때문에 모든 DNS 서버는 루트 도메인을 알고 있다. 바로 여기가 출발점이다.

 

[ DNS 서버 ] DNS란? 도메인과 URL의 차이, URL의 구조, 도메인의 계층 관계, DNS 동작 방식

DNS가 뭔가요? 🔄 DNS 란? DNS 또는 Domain Name System은, 사람이 읽을 수 있는 '도메...

blog.naver.com

 

'가장 가까운 DNS 서버'의 의미는 위의 그림에서 가장 가까운 DNS 서버의 의미는 클라이언트에 기본적으로 등록되어 있는 DNS 서버를 의미한다. 클라이언트는 최소 한개 이상의 DNS 서버가 등록되어 있어야, 이 DNS 서버를 이용해서 접속하고자 하는 도메인에 대한 IP를 알아낼 수 있다. 기본 DNS라고도 하는데 이 정보는 인터넷에 연결하면 인터넷 서비스 제공자(KT, SK브로드밴드 등)에 의해서 자동으로 설정된다.

 

 

 

참고: https://blog.naver.com/ghdalswl77/222331240558

https://lecor.tistory.com/78

728x90

댓글