DNS (Domain Name Service) : 전화번호부와 같은 역할로, 사람이 읽을 수 있는 도메인을 기계가 읽을 수 있는 IP주소로 변환해주는(혹은 그 반대) 서비스
DNS는 Domain Name Service의 약자로 쉽게 생각해서 전화번호부라고 생각하면 된다.
전화번호를 일일이 외울 필요없이 전화번호부에 저장된 이름을 검색해서 통화를 걸면 바로 전화가 연결이 된다. 이와 마찬가지로 인터넷이 보급된 초창기에 도메인 네임 서비스가 없이 원하는 웹과 통신하기 위해서 IP주소를 알아야했다. 그러나 이것은 굉장히 비효율적이고 불만이 쏟아져 나왔다.
그래서 DNS가 등장하게 되었다.
웹 서버의 IP주소를 DNS서버에 등록하면 사용자는 그 웹 사이트의 IP주소를 외울 필요 없이 주소 이름만 입력하여 연결할 수 있게 되었다.
Wikipedia의 URI를 보자
ko.wikipedia.org
ko | .wikipedia | .org | . |
---|---|---|---|
sub | Second - Level | Top - Level | Root |
기본적으로 사용자가 위키피디아에 접속하기 위해 DNS 서버에 wikipedia.org의 IP주소를 물어보고 DNS 서버가 알려준 IP주소로 다시 요청하여 연결이 된다. 이렇게 쉽게 연결이 되면 참 좋으려만...안타깝게도 DNS 서버는 이렇게 쉽게 IP주소를 알려주지 않는다. 현재 엄청나게 많은 도메인이 존재하기 때문에 하나의 서버에서 관리하기에는 무리가 있다. 따라서 여러 계층을 나누어 관리한다.
앞서 얘기했듯 "DNS야! 'ko.wikipedia.org'의 IP주소가 뭐야?" 라고 물어보면 "응 'xxx.xxx.xxx.xxx' 야" 라고 바로 알려주지 않는다.
이번엔 자신이 직접 웹 서버가 되어 도메인 이름을 DNS 서버에 등록하여 보자.
내가 원하는 도메인 이름은 orange.com
이고 IP주소는 123.123.123.123
이라고 가정해보자.
먼저 도메인을 등록할 나는 등록자(Registrant)가 된다. 이제 직접 DNS 서버를 구축하여 도메인의 이름과 IP주소를 DNS 서버에 등록해 주면 되지만 쉬운 일은 아니다. 따라서 등록대행자(Registrar)에서 일정의 수수료를 받고 대신 등록해 주기도 한다.
등록대행자를 통하여 등록을 하는 경우를 보면, 자신이 원하는 도메인 이름을 등록대행자에게 등록한다. 등록대행자는 그 도메인 이름을 등록소(Registry)에 가서 "이 도메인 이름 등록되어 있어요?" 라고 물어본다.
이미 등록이 되어있다면 "이미 있네요. 다른 이름으로 다시 정하라고 얘기해 주세요" 라고 할 것이고, 아니라면 등록이 가능하다고 할 것이다. 등록이 가능한 경우 등록대행자가 등록을 해줄 것이다.
이제 등록대행소에는 내가 원하는 도메인 이름과 나의 IP주소가 등록되어 있다.
Registrant | Registrar | Registry | Root Server |
---|---|---|---|
123.123.123.123 | orange.com A 123.123.123.123 | - | - |
도메인 옆에 'A'는 IPv4를 이용하는 IP주소라는 뜻이다. 참고로 'AAAA'는 IPv6을 의미한다.
Registrant | Registrar | Registry | Root Server |
---|---|---|---|
123.123.123.123 | orange.com A 123.123.123.123 | orange.com NS 등록대행소 주소 | - |
Registrant | Registrar | Registry | Root Server |
---|---|---|---|
123.123.123.123 | orange.com A 123.123.123.123 | orange.com NS 등록대행소 주소 | .com NS 등록소 주소 |