STORY 03 전 세계의 DNS 서버가 연대한다
1. DNS 서버의 기본 동작
- 클라이언트가 DNS 서버에게 요청을 보낼 때에는 이름, 클래스, 타입의 정보를 포함하여 요청을 보낸다.
- 이름 : 도메인 주소
- 타입 : 이름에 매칭되는 정보의 종류
- A(Address) : IP 주소
- MX(Mail eXchange) : 메일 주소(도메인 주소)
- DNS 서버는 내부적으로 위와 같이 데이터를 관리한다. (리소스 레코드)
- 클라이언트 요청 시 이름, 클래스, 타입이 모두 일치하는 항목을 찾아 응답한다.
2. 도메인의 계층
- DNS 서버에서 도메인 주소와 IP 정보를 관리하지만, 전 세계에는 수많은 기기가 있다.
- 따라서 하나의 DNS 서버에서 모두를 관리하기에는 어려워, 다수의 DNS 가 연대하여 관리한다.
- 여러 대의 DNS 서버에서 도메인 주소를 쉽게 관리하기 위해 도메인 주소를 계층화하여 관리한다.
3. 담당 DNS 서버를 찾아 IP 주소를 가져온다
- 상위 DNS 서버에서 바로 아래 계층의 DNS 서버들을 저장하여 유기적으로 연결되도록 구성했다.
- 최상위 도메인(kr, com 등) 위에는 루트 도메인이 존재하여 최상위 도메인들을 관리한다.
- 즉, 루트 도메인에서 시작한다면 최종적으로 원하는 도메인 서버에 접근할 수 있다.
- 이를 위해 모든 도메인 서버에서는 루트 도메인의 주소를 관리한다.
- 클라이언트는 가장 가까운 DNS 서버(TCP/IP 기본 설정값) 에게 요청하면 루트 도메인을 통해 원하는 DNS 서버의 위치를 찾을 수 있다.
- 루트 도메인 : kr 도메인 서버의 IP 주소 응답
- kr 도메인 : co 도메인 서버의 IP 주소 응답
- co 도메인 : cyber 도메인 서버의 IP 주소 응답
- 최종적으로 적절한 DNS 서버에게 요청하면 처음에 원했던 도메인 주소의 IP 주소를 응답받을 수 있다.
4. DNS 서버는 캐시 기능으로 빠르게 회답할 수 있다
- 실제 DNS 서버에서는 한 대의 DNS 서버에 복수의 도메인 정보를 등록할 수 있다.
- 하나의 DNS 서버에서 여러 계층의 정보를 바로 얻을 수 있다.
- DNS 서버에서 이전의 응답을 캐싱하여 보다 빠르게 응답받을 수 있다.
- 캐시의 경우 오차가 발생할 수 있기 때문에 데이터 유효기간이 설정되어 있다.
- 응답할 때 캐싱된 데이터인지 아닌지도 알려준다.
STORY 04 프로토콜 스택에 메시지 송신을 의뢰한다
1. 데이터 송수신 동작의 개요