본문 바로가기

서버/DNS

DNS 통신방식

개념

브라우저에 문자형태로 입력하면 IP로 변경하여 실제 서버와 통신하게 해주는 서버

(사례가 많을뿐 브라우저가 아니라도 가능. ex. 서버 to 서버)


 구성

- Root DNS : ICANN이 직접 관리하는 서버. 수 많은 TLD(Top-Level-Domain) IP를 저장하고 요청시 해당하는 TLD 서버로 안내하는 역할을 함.


- TLD(Top-Level-Domain) DNS : 최상위 도메인. 일반 최상위 도메인(gTLD)과 국가 최상위 도메인(ccTLD) 등이 있음. ccTLD는 kr, uk 등으로 iso 3166-1에 의해 2자리 영문으로 구성되어 있음. gTLD는 .com, .net, .shop 등 후이즈나 가비아를 통해 등록 가능함.


- SLD(Secondary-Level-Domain) DNS: 차상위 도메인. gTLD의 경우 SLD와 같이 쓰이지 않으며, ccTLD는 co.kr, or.kr과 같이 함께 쓰이기도 함. 안쓰이기도 함. 도메인 등록자의 아이덴티티를 구체화 시켜줌. 방금 언급한 co.kr은 한국의 영리 목적의 단체/기업을 뜻하고, or.kr은 한국의 비영리 기관을 뜻함.

 

- 2단계 도메인, 3단계 도메인 : 3단계 도메인은 도메인명 + SLD + TLD의 구조이며, 2단계 도메인은 SLD를 생략한 도메인명 + TLD의 구조임.


- 리졸버(해석기) : 클라이언트의 요청을 받아 네임 서버로 전달하고, 네임 서버로부터 받은 정보를 클라이언트로 전달하는 역할을 함.


 

동작과정

① www.naver.com을 브라우저에 입력. 'PC 내 hosts 파일 확인' > 'PC 내 캐시 확인' > 'PC에 설정된 네임서버'순으로 쿼리.
    PC 내부적으로 처리가 가능할 경우, 자기 스스로 응답을 하기에 Recursive Query, 재귀적 쿼리라고 함
② Local DNS(PC에 설정된 네임서버)가 가지고 있는 캐시에서 응답을 주거나, 없을 시 Root DNS에  www.naver.com  쿼리
③ Root DNS도 존 파일에 해당 도메인에 대한 IP정보가 있다면 응답을 주고, 없을 시 .com TLD DNS의 주소를 응답함.
④ Local DNS(리졸버)가 .COM TLD DNS로 쿼리함.
⑤ .COM TLD DNS가 존 파일에 해당 도메인 IP정보를 가지고 있다면 응답을 주고, 없을 시 naver.com SLD DNS 주소를 응답
⑥ Local DNS가 naver.com SLD DNS로 쿼리를 날리고, 해당 SLD는 존 파일에서 IP를 응답함.
    root dns > tld > sld 등 계층적으로 반복 쿼리를 하는 것을 반복적 쿼리 (Iterative Query)라고 함
⑦ Local DNS는 해당 IP를 클라이언트에 응답하면서, 캐시에 적재하고 TTL 동안 보유함.
⑧ 클라이언트가 또 www.naver.com  에 접속하게 되면, OS/브라우저 캐시를 참조하거나 TTL이 만료되었을시 Local DNS의 캐시를 참조


레코드 정보

- SOA (Start Of Authority) : 권한이 있는 서버를 가리킴

- A (Host Record) : FQDN - IP 매칭

- AAAA : IPv6 매칭

- CNAME (Alias Record) : 실제 도메인 이름과 연결되는 가상 도메인 이름 

- MX(Mail Exchange) : 주어진 사서함에 도달할 수 있는 정보 제공

- SRV(Service Resources) : 비슷한 TCP/IP 서비스를 제공하는 다수의 서버 위치 정보를 제공

- NS(Name Servers) : 도메인 서버 목록을 지정.

- TXT (Text Record) : 문자열을 입력하여 도메인의 유효성을 판단함. 인증서 발급시 DNS를 이용한 도메인 인증을 선택 하면, TXT 레코드에 추가할 문자열을 받을 수 있음.