DNS
역할
- TCP/IP 모델에서 최상위 계층으로 사용자와 가장 가까운 소프트웨어
- 여러 프로토콜 개체들의 서비스에 대한 사용자 인터페이스 제공
- HTTP, DNS, SMTP, SSH, BGP, BHCP 등이 이 범주에 속함
DNS(Domain Name Service)
- 호스트(도메인) 이름을 IP주소로 변환 - Port53
- 웹사이트 접속 또는 이메일 전송시 *.google.com등의 도메인 이름으로 접속
- 사람이 좀 더 기억하기 쉬운 문자 형태의 도메인 개발 - 반면 컴퓨터는 IP로 통신 - 서로의 변환 필요
계층적 구조
궈리 과정
Recusive Query: Local DNS 서버가 재귀적으로 여러 서버에게 질의하여 응답을 받음
Iterative Query: Local DNS 서버가 반복적으로 질의
IP를 물어보는 과정
ROOT DNS한테 물어보고,
.com DNS한테 물어봐라
...
...
Resource Records
DNS 레코드, DNS 서버가 가지고 있는 IP 매핑 정보 테이블
4 tuple: {Name, Value, Type, TTL} 로 구성되어 있다
Type
- A: 호스트, IP - www.fastcampus.co.kr, A 레코드, 1.1.1.1에 매핑되어 있다
- NS: 네임서버 - fastcampus.co.kr, NS, ns.fastcampus.co.kr
- CName: 별칭 - ftp.fastcampus.co.kr, CNAME, fastcampus.co.kr
- MX: 메일서버 - mail.fastcampus.co.kr, MX, 2.2.2.2
리눅스머신에서 확인 가능
#dig@168.126.63.1 www.naver.com (이건 kt 도메인임)
DNS 메시지 - 쿼리와 응답으로 구분
Query: 2개, Header + Question
Response: 5개, Header + Question + Answer + Authority + Additional
Hosts.txt
- 호스트 이름과 IP주소가 맵핑되어 저장된 파일
- Local DNS로 쿼리 전에 우선 참조하는 파일
DNS 캐시 테이블
기존에 응답 받은 DNS 정보를 일정시간(TTL) 저장하고 동일한 질의 시 응답
DNS 동작 과정
- PC -> 웹사이트 접속(www.daum.net)
- PC 네트워크 환경 확인 - Primary DNS 8.8.8.8로 설정
- hosts.txt 파일 참조 - 해당 도메인(www.daum.net)이 설정된 경우 맵핑된 IP로 응답
- dns cache table참조 - 해당 도메인(www.daum.net)이 저장된 경우 저장된 IP로 응답
- hosts.txt & cache table에 없으므로 Local DNS(8.8.8.8)에게 쿼리
- Local DNS(8.8.8.8)에서 응답