우리가 브라우저를 통해 정보를 검색하고, 스트리밍으로 음악을 듣고 페이스북으로 친구들과 연락하고 카톡으로 메시지를 보내는 모든 행위들은 해당 서비스가 구현되는 서버에 접속해서 데이터를 주고 받기 때문에 가능한 것들입니다.
이렇게 사용자와(client,클라이언트) 서버(server, 호스트라고도 불림)간 통신이 이루어 지려면 사용자가, 혹은 서비스가 서버의 주소를 알아야 하는데 이때 인터넷에서 통용되는 ‘주소’ 단위가 IP(Internet Protocol Address, 인터넷규약주소)입니다. 우리가 잘 알다시피 IP는 점(.)으로 구분되는 4자리 32비트 숫자로 구현되 있는데(ex 127.0.0.1) 인터넷에 연결되어 있는 모든 장치들은 IP주소를 가지고 있습니다.
네이버, 카카오톡, 페이스북, 인스타그램등 서비스를 제공하는 업체 또한 인터넷에 연결되어 있으며 우리가 해당 서비스에 접근하기 위해 브라우저창에 도메인을 입력하면 도메인과 연결되어 있는 IP주소가 저장되어 있는 DNS 서버가 응답해 입력된 도메인 주소를 IP주소로 변환을 거쳐 브라우저는 해당 IP로 연결해 요청한 응답을 하게 됩니다.
목차
DNS 이론과 개념
DNS(Domain Name Service)는 IP를 도메인으로 연결해주는 역할을 하고 있으며 모든 도메인은 도메인을 관리하는 DNS 서버 IP주소와 해당 도메인 주소에 연결되는 IP주소 정보를 가지고 있습니다.
DNS 서버는 역트리 구조로 전세계 여러곳에 위치해 있으며 루트(Root) DNS 서버가 도메인 최상위 레벨 권한을 가지고 있습니다. 우리가 흔히 알고 있는 .com .net .org 등 도메인이 루트 DNS 서버의 하위 최상위 도메인에 위치하고 있어 도메인 등록업체를 통해 일정 대행비를 받고 등록을 하게 되는 것입니다.
이처럼 DNS 서버의 구조는 예를 들어 나라, 도단위, 시단위, 동단위 처럼 쪼개져 피라미드 형태로 이루어져 있으며 우리가 DNS 서버를 운영할 경우 제일 말단에 위치하게 되는 것입니다. 그 상위에는 서버가 사용하는 KT, LG U플러스, SK 브로드밴드등의 ISP(Internet Service Provider, 인터넷 서비스 업체)의 DNS 서버가 위치하게 됩니다.
위에서 언급했던 것처럼 DNS 서버가 도메인을 IP로 변환하기 위해 클라이언트는 최단거리의 DNS 서버(ISP)에 요청(질의, query)하게 되고 만일 해당 도메인에 대한 정보가 없다면 최상위 도메인 네임 서버에 다시 요청해서 사용자에게 IP를 전달하고 ISP의 DNS 서버는 요청 내용을 캐시로 저장합니다.
캐싱한 정보는 DNS 서버에서 설정한 일정한 시간(TTL) 이후 소멸되며 캐싱되어 있는 기간동안 도메인 정보가 변경되면 갱신하게 됩니다. 하지만 위에서 언급했던 역트리 구조 때문에 해당 DNS 서버에 연결된 다른 DNS 서버에 변경된 정보가 퍼지기까지 일정한 시간이 소요됩니다.
도메인 또한 마찬가지로 역트리 구조를 가지며 1차 도메인(구입한 도메인) 하위의 2차, 3차등 하위 도메인을 생성하고 IP로 연결할수 있기 때문에 이러한 정보 역시 저장하고 있다가 상위 DNS 서버에서 요청이 들어올때 응답하고 캐싱하게 됩니다.
루트 DNS 서버 리스트
Hostname | IP Addresses | Manager |
---|---|---|
a.root-servers.net | 198.41.0.4, 2001:503:ba3e::2:30 | VeriSign, Inc. |
b.root-servers.net | 192.228.79.201, 2001:500:84::b | University of Southern California (ISI) |
c.root-servers.net | 192.33.4.12, 2001:500:2::c | Cogent Communications |
d.root-servers.net | 199.7.91.13, 2001:500:2d::d | University of Maryland |
e.root-servers.net | 192.203.230.10 | NASA (Ames Research Center) |
f.root-servers.net | 192.5.5.241, 2001:500:2f::f | Internet Systems Consortium, Inc. |
g.root-servers.net | 192.112.36.4 | US Department of Defense (NIC) |
h.root-servers.net | 198.97.190.53, 2001:500:1::53 | US Army (Research Lab) |
i.root-servers.net | 192.36.148.17, 2001:7fe::53 | Netnod |
j.root-servers.net | 192.58.128.30, 2001:503:c27::2:30 | VeriSign, Inc. |
k.root-servers.net | 193.0.14.129, 2001:7fd::1 | RIPE NCC |
l.root-servers.net | 199.7.83.42, 2001:500:9f::42 | ICANN |
m.root-servers.net | 202.12.27.33, 2001:dc3::35 | WIDE Project |