📮

DNS와 작동 원리


Domain Name System

DNS를 비유하자면 인터넷 전화번호부라고 할 수 있겠다. 예를 들어, 브라우저에 woong-jae.com을 입력하면, 컴퓨터는 사용자가 뭘 원하는 건지 알아들을 수 없다. 따라서 컴퓨터가 이해할 수 있는 언어로 변환해 줘야한다. DNS는 사람이 읽을 수 있는 도메인 이름을 기계가 읽을 수 있는 IP 주소로 변환해준다.

DNS Server

  • DNS ressolver(DNS 리커서): DNS 리커서는 DNS 쿼리의 첫 번째 단계다. 요 녀석은 클라이언트와 DNS 네임 서버 사이의 중계자 역할을 해준다. 클라이언트로부터 DNS 쿼리를 받으면 캐시된 데이터로 응답하거나, 요청을 Root, TLD, Authorative 네임서버 순서로 보내 IP 주소를 얻어 응답해준다.

  • Root Name Sever: 루트 서버는 호스트 이름을 IP 주소로 변환하는 첫 번째 단계다. 루트 서버는 도메인 이름을 포함한 DNS 리커서의 쿼리를 수용하며, 루트 네임서버는 해당 도메인의 확장자(.com, .net, .org, etc...)에 따라 DNS 리커서에 TLD 네임 서버를 보내 응답한다.

  • TLD(Top Level Domain) Name Server: TLD 네임서버는 .com, .net 또는 URL의 마지막 점 뒤에 오는 것 같은 일반적인 도메인 확장자를 공유하는 모든 도메인 이름의 정보를 유지한다. woong-jae.com을 root 네임서버에 보낸 후 다시 .com TLD 네임서버에 보내고, 해당 네임서버는 해당 도메인의 권한 있는 네임서버를 가리켜 응답하게 된다.

  • Authorative Name Server: 네임 서버 쿼리의 종착지다. 요청한 호스트 이름의 IP 주소를 반환해준다.

DNS query

DNS 쿼리

  • Iterative Query: 위의 예시처럼 '방문한 서버'가 '방문해야하는 서버'의 주소를 넘겨준다.

  • Recursive Query: 주소를 찾는 부담을 방문한 서버에 넘겨주는 방식이다.

iterative vs recursive


참조: