DNS
(Domain Name System)
- 문자열 도메인을 통해 IP 주소로 연결가능하도록 매핑해놓은 주소 체계
- scheme: http:// 또는 https:// 과 같이 맨 앞에 붙는 부분으로, 통신할 때 사용되는 통신 프로토콜
- subdomain (third-level domain) : www 에 해당하는 부분이다.
- domain name (second-level domain): google 과 같이, 도메인 주소를 구성하는 이름
- top-level domain (TLD): com 과 같이 최상위 계층을 구성하는 부분
도메인 = subdomain + domain name + TLD
도메인 계층
Root domain: "."
Top-level domain(TLD): kr, gov, com, net ...
Second-level domain: google, naver ...
DNS 작동 방식
(DNS 체계를 통해 IP 주소를 찾아오는 과정)
- 웹 브라우저 창에 도메인 주소 입력
- Browser(PC)의 캐시에 해당 도메인 IP 확인하여 있는 경우 바로 해당 IP 주소로 패킷 전송, 없는 경우 3번 과정으로 이동
- Local DNS 서버의 캐시 및 주소록에 IP 주소 확인하여 있는 경우 바로 해당 IP 주소로 패킷 전송, 없는 경우 4번 과정으로 이동
- Root DNS 서버로 Root DNS 서버에서 도메인의 TLD 정보를 가지고 있는 하위 DNS 서버인 TLD 서버(ex."***.com"은 Com DNS 서버로)에 IP 요청
- TLD DNS 서버에서 다음 계층의 주소를 포함하는 도메인 주소의 정보를 가지고 있는 하위 DNS 서버 IP 요청(ex."naver.com"는 가비아 DNS 서버로)
- 5번 과정을 반복하여 계층을 하나씩 이동하여 최종 domain의 IP 주소를 받을 때 까지 쿼리 반복
- IP 주소를 Browser(PC), Local DNS에 캐싱한 뒤 패킷 전송
※ Browser(PC)에서 Local DNS 서버로 보내는 요청을 Recursive 쿼리라고 한다.
※ Local DNS 서버에서 root DNS 서버 & 하위 DNS 서버로 보내는 요청을 Iterative 쿼리라고 한다.
※ Local DNS 서버 = Recursive DNS 서버 (ex. ISP(통신사) / Public DNS 서버)
DNS 서버에게 IP 주소 요청시, UDP 사용 이유
- TCP의 경우 3-way-handshaking 과정이 있어 신뢰성을 보장하지만 그만큼 느리다.
- DNS의 신뢰성보다 속도가 더 중요한 서비스이기 때문에 빠른 UDP가 적합하다.
DNS 레코드
reference
https://haeunyah.tistory.com/110
https://steady-coding.tistory.com/523