host를 식별할 때 두가지 방법 : hostname과 IP address
사람 : hostname, routers : IP address
DNS(domain name system) : hostname을 IP address로 변환하는 일을 한다.
DNS 서버는 berkeley internet name domain(BIND) 소프트웨어를 실행하는 유닉스 시스템인경우가 많다. DNS protocol은 UDP를 통해 실행되며 port 53을 사용한다.
DNS는 hostname에서 IP address로 변환하기 위해 HTTP, SMTP, FTP와 같은 다른 application-layer protocol에서 사용된다.
과정
IP address는 종종 근접한 DNS server에 caching 되기 때문에 DNS 네트워크 트래픽과 평균 DNS 딜레이를 줄이는데 도움을 준다.
DNS는 hostname에서 IP address를 변환하는데 추가적인 중요 서비스를 제공한다.
Host aliasing(별칭) : 복잡한 hostname은 하나 이상의 별칭을 가질 수 있다.
relay1.west-coast.enterprise.com →
canonical hostname(정식 호스트이름) : enterprise.com and www.enterprise.com , DNS는 application 호출로 제공된 별칭 호스트 이름과 호스트의 IP 주소를 가져 올 수 있다.
순서: host alias name > host canonical name > IP address
Mail server aliasing(메일 서버 별칭) :host의 IP address뿐만 아니라 제공된 alias hostname를 위한 canonical hostname을 가져오기 위해 mail application에서 DNS를 호출 할 수 있다.
예) heathers@nextunicorn.kr에서 nextunicorn.kr이 도메인 이름이기에 이를 이용해 서버의 IP 주소를 찾아 TCP 연결
Load distribution : DNS는 복제된 웹 서버 간에 load distribution을 수행하는데도 사용된다. cnn.com과 같은 사이트는 여러 서버를 통해 복제되고 각 서버는 서로 다른 end-system에서 실행된다. 그렇기에 복제된 웹 서버는 IP 주소 집합이 하나의 표준 호스트(canonical hostname)과 연결된다. DNS database에는 이 IP address 집합이 포함되어 있다. client가 주소 집합에 매핑된 이름에 대해 DNS query를 만들면 server는 전체 IP 주소 집합에 매핑된 이름에 대해 DNS query를 만들면 서버는 전체 IP 주소 집합으로 응답하지만 각 응답 내의 주소 순서를 회전한다. client는 일반적으로 HTTP 요청 메시지를 집합에 먼저 나열된 IP address로 전송하므로 DNS 순환은 트래픽을 복제된 서버 간에 분산시킨다
→ 동일 도메인 주소에 접근하는 client들에게 IP 주소를 분산시킨다
일반적으로 DNS 서버에는 하나의 도메인의 여러 IP 주소 List를 가지고 있다. 접속하는 client들에게 이 list를 모두 주는데 보통 첫번째 주소를 사용하기 때문에 서버가 list를 rotation해서 보내준다.
hostname-to-IP-address translation service
DSN가 하나로 구성되어 있다면 client가 요청하거나 DNS가 응답할 때 편할 것이다. 하지만 오늘날에 맞지 않음
중앙화된 설계의 문제점 :
- single point of failure : DNS server가 다운되면 모든 인터넷도 다운된다.
- traffic vlume : 하나의 DNS server에서 모든 query에 응답하게 된다.
- distant centralize database : 물리적인 거리가 멀면 delay가 심화된다.
- maintenance : DNS server가 하나라면 매일 새로운 host를 업데이트되어야 한다.
scale문제를 해결하기 위해 DNS는 전 세계에 분산된 수많은 계층적 형태의 서버를 사용한다.
mapping은 DNS servers에 분산되어 있다.
DNS servers는 3계층이 있다.
예) www.amazone.com 찾기
Root DNS servers : 전 세계에 13개가 있다.
Top-level domain (TLD) servers : 이 서버들은 com, org, net, edu, gov 등의 신뢰할만한 TLD, uk, fr, ca, kr 등의 국가 TLD 등이 있다.
Authoritative DNS servers
DNS server의 또 다른 중요한 타입 : local DNS server(a default name server)