도메인과 DNS 네임 서버의 이해
도메인이란?
앞서 우리가 인터넷에서 구글이나 네이버가 제공하는 웹 서비스를 이용할 수 있는 것은 구글이나 네이버가 만든 웹 서버에 누구나 접속할 수 있도록 웹 서버의 공인 IP 주소를 인터넷에 공개했기 때문이라고 했습니다. 다시 말해 서비스 이용자가 인터넷에 공개된 구글 웹 서버나 네이버 웹 서버의 공인 IP 주소를 웹 브라우저의 주소 창에 입력하면 구글이나 네이버의 웹 사이트에 접속할 수 있습니다.
하지만 구글이나 네이버의 웹사이트에 IP 주소를 입력하고 접속하는 사람은 거의 없습니다. 대개는 다른 포털 사이트에서 검색해서 검색 결과의 링크를 타고 웹 사이트를 방문하거나 www.google.com이나 www.naver.com 같은 형태의 영문 주소를 웹 브라우저의 주소 창에 입력해서 웹 사이트에 접속합니다.
구글이나 네이버가 인터넷 공개한 IP 주소 대신 사용하는 www.google.com이나 www.naver.com 같은 형태의 영문 주소를 도메인(Domain) 또는 도메인 이름(Domain name, 또는 호스트 네임, Host name)이라고 합니다.
즉, 도메인이란 숫자 형태의 IP 주소를 사람이 기억하기 쉬운 문자로 표현한 주소입니다.
DNS란?
휴대폰으로 전화를 걸 때 모든 전화번호를 외우지 않고, 휴대폰 연락처에 저장해 놓은 이름과 전화번호를 사용합니다. 전화를 걸 상대방의 이름을 입력하면 연락처에서 이름에 대응하는 전화번호가 검색되는 시스템을 이용한 것입니다.
휴대폰 연락처와 같이 도메인과 IP 주소를 저장해 놓은 시스템을 DNS(Domain Name System)라고 합니다. 즉 DNS는 전 세계의 IP 주소에 대응하는 도메인을 효율적으로 관리하기 위해 개발된 시스템입니다. IP 주소와 도메인을 저장하고 관리하는 컴퓨터나 애플리케이션을 DNS 서버라고 합니다. 다시 말해 DNS 서버는 IP 주소와 도메인을 저장하고 맵핑(mapping)하는 일종의 데이터베이스입니다.
학교나 기업의 네트워크에서 자체적으로 DNS 서버를 만들어 운영하기도 하고, ISP가 관리하는 DNS 서버를 사용할 수도 있습니다. 이러한 DNS 서버들이 전 세계의 모든 호스트들의 IP 주소와 도메인을 관리하며 IP 주소를 도메인으로 변환하거나 도메인을 IP 주소로 변환하는 DNS 서비스를 제공하고 있습니다.
따라서 도메인에 대응하는 IP 주소를 알고 싶거나 IP 주소에 대응하는 도메인을 알고 싶으면 DNS 서버에게 물어보면 됩니다.
여러분이 웹 브라우저의 주소창에 구글의 도메인 이름 www.google.com을 입력하고 구글의 웹사이트로 이동하는 짧은 순간에 여러분의 컴퓨터가 DNS 서버에 IP 주소를 문의하고 응답받은 IP 주소로 접속하는 일련의 과정이 <그림 3>와 같이 일어납니다.
DNS 서버에 IP 주소를 질의하기 위해서는 DNS 서버의 IP 주소를 내 컴퓨터가 알고 있어야 합니다. 보통은 ISP에서 기본적으로 제공하는 DNS 서버의 IP 주소가 내 컴퓨터에 설정되어 있습니다.
도메인의 계층 구조
인터넷에서 사용되는 도메인은 IP 주소와 마찬가지로 전 세계적으로 고유하게 존재하여야 하므로 임의로 만들거나 변경할 수 없습니다. 따라서 도메인 이름을 지을 때는 전 세계에서 공통적으로 적용되는 몇 가지 규칙을 따라야 합니다.
도메인은 숫자와 영문자*의 조합으로 구성되어야 하며 특수문자는 사용할 수 없고, 256자 이상의 도메인 이름은 등록이 불가능하며, 이미 등록된 도메인은 사용할 수 없습니다.
*. 최근에는 한글로 되어 있는 도메인 이름도 볼 수 있는데, 이는 한글 도메인 이름을 기본 도메인으로 바꿔 주는 서비스를 이용하는 것일 뿐 DNS에서 사용하는 기본 도메인 이름은 아닙니다.
또한, 도메인의 체계적인 분류와 관리를 위해 도메인 이름은 몇 개의 짦은 영문자를 '. (닷, 점)'으로 연결한 계층 구조를 갖고 있습니다. <그림 4> 과 같이 도메인의 계층 구조는 나무를 거꾸로 한 것 같은 모양으로 되어 있어 '역 트리(Inverted tree) 구조'라고 하며 트리 구조의 정점을 루트(root, 뿌리)라고 합니다.
루트 아래로 갈라지는 가지를 단계별로 구분하여 'kr'과 같이 국가를 나타내는 국가 코드 도메인(ccTLD, country code Top Level Domain)이나 'com'같이 등록인의 목적에 따라 사용되는 일반 도메인(gTLD, generic Top Level Domain)을 1단계 도메인(또는 최상위 도메인, 탑레벨 도메인, Top Level domain, TLD)이라고 합니다.
1단계 도메인의 하위 도메인인 2단계 도메인(또는 서브 도메인, Sub domain)에는 조직의 속성을 구분하는 'co'(영리 기업), 'go'(정부 기관), 'ac'(대학)과 같은 도메인이 있습니다.
2단계 도메인 아래 3단계 도메인은 조직이나 서비스의 이름을 나타내는 도메인 이름으로 도메인 사용자가 원하는 문자열을 사용할 수 있습니다.
그리고 마지막은 컴퓨터의 이름을 나타내는 호스트(Host)가 위치합니다.
도메인을 표기할 때는 낮은 단계부터 표현하여 최상위 도메인이 가장 뒤에 나타납니다.
도메인은 도메인 계층 구조를 반영한 네임 서버(네임 서버를 DNS 서버라고도 부릅니다)에 저장, 관리됩니다. 각 네임 서버는 도메인 계층의 일부 영역(zone)을 담당하고 그 영역에 속한 도메인을 관리합니다. 상위 계층의 네임 서버는 하위 계층의 도메인에 대한 정보를 관리하고 하위 계층 네임 서버의 IP 주소를 갖고 있습니다. 최상위 계층인 루트 네임 서버의 IP 주소는 모든 DNS 서버가 등록하여 관리하고 있습니다.
<그림 5>의 루트 네임 서버에서는 하위 계층인 kr이나 com의 정보를 관리하고 kr이나 com을 관리하고 있는 네임 서버의 IP 주소가 등록되어 있습니다.
kr의 네임 서버에서는 하위 계층인 co.kr이나 go. kr의 정보를 관리하고 co.kr이나 go.kr 을 관리하고 있는 네임 서버의 IP 주소가 등록되어 있습니다.
go.kr의 네임 서버에서는 하위 계층인 korea.go.kr의 정보를 관리하고 korea.go.kr을 관리하고 있는 네임 서버의 IP 주소가 등록되어 있습니다.
이처럼 DNS는 전 세계의 수많은 도메인을 효율적으로 저장하고 관리하기 위해서 도메인을 계층화하고, 계층의 일부 영역을 네임 서버가 분산 관리하는 시스템으로 설계, 운영되고 있습니다.
DNS 서버의 질의 과정
모든 DNS 서버는 IP 주소를 알고 있는 루트 네임 서버에 접속하여 IP 주소를 찾기 시작합니다. 루트 네임 서버부터 도메인 계층을 따라서 질의 과정을 반복하며 찾고자 하는 도메인의 IP 주소를 찾습니다.
위 <그림 3>의 DNS 서버 질의의 상세한 과정은 아래 <그림 6>와 같습니다.
사용자가 도메인 이름 www.google.com을 입력하면 사용자의 컴퓨터는 DNS 서버에게 도메인 이름 www.google.com의 IP 주소를 문의합니다. DNS 서버는 IP 주소를 알고 있는 루트 네임 서버에 IP주소를 조회합니다.
'com' 정보를 등록하고 있는 루트 네임 서버는 'www.google.com'의 IP 주소를 'com' 네임 서버에 문의하라고 DNS 서버에게 'com' 네임 서버의 IP 주소를 알려 줍니다.
DNS 서버는 루트 네임 서버가 알려준 'com' 네임 서버의 IP 주소로 'com' 네임 서버에게 'www.google.com'의 IP 주소를 질의해서 'google.com' 네임 서버의 IP 주소를 얻습니다.
최종적으로 DNS 서버는 'google.com' 네임 서버에 질의해서 www.google.com의 IP 주소를 얻어 사용자의 컴퓨터에 www.google.com의 IP 주소를 알려 줍니다.
즉, 각 네임 서버가 IP 주소를 알고 있는 하위 네임 서버를 알려주는 과정을 반복하다 보면 최종적으로 DNS 서버가 알고자 IP 주소를 알고 있는 네임 주소에 도달해 IP 주소를 얻게 됩니다.
이렇게 매번 루트 네임 서버에서부터 도메인의 트리 구조를 따라 순서대로 IP 주소를 찾아가는 과정을 반복하는 것은 효율적이지 않습니다. 그래서 DNS 서버는 질의한 정보를 한동안 캐시(cache)에 저장하여 같은 질의가 들어오면 루트 네임 서버까지 가지 않고 바로 IP 주소를 알려 줍니다.
도메인 등록 대행
도메인 이름도 공인 IP 주소와 마찬가지로 ICANN에서 관리하고 있습니다. 그래서 IP 주소에 대응하여 사용하고 싶은 도메인이 있다면 관리 기관에 등록해야 인터넷에서 사용할 수 있습니다.
ISP 가 IP 주소 할당을 대행하는 것처럼 도메인 등록도 대행업체가 대행합니다. 국내에서도 국내 도메인을 관리하는 한국인터넷정보센터(KRNIC)에서는 직접 도메인 등록 신청을 받지 않고 한국인터넷정보센터와 도메인 등록 대행 계약을 맺은 가비아, 후이즈 등의 대행업체가 등록 대행을 합니다.
따라서 인터넷에 서버를 공개하여 서비스를 제공하고 싶은 스타트업 창업자는 대행업체가 제공하는 서비스와 수수료를 비교하여 대행 업체를 선정하고 도메인을 등록해야 합니다.
도메인의 가치
인터넷에서 동일한 도메인은 존재할 수 없기 때문에 누군가 이미 등록한 도메인은 사용할 수 없게 됩니다. 이로 인해 브랜드 명이나 회사 명의 도메인을 다른 누군가가 등록해서 사용하고 있다면 그 도메인을 구매하는 등의 방법으로 도메인을 가져와야 사용할 수 있습니다.
대표적으로 페이스북은 2010년 fb.com 도메인을 850만 달러(약 90억)를 주고 구매했고, 샤오미는 2014년 Mi.com이라는 도메인을 360만 달러(약 40억)에 구매했습니다.
이처럼 기업이 주로 사용하여 대표성을 지닌 '.com'과 유명한 키워드가 결합된 도메인은 고가에 매매되어 이슈가 되기도 합니다. 이런 도메인의 가치 상승을 노리고 유명한 키워드의 도메인을 선점하기도 합니다. 최근 코로나 19와 관련된 도메인이 경쟁적으로 등록된 것도 비슷한 맥락입니다.
참고: 'corona19.co.kr' 도메인 주인공은 누구?
1985년 도메인을 도입할 때는 '.com'과 같이 국가에 관계없이 사용할 수 있는 일반 최상위 도메인(gTLD, Generic Top level domain)이 6 개에 불과했으나, 이후 추가 생성을 하여 2011년에는 22개의 일반 최상위 도메인을 사용할 수 있게 되었습니다.
도메인의 포화와 신규 도메인 생성
하지만 인터넷 사용자의 폭발적인 증가로 IPv4의 IP 주소가 부족해진 것처럼 22개의 일반 최상위 도메인만으로는 늘어나는 도메인 수요를 감당하기 어렵게 되었습니다. 기억하기 쉽고 명확한 키워드를 가진 도메인들이 모두 등록되고, 새로 등록 가능한 도메인이 포화 상태가 되었습니다. 이 문제를 해결하기 위해 2011년 ICANN은 22개의 기존 일반 최상위 도메인 외에 새롭게 신규 일반 최상위 도메인(New gTLD, New Generic Top level domain)을 생성하기로 결정하고, 2013년부터 생성하기 시작하여 2017년 5월 기준으로 1,218 건의 신규 일반 최상위 도메인이 생성되었습니다.
2017년 이후 'email', 'coffee', 'news' 같은 다양한 신규 일반 도메인이 사용되기 시작하면서 도메인의 거래 가격이 예전같이 이슈화될 정도로 높진 않은 것 같습니다.
인터넷에서 서비스를 제공하는 테크 스타트업 창업자는 회사명이나 서비스의 브랜드명을 정할 때 해당 상호로 도메인을 등록할 수 있는지도 점검해야 합니다. 회사명이나 브랜드명을 정한 뒤 도메인을 등록할 경우 .com 같은 일반 최상위 도메인은 이미 등록된 도메인일 경우가 많습니다. 다행히 신규 일반 도메인을 사용하여 회사명이나 브랜드명을 사용한 도메인을 등록할 수 있고, 예전보다 저렴한 가격으로 원하는 도메인을 구매할 수 있다 하더라도 사용자의 입장에서는 오인 가능성이 존재하기 때문입니다.
예를 들어, 핀테크 정보 제공 서비스를 하는 테크 스타트업의 회사명을 핀테크정보로 정하고 fintechinfo.com이라는 도메인을 사용하려고 했는데 이미 등록되어 있어서 fintech.info라는 도메인을 사용하기로 합니다. 사용자 입장에서는 fintechinfo.com과 fintech.info를 오인할 수 있고, '.info'라는 신규 일반 최상위 도메인이 익숙하지 않은 사용자는 익숙한 '. com'으로 끝나는 도메인을 입력하고 접속할 확률이 높습니다. 문제는 fintechinfo.com라는 도메인이 섹스, 도박, 피싱 사이트 등으로 사용되고 있을 경우 핀테크 정보 사이트에 접속하지 못하는 불이익을 넘어서 스타트업의 이미지와 사업에 악영향을 끼칠 수 있습니다.
facebook.com이라는 도메인을 가지고 있는 페이스북이 fb.com을 사들여 fb.com으로 접속하더라도 facebook.com에 접속할 수 있게 만든 이유입니다.
따라서 회사명이나 브랜드명을 정할 때 도메인 등록 가능성도 점검하고, 유사한 이름의 도메인도 함께 등록하는 것을 고려할 필요가 있습니다.
참고 자료
정기철, 「인공지능 시대를 위한 컴퓨터 과학 개론」, 한빛아카데미, 2020.
다케시타 다카후미 외 3인, 이영란 역, 「마스터링 TCP/IP 입문편」, 성안당, 2019.
ANK CO., Ltd., 이영란 역, 「TCP/IP가 보이는 그림책」, 성안당, 2019.
강환수 외 3인, 「컴퓨터 개론」, 인피니티북스, 2019.
진혜진, 「네트워크 개론」, 한빛아카데미, 2019.
삼성SDS 기술사회, 「정보통신」, 한울아카데미, 2019.
정진욱 외 4인, 「컴퓨터 네트워크」, 생능출판사, 2018.
김현정, 「소프트웨어 개념사전」, 궁리, 2019.
이영호 외 1인, 「당신이 지금 알아야 할 AWS」, 비제이 퍼블릭, 2019.
김종훈, 「소프트웨어 세상을 여는 컴퓨터 과학」, 한빛아카데미, 2018.
Gene, 김성훈 역, 「그림으로 배우는 네트워크 원리」, 영진 닷컴, 2020.
Ryuji Kitami, 이영란 역, 「그림 한 장으로 보는 최신 네트워크 용어 해설」, 정보문화사, 2016.
미즈구치 카즈야, 이승룡 역, 「모두의 네트워크」, 2018.
리브로웍스, 신상재 역, 「TCP/IP 쉽게, 더 쉽게」 , 제이펍, 2016.
Gene, 진솔 역, 「손으로 익히며 배우는 네트워크 첫걸음」, 한빛미디어, 2017.
아미노 에이지, 김현주 역, 「하루 3분 네트워크 교실」, 영진닷컴, 2016.
김석준, 「문과생을 위한 ICT 이야기 」, 커뮤니케이션즈북스, 2019.
James F. Kurose외 1인, 「컴퓨터 네트워킹」, 퍼스트북, 2017.
Tsutomu Tone, 이도희 역, 「성공과 실패를 결정하는 1%의 네트워크 원리」, 성안당, 2018.
백금란 외 1인, 「TCP/IP 이해하기」, 북스홀릭퍼블리싱, 2015.
'냐옹아 멍멍해봐(How to Speak IT) > 테크(IT) 문법' 카테고리의 다른 글
쉽게 이해하는 네트워크 17. TCP 프로토콜의 기능 및 특징 - 패킷 분할과 연결형 통신 (1) | 2020.11.29 |
---|---|
쉽게 이해하는 네트워크 16. TCP/IP 전송 계층(트랜스포트 계층)과 포트(Port) 번호 (3) | 2020.11.24 |
쉽게 이해하는 네트워크 14. IP 주소의 종류와 할당 방법 및 NAT 기술 (1) | 2020.11.17 |
쉽게 이해하는 네트워크 13. IP 주소 의미와 체계 및 서브넷 마스크 (6) | 2020.11.12 |
쉽게 이해하는 네트워크 12. TCP/IP 모델의 인터넷 계층과 IP 프로토콜 (4) | 2020.11.09 |