오늘은 재택근무를 했습니다. 아무리 생각해도 공부할 내용은 정말 많은 것 같습니다ㅎㅎ.. 사실 DNS
라고하면 '아 www.naver.com을 치면 다른 아이피로 변환되어 요청되는구나..' 정도로만 생각했는데 오늘은 그 동작 과정에 대해서 학습하였습니다.
DNS는 TCP/IP
네트워크에서 사용되는 네임 서비스의 구조입니다. 우리가 인터넷을 편리하게 쓰게 해주는 기능으로, 영문/한글 주소를 IP 네트워크에서 찾아갈 수 있는 IP로 변환해 줍니다.
모든 웹 사이트 주소를 도메인 대신 아이피로 외운다고 생각하면 벌써 머리가 아프죠?
이 DNS를 운영하는 서버를 네임서버
라고 합니다. 서버 구축에 대한 지식이 있으면 어렵지 않게 구성하는 것이 가능합니다.
(사진 번호와 관계 없습니다)
1. PC 브라우저에서 www.naver.com 을 입력합니다.
2. PC는 미리 설정되어 있는 DNS(Local DNS)에게 "www.naver.com"이라는 hostname에 대한 IP주소를 물어봅니다.
3. Local DNS에는 "www.naver.com"에 대한 캐싱되어 있지 않다고 가정하겠습니다.
4. Local DNS는 "www.naver.com"에 대한 IP주소를 찾아내기 위해 다른 DNS 서버들과 통신(DNS Message)을 시작합니다. 먼저 Root DNS 서버에게 "www.naver.com"에 대한 IP주소를 아는지에 대해 질의합니다.
5. Local DNS가 Root DNS에 질의하기 위해 각 Local DNS 서버에는 Root DNS 서버의 정보 (IP Address)가 미리 설정되어 있어야 합니다.
6. Root DNS 서버는 "www.naver.com"에 대해 모릅니다. naver.com은 .com 도메인이기 때문에 Local DNS 서버에게 com Domain을 관리하는(TLD) DNS서버의 정보를 포함하여 응답합니다.
7. Local DNS 서버는 "com Domain"을 관리하는 DNS 서버에게 "www.naver.com"에 대한 IP 주소를 아는지에 대해 질의합니다.
8. "com Domain"을 관리하는 DNS 서버또한 해당 정보가 없습니다. Local DNS 서버에게 "naver.com" 도메인을 관리하는 DNS서버의 정보를 포함하여 응답합니다.
9. Local DNS 서버는 "naver.com" 도메인을 관리하는 DNS 서버에게 "www.naver.com"에 대한 IP주소를 질의합니다.
10. 이 DNS 서버는 naver.com 도메인을 직접 매니징하고 있으므로 해당 IP 주소를 반환할 수 있게 됩니다.
11. 이를 수신한 Local DNS는 www.naver.com 에 대한 IP주소를 캐싱하고 단말(PC)에 전달해 줍니다.
이와 같이 Local DNS 서버가 여러 DNS 서버를 차례대로 (Root DNS → com DNS → naver.com DNS)물어봐서 그 답을 Recursive Query라고 부릅니다.
루트 DNS가 알고 주소를 반환해주는 경우는 있나요? 모든 인터넷 주소가 다 xxx.xxx.com 이런 형식이니까 모든 DNS 질의가 말씀하신 예제에서처럼 최종 DNS까지 질의를 해야 주소를 받을 수 있는거 아닌가요