새벽에 DNS 실습부분만 쓰고 잠들었다. 이전글은 아래에 남겨둔다.
https://codingexplore.tistory.com/89
1. DNS 동작과정
1) 도메인 입력
사용자가 주소창에 도메인을 입력하고 엔터를 누른다.
(cmd에서 ping을 찍는 것과 동일한 단계)
2) hosts파일 탐색
OS가 위 도메인(naver.com)에 대응하는 IP주소를 hosts파일에서 찾아본다.
hosts파일에 도메인-IP주소 쌍이 등록되어있다면 따로 DNS에서 주소정보를 받지 않아도 된다.
windows 기준으로 hosts파일의 위치는 C:\Windows\System32\drivers\etc\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
이미 네트워크 설정할 때 컴퓨터에 DNS서버의 IP를 적어놓기 때문에
설정만 제대로 되어있다면 언제든지 DNS서버의 IP를 조회할 수 있다.
5) DNS 캐시 테이블 반영
사실 ARP 캐시 테이블 작동원리와 거의 흡사하다.
DNS서버로부터 IP주소를 받으면 다음부터는 똑같은 일 반복 안하도록
도메인-IP주소 정보를 캐시 테이블에 반영한다.
이전글에서 실습했던 ipconfig/displaydns 명령을 통해 등록된 정보를 확인할 수 있다.
관련 실습 내용은 아래 링크에 정리해두었다.
https://codingexplore.tistory.com/89
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영역) | 네트워크 영역 |
네트워크 강의를 들을 때는 따로 비교하지 않았었는데
옆에 두고보니 원리 자체는 똑같다는게 신기하다.
한번씩 블로그에 정리하면서 궁금한 점도 검색해보니
머릿속에 개념을 정립하는데 도움이 많이 되는 것 같다.
'ComputerScience > Network & Web' 카테고리의 다른 글
TCP vs UDP - netstat -n명령, 3-Way-Handshaking (0) | 2022.04.03 |
---|---|
DNS에 대하여(1) - displaydns, flushdns 명령 (0) | 2022.03.30 |
ARP 캐시 테이블에 대하여 (0) | 2022.03.29 |
DHCP, DNS, Physical Address - ipconfig/all 명령 (0) | 2022.03.29 |
IP address, subnet mask, gateway - ipconfig 명령 (0) | 2022.03.17 |