1 DNS(Domain Name System)
1.1 DNS란?
- DNS는 도메인 이름을 IP 주소로 변환해주는 시스템입니다.
- 인터넷 프로토콜 통신에는 IP 주소가 필요하지만, 사람이 기억하기 어렵습니다.
- 따라서 IP 주소에 별칭(도메인 이름)을 붙여 사용하며, 이를 다시 IP 주소로 변환하는 과정을 name resolution이라고 합니다.
- DNS는 이러한 name resolution 기능을 제공하여 사용자가 쉽게 기억할 수 있는 도메인 이름으로 웹사이트에 접속할 수 있게 해줍니다.
IP 주소란?
- 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호입니다.
- 네트워 크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 합니다.
- 더 자세히 알아보기(IP 주소 참고)
2 hosts 파일
- DNS를 알아보기 전에 hosts 파일에 대해 알아보겠습니다.
- 인터넷 상용화 이전(DNS가 없던 시절) 핸드폰에 전화번호를 저장하듯 각 단말에 hosts파일을 넣어두고 도메인과 IP 주소를 직접 관리했습니다.
2.1 hosts 파일
93.184.216.34 example.com
- hosts 파일은
/etc/hosts에 위치하며, 도메인과 IP 주소의 매핑 정보를 담고 있습니다. example.com에 요청을 보내면 먼저 hosts 파일에서example.com을 찾아 이를93.184.216.34IP 주소로 변환한 다음 통신을 이어갑니다.- 즉 DNS가 없던 시절에는 hosts 파일을 통해 name resolution 기능을 사용했습니다.
2.2 hosts 파일의 단점

- 작은 네트워크의 경우 각각의 호스트의 hosts 파일을 관리하는 것이 가능했습니다.
- 하지만 네트워크가 커지고 호스트들이 많아 졌을 때를 생각해보면 hosts 파일로 name resolution을 관리하는 것은 매우 번거로운 일입니다.
- web이라는 도메인의 IP 주소를 변경하면 모든 호스트의 hosts 파일을 일괄적으로 업데이트해야 합니다.

- 인터넷이 상용화되어 네트워크가 거대해지자 더 이상 hosts 파일로는 관리할 수 없어졌고 name resolution 기능을 제공하는 별도의 중앙 서버를 만들게 되는데 이것이 바로 DNS입니다.
- 따라서 요즘에는 로컬에 존재하는 hosts 파일로 name resolution을 하지 않고 중앙 집중 서버인 DNS에 name resolution 기능을 사용합니 다.
- 하지만 지금도 IP 주소를 모르는 도메인이 있는 경우 hosts 파일에서 먼저 찾고 없을 때 DNS에 질의합니다.
- 이러한 순서는
/etc/nsswitch.conf파일에host: files dns라고 기본 설정되어 있기 때문입니다. - 원하면 순서를 변경할 수 있습니다.
2.3 Host란?
- 네트워크에 연결된 장치(컴퓨터, 서버 등)들에게 부여되는 고유한 이름입니다.
- 도메인과 유사하지만 더 넓은 의미를 가지고 있습니다.
- 인터넷에서 호스트 이름은 인터넷에 연결된 호스트(컴퓨터)의 이름으로, 보통 호스트의 지역 이름에 도메인 이름을 붙인 것을 말합니다.
- 예를 들면, www.naver.com (웹 서버), mail.naver.com (메일 서버) 와 같이 네이버에서 사용되는 모든 호스트 이름에 naver.com이란 도메인 이름이 붙어 있습니다.
3 Domain
- IP 주소는 사람이 기억하기 어렵기 때문에 IP 주소에 이름을 부여할 수 있게 했는데, 이것을 도메인이라고 합니다.
- 넓은 의미로는 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스트리에게서 등록된 이름을 의미합니다.
- IP 주소 대신 도메인 주소를 이용하면 서비스중인 IP 주소가 변경되더라도 도메인 주소 그대로 유지해 접속 방법 변경없이 서비스를 그대로 유지할 수 있습니다
3.1 도메인 이름의 구조

- root domain :
. - Top-level domain:
.com - Second-level domain:
example - Sub domain:
blog
4 DNS 서버
- DNS 서버의 종류로 DNS Server, 루트 네임 서버, TLD 네임 서버, 권한 있는 네임 서버로 총 4가지가 있습니다.
- DNS 서버는 DNS 쿼리의 첫 단계며 클라이언트와 DNS 네임서버 사이의 중개자 역할을 합니다.
- 루트 네임 서버는 DNS Server가 DNS 레코드를 요청하는 과정의 첫 단계입니다.
- TLD 네임 서버는 .com, .net 또는 URL의 마지막 점 뒤에 오는 것 같은 일반적인 도메인 확장자를 공유하는 모든 도메인 이름의 정보를 유지하고 있습니다.
- 권한 있는 네임 서버는 도메인 이름에 고유한 정보를 포함하며 DNS A 레코드에서 찾은 도메인의 IP 주소를 DNS Sever에 제공하거나, 도메인에 CNAME 레코드(별칭)가 있는 경우 DNS Sever에 별칭 도메인을 제공합니다.