Finn의 개발블로그
1-3. 전 세계의 DNS서버가 연대한다 본문
1. DNS 서버의 기본 동작
- 조회 메시지에는 다음의 세 가지 정보가 포함되어 있습니다.
- 이름 : 서버나 메일 배송 목적지(메일 주소에서 @ 뒷부분의 이름) 같은 이릅입니다
- 클래스 : 인터넷을 나타내는 'IN' 이라는 값
- 타입 : 이름에 어떤 타입(종류)의 정보가 지원되는지 나타냅니다. A 타입은 IP, MX이면 이름에 메일 배송 목적지가 지원됩니다.
- 이름 = www.lab.cyber.co.kr, 클래스 = IN, 타입 = A
- DNS 서버는 세 가지 항목이 일치하면 여기에 등록되어 있는 ip 주소를 회답합니다
- 이름 = cyber.co.kr, 클래스 = IN, 타입 = MX
- DNS 서버는 10과 mail.cyber.co.kr이라는 두 개의 항목에 회답합니다.
- MX의 경우에는 mail.cyber.co.kr 메일 서버의 IP 주소도 함계 회답합니다.
- 타입종류
- PTR : IP 주소에서 이름을 조사할 때 사용
- CNAME : 이름에 닉네임을 붙이기 위한 CNAME
- DNS : 서버의 IP 주소를 등록하는 NS
- SOA : 도메인 자체의 속성 정보를 등록
- 이름, 타입, 클래스, 회답하는 정보를 포함하는 한 줄을 리소스 레코드라고 부릅니다.
2. 도메인의 계층
- 정보를 분산시켜서 다수의 DNS 서버에 등록하고, 다수의 DNS 서버가 연대하여 어디에 정보가 등록되어 있는지 찾아내는 구조입니다.
- DNS 서버에 등록한 정보에는 모든 도메인명이라는 계층적 구조를 가진 이름이 붙여져 있습니다
- www.lab.cyber.co.kr
- kr 도메인 아래에 co라는 도메인 있고, 그 아래에 cyber가 있으며 그 안에 lab 그 안에 www라는 이름이 있는 셈이 됩니다
- 도메인의 아래에 하위 도메인을 만들고 그것을 할당 할 수 있습니다
- example.co.kr 도메인이 있으면 그 도메인 아래에 sub1.example.co.kr, sub2.example.co.kr과 같은 몇 개의 도메인을 만든 후 사업부마다 하위 도메인을 할당할 수 있습니다.
3. 담당 DNS 서버를 찾아 IP 주소를 가져온다
- 하위의 도메인을 담당하는 DNS 서버의 IP 주소를 그 상위의 DNS 서버에 등록합니다. 그리고 상위의 DNS -> 상위의 DNS 서버에 등록하는 식으로 차례로대로 등록합니다.
- lab.glasscom.com 이라는 도메인을 담당하는 DNS 서버를 glasscom.com의 DNS서버에 등록하고, glasscom.com의 DNS 서버를 com 도메인의 DNS 서버에 등록하는 식입니다. 상위의 DNS 서버에서 하위의 DNS 서버의 IP 주소를 알 수 있습니다.
- com이나 kr의 상위에 루트 도메인이 있습니다. 루트 도메인은 DNS 서버에 com 이나 co의 DNS 서버를 등록합니다
- 루트 도메인의 DNS 서버를 인터넷에 존재하는 DNS 서버에 전부 등록하는 것입니다.
- 클라이언트가 어딘 가의 DNS 서버에 액세서흐면 여기에서부터 루트 도메인을 경유하여 도메인의 계층 아래로 찾아가서 최종적으로 원하는 DNS 서버에 도착합니다
- DNS 서버들의 조회 동작
- 클라이언트 PC가 가장 가까운 DNS 서버에 요청을 보낸다.
- DNS 서버는 루트 도메인에게 요청을 보내고 루트 도메인은 하위 계층이 있는 DNS 서버의 ip를 보내준다
- 2번 행동을 목적지가 있는 주소까지 반복한다
- 목적지 찾으면 목적지 ip를 dns 서버가 클아이언트 pc에 보낸다
4. DNS 서버는 캐시 기능으로 빠르게 회답할 수 있다.
- DNS 서버는 한 번 조사한 이름을 캐시에 기록할 수 있습니다
- 조회한 이름에 해당하는 정보가 캐시에 있으면 그 정보를 회답합니다. 그러면 그 위치에서 계층 구조를 아래로 향하여 찾을 수 있습니다
- 조회한 이름이 도메인에 등록되어 있지 않은 경우에는 이름이 존재하느 않는다는 회답을 캐시에 보전할 수도 있어서 존재하지 않은 경우에도 빠르게 회답할 수 있습니다
- 캐시에 정보를 저장한후 등록 정보가 변경되는 경우도 있으므로 DNS 서버에 등록하는 정보에는 유효 기한을 설정하고, 캐시에 저장한 데이터의 유효기간이 지나면 캐시에서 삭제합니다.
- 조회에 회답할 때 정보가 캐시에 저장된 것인지, 아니면 등록처 DNS 서버에서 회당한 것인지 알려줍니다
'Network' 카테고리의 다른 글
2-1. 소켓을 작성한다. (0) | 2019.04.27 |
---|---|
1-4. 프로토콜 스택에 메시지 송신을 의뢰하다 (0) | 2019.04.25 |
1-2. 웹 서버의 IP주소를 DNS서버에 조회한다 (0) | 2019.04.09 |
1-1. HTTP 리퀘스트 메시지를 작성한다 (0) | 2019.04.04 |