맛동산이

네트워크) DNS서버 조회 본문

CS/네트워크

네트워크) DNS서버 조회

진ddang 2023. 7. 5. 16:02

본 내용은 “성공과 실패를 결정하는 1%의 네트워크” 를 참고하여 작성하였습니다.



DNS서버 조회

DNS서버에 IP를 조회하기 위해서 우리는 리졸버를 사용했으며 리졸버는 DNS에 요청메세지를 만들게 된다.

이렇게 만든 메세지를 OS 의 프로토콜 스택에 요청하여 DNS서버로 요청을 보내게 된다.

이렇게 보낼 메세지에는 3개의 정보가 포함되어 있다.

  1. 이름 : 서버나 메일 목적지(도메인, IP주소)
  1. 클래스 : 처음에는 인터넷이외에도 다양한 네트워크가 존재하였기 때문에 이러한 항목이 있지만, 지금은 IN이라는 클래스(인터넷) 밖에 존재하지 않는다.
  1. 타입 : 어떤 타입의 정보가 지원되는지 에 대한 정보

    타입은 데이터에서 받아오고 싶은 내용이다. 예를들어 IP라면 A타입, 메일주소라면 MX라는 타입이다.

이러한 정보를 포함한 메세지를 DNS서버가 받게되고 해당항목들이 부합하는 정보를 찾게된다.

테이블에서의 조회

도메인 계층

하나의 도메인서버가 모든 도메인정보를 가질수 없기 때문에 우리는 도메인을 분산해서 저장하게 된다.

이렇게 분산된 도메인은 계층을 가지게 되는데, 이러한 계층을 통해서 우리는 도메인명을 짓게 된다.

www.cyber.co.kr이라는것은 
kr 한국도메인서버에 co라는 서버에 cyber이라는 도메인에서 www서버에 있다는 뜻이다.

이러한 도메인 서버또한 사실은 도메인명으로 이루어져 있기 때문에, IP를 상위도메인에서 저장하고 있는다.

즉, cyber이라는 하위 도메인 서버의 ip를 co라는 도메인에 저장하고,

co라는 도메인 ip를 kr이라는 상위 도메인서버에 저장하는것으로, 빠르게 DNS서버의 IP를 알수있게 되는것이다.

또한 기본적으로 우리는 com이나 kr이라는것을 마지막에 쓰지만, 사실은

www.cyber.co.kr.이라고 . 이 뒤에 붙는다

이것은 루트도메인을 의미하며 전세계게 13개밖에 없다.

도메인을 등록한다는것은 이러한 과정을 거쳐서 결국 루트도메인서버에 IP를 올린다는 것이다.

도메인 검색

따라서 도메인의 검색또한 이러한 도메인명을 최상위 도메인 부터 하나씩 IP주소를 받아와 결국 우리가 원하는 IP주소를 얻게 되는것이다. 다음과 같은 순서를 가진다.

www.cyber.co.kr.이라고 하는 주소라면

  1. 도메인주소를 루트 DNS서버에 요청한다. 루트도메인은 kr DNS서버에 해당하는 IP를 알려준다.
  1. kr IP 주소를 가지고 요청한다. kr서버는 co DNS서버에 해당하는 IP를 알려준다.
  1. co IP 주소를 가지고 요청한다. co서버는 cyber DNS서버에 해당하는 IP를 알려준다.

이렇게 해서 최하위 계층까지 가서 최종적으로 우리가 원하는 IP값을 해당 DNS서버가 컴퓨터에게 리턴해주는 과정을 거치게 된다.

캐시

하지만 계속해서 이러한 계층을 거치는것은 상당히 느리기 때문에, 캐시라는 방법을 사용하게 된다.

DNS서버는 캐시를 가지고 있고, 한번 검색한 이름은 캐시에 저장해두기 때문에 다시 검색이 들어올경우 처음부터 검색하는것이 아닌 캐시에서 빠르게 검색후 값을 리턴해주게 된다.

하지만 이러한 캐시는 중간에 DNS서버의 내용이 변경될수 있으며 그렇게되면 부정확한정보를 리턴하게 되기때문에, 유효기간을 두는것으로 이러한 위험을 회피할수있게 된다.

  • DNS캐시는 OS에 저장된다.


Uploaded by N2T

반응형

'CS > 네트워크' 카테고리의 다른 글

네트워크) 서버와의 접속 과정  (2) 2023.07.05
네트워크) 소켓 생성  (0) 2023.07.05
네트워크) 프로토콜 스택  (0) 2023.07.05
네트워크) IP주소와 DNS서버  (0) 2023.07.05
네트워크) HTTP 프로토콜  (0) 2023.07.05