인터넷에서 도메인이 없다면 전부 숫자를 외워야 합니다.
IP주소를 써야 하기 때문이죠.
그래서 IP주소 대신 사람이 이해할 수 있는 이름이 필요합니다.
그것이 바로 도메인 입니다.
14.169.188.13
같은 것은 외우기도, 이해하기도 어렵지만
imweb.me
는 참 쉽죠. 이것이 도메인의 역할 입니다.
그렇다면 도메인으로 IP주소로 찾을 방법이 필요하겠지요?
어떤 도메인의 IP주소를 찾아주는 서비스 입니다.
결국, 전화번호부 같은 겁니다.
김아무개 전화번호는?
아임웹의 IP주소는?
누구나 만들거나 설치해서 운영할 수 있습니다.
꼭 필요하다면 말이죠.
RootDNS
와 최신 정보를 주고 받으며 데이터의 동기화를 유지합니다.
하지만, 요즘은 AWS
의 Route53
이나 Cloudflare
를 이용 합니다.
그렇다면,
DNS 서버가 모든 도메인의 정보를 가지고 있어야 할까요?
그렇지는 않습니다.
도메인에는 TLD
라고 부르는 영역이 있습니다. (Top-level domain)
.com
은 국제적인 범용 TLD
입니다. (gTLD
라고도 합니다.)
.us
는 미국의 TLD
입니다.
.kr, .co.kr
은 한국의 TLD
입니다.
TLD
별로 각각의 DB
가 있고 그 TLD
를 관장하는 국가또는 단체에서 관리합니다.
이것을 도메인 레지스트리
라고 합니다.
보통, 여러분이 도메인을 등록 할때 여러가지 정보를 적습니다.
이렇게 입력한 도메인의 메타데이터는 DNS
서버가 아니라 도메인 레지스트리 DB에 저장됩니다.
whois
를 통해 도메인의 정보를 요청하면
NS서버정보
를 요청하고NS서버에
도메인의 IP를 알려달라고 보내서imweb.me
의 IP주소를 얻는 방식 입니다.하지만, 이 DB
가 물리적으로 먼 곳에 있으면 지역에 따라 응답이 매우 느릴 수 있습니다.
따라서 레지스트리의 DB는 전세계의 엣지(edge) 서버에 복사되어 관리됩니다.
도메인의 NS정보
를 변경 하면, 반영되는데 하루 정도 걸리는데,
이것은 도메인 레지스트리의 DB는 바로 업데이트 되지만,
이를 전 세계의 엣지 서버에 동기화 하는데 시간이 걸리기 때문 입니다.
/etc/hosts
(윈도우는 C:\Windows\System32\drivers\etc\hosts
) 파일에 이 도메인의 IP주소가 있는 지 체크합니다. → 있으면 IP 리턴 하고 종료/etc/resolv.conf
에 정의된 nameserver
IP주소 를 가져옵니다.dig
처럼 imweb.me
의 IP주소를 요청 합니다.imweb.me
의 IP를 모를수도 있습니다. 이때는,imweb.me
에서 TLD를 꺼냅니다. → TLD는 .me
입니다..me
를 관리하는 레지스트리에게 imweb.me
도메인의 NS서버 정보를 요청 합니다.(길게 적었지만, 이 모든 과정은 대부분 0.5초 안에 끝납니다.)
캐시는 첫 응답을 보관했다가, 두번째는 보관한거 바로 꺼내 쓰는 개념 입니다.
누군가 계좌번호 알려달라 했을때 처음에는 찾아서 주다가 나중에는 아예 미리 써놓은 종이를 주는 것 같이 말이죠.
IP를 찾는 과정에서도 두번째 요청부터는 여러곳에서 캐시된 데이터가 사용 됩니다.
그렇지 않으면 인터넷이 엄청 느릴테니까요.
위처럼 여기저기 서로 캐시하기 때문에 DNS 조회 결과의 모호함이 가중 됩니다.
이것이 이 글의 목적입니다.
결국, DNS 룩업의 과정을 잘 이해 해야하는 이유 입니다.
어디서 캐시됐는지 알아야 대처를 할 수 있기 때문이죠.
아임웹은 모든 고객이 자신만의 도메인을 사용할 수 있습니다.
이로 인해 DNS 트러블 슈팅에 상당한 노하우를 가지고 있죠.
이제, 누구나 브랜드를 가져야 합니다.
귀찮은건 아임웹이 다 도와드릴께요.
https://www.imweb.me
오늘도 유익한 내용 되셨기를 기대하겠습니다.
감사합니다.
매튜 드림