# 2023. 11.
# 11. 19.
# 도메인 설정을 위한 DNS 이해하기
얼마 전, 개인블로그에 도메인을 연결하기 위해 가비아에서 rtolzo.dev 도메인을 구입하였다.
# 왜 dev 도메인을 가비아에서..??
이는 가비아는 최상위 도메인(TLD)인 dev NameServer(이하 NS)와 제휴관계를 맺고 있기에 가능하다.
# 관리는 어디서 하는가??
내가 가비아에서 rtolzo.dev 도메인을 구입하면 가비아는 dev NS에게 다음과 같은 요청을 보낸다.
가비아 : rtolzo.dev도메인은 내가 관리할게! 너의 (dev NS) 레코드에 추가해줘!
이 요청 이후 각 NS의 상태는 그림 1과 같다.
우리는 가비아에서 rtolzo.dev 도메인을 구입하면 해당 도메인에 대한 레코드는 가비아에서 관리할 수 있다. 그림 1에서 gabia NS의 rtolzo.dev에 대한 Record Table에 A 레코드로 IP가 매핑된것을 확인할 수 있다. 이 의미는 dev NS가 rtolzo.dev 라는 질의를 받았을 때
dev NS : 나는 rtolzo.dev에 대한 IP주소를 모르니 ns.gabia.co.kr로 안내할게
라고 하는것과 같다. 실제로 gabia NS에 rtolzo.dev 에 대한 실제 IP 주소가 저장되어있으니 우리는 반복적 질의과정을 통해서
Root NS - dev NS - gabia NS 순으로 질의를 하여 rtolzo.dev의 최종 IP 주소를 얻게 되는 것이다.
# 가비아에서 구매한 도메인을 AWS에서 관리하고 싶다면??
AWS도 가비아 처럼 NS가 존재하기에 (Route53) 우리는 Route53에서 rtolzo.dev 이라는 Zone(관리 구역)을 생성하면 해당 Zone에 대한 AWS NS 주소를 발급해준다. 우리는 가비아에서 도메인을 관리 할 수 있기에, dev NS가 rtolzo.dev에 대해 가르키고 있는 NS 주소를 바꿔줄 수 있다 (처음에는 gabia NS로 설정되어있다). 관리하고자 하는 NS를 가비아에서 AWS로 바꾸고자하면 이 주소를 Route53에서 발급받은 AWS NS로 바꿔주면 된다. 이 과정 이후의 반복적 질의는 Root NS - dev NS - AWS NS 순으로 진행되며 dev NS가 rtolzo.dev 에 대한 질의를 받았을 때
dev NS : 나는 rtolzo.dev에 대한 IP주소를 모르니 ns-71.awsdns-08.com으로 안내할게
라고 하는것과 같다. (그림 2 참조)
추가로 AWS NS에서 rtolzo.dev 레코드에 새로운 til에 대한 A 레코드를 추가하였을 때
til.rtolzo.dev 에 대한 질의 과정은 그림 3과 같다.
- 단말기에서 ISP Resolver로 til.rtolzo.dev에 대한 질의를 한다. (ISP Resolver는 통신사에서 제공한다.)
- ISP Resolver는 Root NS에게 질의를 한다.
- Root NS는 til.rtolzo.dev에서 최상위 계층인 dev NS의 정보를 반환한다.
- ISP Resolver는 Root NS의 응답을 바탕으로 다시 dev TLD Name Server에게 질의를 한다.
- 우리가 가비아에서 NS를 AWS로 설정하였기 때문에 dev TLD NS는 AWS NS 정보를 반환한다.
- ISP Resolver는 dev NS의 응답을 바탕으로 다시 AWS NS에게 질의를 한다.
- AWS NS는 저장되어있는 rtolzo.dev Zone 에 저장되어있는 레코드에서 서브 도메인인 til에 매핑되어있는 주소를 반환한다.
- ISP는 위 과정을 통해 얻은 rtolzo.dev에 대한 IP 주소를 단말기에게 알려준다.
# 레퍼런스
DNS 란 무엇입니까? - https://aws.amazon.com/ko/route53/what-is-dns/ (opens new window)
DNS 동작 원리 - https://www.cloudflare.com/ko-kr/learning/dns/what-is-dns/ (opens new window)