네트워크 상에서 호스트를 특정지을 수 있는 주소는 MAC 주소와 IP 주소가 있다.
DNS(Domain Name System)는 인터넷의 핵심 구성 요소 중 하나로 사람이 읽을 수 있는 도메인 이름(예 : goole.com)을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 한다.
-> 사람이 기억하기 쉬운 도메인 이름과 호스트를 특정지을 주소를 매핑
즉 도메인과 IP 주소를 연결지어주는 프로토콜이 바로 DNS다.
DNS 덕분에 도메인만 가지고 특정 호스트의 IP 주소를 지칭할 수 있다.
DNS 서버는 계층적 도메인 구조를 가지고 있다.

www.goole.com 에서 www.goole.com 대한 최종적인 정보를 갖고 있는 DNS 서버는 www 가 된다.
클라이언트가 가장 먼저 찾는 DNS 서버 (DNS Resolver)
클라이언트를 대신해서 Root 네임 서버부터 Authoriative DNS 서버에 이르기까지 있는 여러 도메인 서버에 질의를 하고 IP주소를 알아냈다면 클라이언트에게 IP 주소를 알려준다.
DNS Resolver의 작업 덕분에 클라이언트는 복잡한 DNS 조회 과정을 의식하지 않고도 도메인 이름만으로 웹사이트에 접속할 수 있다.
리눅스 시스템에서 DNS Resolver 설정은 주로 /etc/resolv.conf 파일을 통해 이루어진다. 이 파일에는 사용할 DNS 서버의 IP 주수와 기타 관련 설정이 포함된다.
DNS 서버는 DNS 레코드(자원 레코드) 라는 것을 저장하고 있다.
DSN 레코드 타입은 어떤 종류에 대한 자원인지를 나타낸다.
방문한 도메인의 사본을 보관했다가 다음 방문시 빠르게 열 수 있도록 하는 방식과 유사하다(캐싱).
캐시는 TTL 기간동안 저장된다.