📶 DNS 서버의 동작
클라이언트에서 조회 메세지를 받아 응답한다
조회 메세지 내용
이름 : 서버나 메일 배송 목적지
(초창기 www라고 등록한게 많아서 관습적으로 웹서버를 www로 쓸뿐
임의의 이름으로 타입과 함께 DNS서버에 등록하게 되면 그것이 웹서버 이름이된다, 엄밀히 말하면 A타입의 경우 IP주소를 할당받은 기기의 이름)
(mail 서버나 DB서버 등을 등록할수 있다.)
클래스 : 네트워크를 식별하기 위함이었지만 Internet이외의 네트워크는 소멸되어
항상 인터넷을 나타내는 IN이 된다
타입 : 이름에 어떤 타입의 정보가 지원되는지 나타냄
이 타입에 따라 클라이언트에 회답하는 정보의 내용이 달라짐
A(Address) : 이름에 IP주소 지원
MX (mail eXchange): 이름에 메일발송목적지(@뒷부분) 지원
PTR : IP주소에서 이름 조사
CNAME : 이름에 Nickname(alias)를 붙임
NS : DNS 서버의 IP주소 등록
SOA : 도메인 자체의 속성정보
예시)
<조회메세지 1>
이름 = www.blogger.com
클래스 = IN
타입 = A
DNS서버가 설정파일 등에 입력된 리소스 레코드(resource record)를 검토하며
이름, 클래스, 타입 모두 일치하는 항목을 찾는다
그리고 등록되어 있는 값 (A의 경우 IP주소)을 클라이언트에 회답
<조회메세지 2>
이름 = mail.co.kr
클래스 = IN
타입 = MX
DNS서버가 리소스 레코드를 검토하여 우선순위(복수의 메일 서버가 있을경우 작은 순서부터 선택하여 사용)와 메일서버이름을 회답
또한 만약 메일서버이름이 이름으로 등록되어 있는 리소스레코드가 있으면 IP주소도 같이 리턴
Domain의 구조
정보를 분산시켜 다수의 DNS서버에 등록하고 연대하여 정보를 찾아내는 구조이다
DNS서버에 등록한 정보는 도메인명이라는 계층적 구조를 가진 이름이 붙어있다
www . blogger . com
서버이름 하위Domain 상위Domain // 하위도메인을 만들어 국가,회사,단체 등에 할당
한개의 도메인을 여러개의 DNS서버에 저장하는것은 불가
한개의 DNS서버에 여러개의 도메인 저장 가능 (도메인 정보도 저장된다)
DNS서버의 동작
DNS서버 등록
하위도메인 DNS서버의 IP주소 ⇨⇨ 등록 ⇨⇨ 상위도메인 DNS서버의 IP주소
상위도메인 DNS서버의 IP주소 ⇨⇨ 등록 ⇨⇨ 최상위도메인 DNS서버의 IP주소
최상위도메인 DNS서버 IP주소 ⇨⇨ 등록 ⇨⇨ 루트도메인 DNS서버
루트도메인 DNS서버 IP주소 ⇨⇨ 등록 ⇨⇨ 인터넷에 있는 DNS서버 전부
❕ 상,하위 도메인이 같은 DNS서버에 등록되는 경우도 있다.
웹서버를 찾아가기 위한 DNS서버 동작 흐름
가장 가까운 서버에 URL에 대한 정보를 조회
⇨⇨ 없다? 루트 도메인으로 이동
⇨⇨ 없다? (최)상위 DNS서버로 이동 (ex. com 저장)
⇨⇨ 없다? 하위 DNS서버로 이동 (ex. blogger.com 저장)
⇨⇨ 없다? 하위 DNS서버로 이동 (ex. www.blogger.com 저장)
⇨⇨ 발견! 가장 가까운 DNS서버로 IP주소 리턴
⇨⇨ 클라이언트로 IP주소 리턴
❕ 이러한 과정이 이미 일어났다면 DNS서버는 캐시에 기록하여
재요청이 왔을때 빠르게 회답을 줄 수 있다.
(하지만 등록 정보가 변경되는 경우도 있으므로 캐시에 저장한 데이터의 유효기간으로
관리해주고 회답해줄때 DNS에서 가져온 것인지 캐시에서 가져온것인지 알려준다)
캐시 : 한번 사용한 데이터를 이용장소와 가까운 곳에 있는 고속 기억장치에 저장해 재사용을 고속화하는 기술
출처 : 성공과 실패를 결정하는 !%의 네트워크 원리