본문으로 바로가기

DNS에 대하여(2) - DNS 동작원리

category ComputerScience/Network & Web 2022. 3. 30. 12:20

새벽에 DNS 실습부분만 쓰고 잠들었다. 이전글은 아래에 남겨둔다.

https://codingexplore.tistory.com/89

 

DNS에 대하여(1) - displaydns, flushdns 명령

ARP 캐시 테이블에 이어 이번에는 DNS 캐시 테이블과 DNS 동작에 대해 정리해보고자 한다. 개념 정리에 앞서 간단한 실습을 해보았다. 1. DNS 캐시 조회 (displaydns) - ipconfig/displaydns DNS 캐시 목록을 조

codingexplore.tistory.com

 

1. DNS 동작과정

 

1) 도메인 입력

도메인 입력

사용자가 주소창에 도메인을 입력하고 엔터를 누른다.

(cmd에서 ping을 찍는 것과 동일한 단계)

 

2) hosts파일 탐색

hosts파일 위치

OS가 위 도메인(naver.com)에 대응하는 IP주소를 hosts파일에서 찾아본다.

hosts파일에 도메인-IP주소 쌍이 등록되어있다면 따로 DNS에서 주소정보를 받지 않아도 된다.

windows 기준으로 hosts파일의 위치는 C:\Windows\System32\drivers\etc\hosts 다.

 

hosts 파일

hosts파일을 메모장으로 열어보면

IP주소도메인정보를 확인할 수 있다. (#은 주석이므로 무시)

내 경우는 hosts에 네이버에 대한 정보가 없으므로 다음 단계로 넘어간다.

 

 

왜 DNS가 있는데도 hosts를 사용하는지?

 

궁금하니까 찾아보았다.

① 사이트 엑세스 속도 향상 (요즘엔 네임서버의 성능이 좋아서 사실상 큰 차이는 없다고..)

② 보안문제 예방 (DNS 질의를 탈취하여 위변조 사이트로 유도하는 문제를 예방)

아이러니 하게도 보안문제를 예방하면서도 hosts파일 자체를 위변조하는 해킹 가능성이 있다.

③ 접속 주소 우회 (이게 주용도인 것 같다)

hosts탐색은 DNS 이전에 이루어진다.

그래서 naver.com   내블로그의 IP 주소 이렇게 hosts 파일에 입력해두면

www.naver.com 을 입력했을때 내 블로그로 접속되도록 설정할 수 있다. (내 PC한정 즐겨찾기 느낌) 

인증을 우회하고 싶을 때(하지말자. 돈내고 쓰자), 네임서버가 말을 안들을 때 사용하면 된다.

 

3) DNS 캐시 테이블 검색

DNS서버로 질의를 요청하기에 앞서 캐시 테이블을 먼저 확인해본다.

있으면 그 정보를 사용하면 되고 없으면 다음단계로 넘어간다.

 

4) 로컬 DNS 서버로 질의 요청

hosts파일에 naver.com이 없으니까 이제 DNS서버에 물어봐야 한다.

OS가 로컬 DNS 서버의 IP주소로 도메인 네임(naver.com)에 대한 질의를 요청한다. (네이버 IP주소 알려줘)

그럼 DNS서버가 도메인의 IP주소를 알려준다.

 

에잉 그럼 DNS서버의 IP는 어떻게 알아요?

ipconfig/all 명령을 복습하자.

https://codingexplore.tistory.com/87

 

DHCP, DNS, Physical Address - ipconfig/all 명령

ipconfig 기본 명령 정리에 이어서 ipconfig/all 명령에서 DHCP, DNS, Physical Address 개념에 대해 정리해 보려고 한다. 다음은 내 노트북에서 ipconfig/all 명령을 실행한 결과이다. 1. DHCP 사용 내 노트북은..

codingexplore.tistory.com

이미 네트워크 설정할 때 컴퓨터에 DNS서버의 IP를 적어놓기 때문에

설정만 제대로 되어있다면 언제든지 DNS서버의 IP를 조회할 수 있다.

 

5) DNS 캐시 테이블 반영

사실 ARP 캐시 테이블 작동원리와 거의 흡사하다.

DNS서버로부터 IP주소를 받으면 다음부터는 똑같은 일 반복 안하도록

도메인-IP주소 정보를 캐시 테이블에 반영한다.

이전글에서 실습했던 ipconfig/displaydns 명령을 통해 등록된 정보를 확인할 수 있다.

관련 실습 내용은 아래 링크에 정리해두었다.

https://codingexplore.tistory.com/89

 

DNS에 대하여(1) - displaydns, flushdns 명령

ARP 캐시 테이블에 이어 이번에는 DNS 캐시 테이블과 DNS 동작에 대해 정리해보고자 한다. 개념 정리에 앞서 간단한 실습을 해보았다. 1. DNS 캐시 조회 (displaydns) - ipconfig/displaydns DNS 캐시 목록을 조

codingexplore.tistory.com

 

 

2. 결론

- hosts파일은 내PC한정 즐겨찾기 느낌

- DNS 질의는 '네이버 IP주소 알려줘'

 

 

** DNS cash table vs ARP cash table

질의를 요청하고 응답받아 캐쉬 테이블에 반영하는 작동 과정이 거의 동일하다.

ARP DNS
출발지와 목적지의 network ID 비교 hosts파일 검색
ARP 캐시 테이블 검색 DNS 캐시 테이블 검색
ARP 질의 수행 DNS 질의 수행
ARP 캐시 테이블에 MAC address 반영 DNS 캐시 테이블에 destination IP 반영

 

차이점을 정리해보았다. 기억해두자.

ARP DNS
IP주소와 MAC주소의 대응관계 도메인네임과 IP주소의 대응관계
브로드 캐스트 방식으로 질의 요청 (현상수배) 유니 캐스트 방식으로 질의 요청 (DNS서버에 직통으로)
LAN 영역(ARP영역) 네트워크 영역

 

 

네트워크 강의를 들을 때는 따로 비교하지 않았었는데

옆에 두고보니 원리 자체는 똑같다는게 신기하다.

한번씩 블로그에 정리하면서 궁금한 점도 검색해보니

머릿속에 개념을 정립하는데 도움이 많이 되는 것 같다.

반응형