본문 바로가기

웹개발/에러 잡기

R53의 메인 NS(네임 서버)에 다른 DNS를 넣었을 때 발생하는 일

SDP라는 학회에서 개발자로 활동하고 있다. 웹 어플리케이션을 개발하고 배포하던 중 DNS와 관련된 에러가 떴다. 자력으로 해결할 수가 없어서. AWS 오픈 카톡방에 계신 한 고수분께 도움을 구해서 해결했다.(ㅠㅠㅠ 친절하신 분...)

 

아래 글은 팀원들과 공유한 내용이다. 

 

 

===== Route53 장애와 관련된 이야기 =====

 

장애가 났던 R53

 

위의 것이 저희 원래 Route53(이하 R53이라 칭함) 설정입니다.

sdpglobal.org의 NS가 ns4.wixdns.net 으로 되어있습니다.

 

장애를 해결한 후 R53

 

이게 장애를 해결한 후 R53 설정입니다.

주목해야할 점은 sdpglobal.org 에서 유형이 NS(NameServer)로 된 행입니다. 지금은 awsdns로 정상 설정되어있네요.

 

저희는 Namecheap으로부터 sdpglobal.org 라는 도메인 네임을 구매했습니다. 도메인 네임은 실제 주소의 별명 같은겁니다.

 

말이 나온 김에 도메인 네임에 대한 감을 잡아봅시다. 인터넷의 모든 주체는 고유한 주소인 IP값을 가집니다. 예를 들어서 본인의 터미널(cmd든 뭐든)에서 nslookup google.com 을 실행하면

 

위와 같이 google.com의 실제 IP주소를 받아올 수 있습니다. (제 컴퓨터의 IP는 168.126.63.1 이군요) 구글은 굉장히 많은 IP를 가지고 있고, 저에게 가장 가까운 데이터센터의 IP를 돌려주기 때문에 집집마다 이 IP값은 다를 수 있습니다.

  아무튼 저 IP주소를 주소창에 치면 google.com에 접속할 수 있습니다. (한번 해보시는 거 추천합니다) 즉, google.com은 172.217.25.206의 별명입니다. 만약 "구글에 검색해봐~"가 아니라 "172.217.25.206에 검색해봐~"라고 말하는 세상이라면 굉장히 끔찍하겠죠?? 그래서 별명이 필요합니다. 

 

  이런 시스템을 DNS(Domain Name System)이라고 합니다. 저희는 NameCheap으로부터 이런 sdpglobal.org라는 도메인 네임을 구매했습니다. 그 후에 sdpglobal.org가 어떤 IP와 매칭되는 지는 설정을 해줘야겠죠 그걸 R53에서 할 겁니다. 

장애가 발생했던 R53 설정

 

다시 '이전 설정'입니다. 보시면 sdpglobal.org의 Name Server의 Value/Route traffic to가 ns4.wixdns로 되어있습니다.

 

그러면 어떻게 될까요?

 

누군가 sdpglobal.org를 검색하면 namecheap에서 출발한 요청이 R53에 도착한 후

 

"R53~ 나 어디로 가서 sdpglobal.org에 대한 IP찾지?"

"응~ ns4.wixdns.net으로 가면 돼~"

"고마워~"

 

하고 가버립니다.

 

ns4.wixdns.net은 윅스의 DNS 서버의 주소니까 sdpglobal.org에 대한 IP가 ns4.wixdns에 있을 겁니다. 그러니 윅스 안에서 알아서 이동시켜 주겠죠. 

 

문제는 tools.sdpglobal.org입니다. 사용자의 요청이 wix로 가버려서 tools.sdpglobal.org는 낙동강 오리알이 됐습니다. 여기서 url 구성을 잠깐 보고 갑시다. 

 

 

  주소는 뒤에서부터 끊어읽습니다.  tools.sdpglobal.org로 보자면 제일 뒤의 org를 Tob level Domain(TLD), sdpglobal을 Second Level Domain(SLD)이라 합니다.

 

 TLD ->  SLD -> ... 순으로 탐색을 이어갑니다.

 

  즉, .org의 DNS 서버에서 URI의 IP주소가 있는 DNS 서버에 대한 정보를 얻고... 이런 식으로 반복한 뒤 마지막으로 tools.sdpglobal.org에 대한 정보가 담긴 DNS 서버를 찾아서 그 DNS 서버에다가 "야 tools.sdpglobal.org의 IP 내놔!"라고 하는거죠. 얻어낸 IP를 사용자의 브라우저에 돌려주면 브라우저에서 해당 IP로 접속하는 것입니다(엄청 복잡하죠?)

 

  그래서 어제 "엥 tools.sdpglobal.org가 되는게 이상하네요"라는 말이 나왔던 것입니다... 이전에 sdpglobal.org의 Name Server를 ns4.wixdns.net으로 설정함으로써

 

"R53아 sdpglobal.org의 DNS 서버는 어디야?" 라고 묻는 요청에게

"ns4.wixdns.net으로 가면 돼~"라고 해버렸으니까요.

 

ns4.wixdns.net에는 tools.sdpglobal.org에 대한 정보가 있을 리가 없습니다. tools.sdpglobal.org는 R53에서 설정한 서브 도메인이니까요.

 

그런데 말이죠. 지금까지 tools.sdpglobal.org가 잘 돌아갔습니다. 진짜 이상하죠? 여기서 AWS의 저력이 등장합니다...

 

 

  R53은 멍청한 주인 몰래 힘겨운 사투를 벌이고 있었던 겁니다... 원래 저 R53의 NS는 바꾸면 안됩니다. 근데 바꿨으니 R53입장에서 "아니, 얘 왜이래!!!"가 되는 거고 100% 실수라고 간주하고 열심히 R53의 DNS 서버를 끼워넣으면서 정상 동작시키려고 애쓰고 있었습니다.

  원래는 저 위의 모든 DNS 서버가 ns4.wixdns.net 등 윅스의 것이어야 합니다. 제가 그렇게 설정했으니까요. 하지만 R53이 방파제 역할을 하고 있었던거죠. 그래서 저희가 tools.sdpglobal.org를 이용할 수 있었지만 이따금 접속장애가 발생했습니다. 

 

 

 

지금은 다 해결해 놓았습니다. 하지만 언제 장애가 날지 모릅니다. 그러면 그 때 또 공부해서 해결해 놓겠습니다...