[DNS] DNS의 동작 원리와 Azure DNS

작성자
Roronoa
작성일
2020-12-14 23:05
조회
4012
DNS 계층
002 compute-multi-vm

DNS Resolver

DNS Resolver는 DNS 클라이언트의 요청을 다른 종류의 네임서버로 보내고 다른 네임서버로 부터 정보를 받아 해석하는 역활을 합니다. 

Root Name Server

DNS Resolver 가 처음 쿼리하는 서버를 Root Name Server라 하며 루트 서버는 .com과 같은 최상위 도메인에 대한 DNS 정보를 알고 있으며 이를 DNS Resolve에 다시 보내 주는 역활을 한다.

TLB Name Server

TLD 서버는 최상위 도메인 의 바로 밑에 차상위 도메인에 대한 주소 정보를 저장하는 서버 입니다

Authoritative Name Server

Azure DNS 나 Route53과 같은 Name 서버를 지칭합니다.

 

DNS 동작 원리

002 compute-multi-vm

1번 유저가 클라이언트의  크롬 브라우저에서 www.example.com을 입력합니다

2번 www.example.com에 대한 요청은 일반적으로 케이블 인터넷 제공 업체,  KT SK LG 등등의 회사 네트워크와 같은 사용자의 인터넷 서비스 제공 업체 (ISP)에서 관리하는 DNS Resolver로 라우팅됩니다.

3번 ISP의 DNS Resolver는 www.example.com에 대한 요청을 DNS 루트 이름 서버로 전달합니다. https://webdir.tistory.com/161

4번 ISP의 DNS Resolver는 www.example.com에 대한 요청을 다시 전달합니다. 이번에는 .com 도메인의 TLD 이름 서버 중 하나로 전달합니다. .com 도메인의 이름 서버는 example.com 도메인과 연결된 4 개의 Authoritative name server의 이름으로 요청에 응답합니다.ISP의 DNS Resolver는 Authoritative name server를 선택하고 www.example.com에 대한 요청을 해당 이름 서버로 전달합니다.https://www.joinc.co.kr/w/man/12/DNS/AuthoritativeNameServer

5번 ISP의 DNS Resolver는 Authoritative name server를 선택하고 www.example.com에 대한 요청을 해당 이름 서버로 전달합니다.

6번 Authoritative name server는 example.com 호스팅 영역에서 www.example.com 레코드를 찾고 웹 서버의 IP 주소 18.19.20.21와 같은 관련 값을 가져 와서 DNS에 IP 주소를 반환합니다.

7번 ISP의 DNS Resolver는 사용자에게 필요한 IP 주소를 갖게되고 Resolver는 해당 값을 웹 브라우저에 반환합니다. 또한 DNS 해석기는 사용자가 지정한 시간 동안 example.com의 IP 주소를 캐시 (저장)하여 다음에 누군가가 example.com을 검색 할 때 더 빠르게 응답 할 수 있도록합니다.

8번 웹 브라우저는 www.example.com에 대한 요청을 DNS 해석기에서받은 IP 주소로 보냅니다. 

9번 18.19.20.21의 웹 서버 또는 기타 리소스는 www.example.com의 웹 페이지를 웹 브라우저로 반환하고 웹 브라우저는 페이지를 표시합니다.

Azure Public DNS 는 무엇인가?

 

말그대로 Domain Name System이다. 유저가 www.example.com으로 접근했을때 example.com의 주소가 숫자 아이피로 nameserver를 거쳐서 바뀌어서 보내주면 그 주소를  IP  주소 1.2.3.4 로 보내준다. 그 보내준 주소값(IP Address) 를 통하여 실제 VM이나 가상컴퓨터 로 접속해주는 것입니다. 일반적으로 고우대디나 기타 도메인 업체의 네임서버는 기본값이 2개의 네임서버를 제공하나 Azure의 경우 네임서버는 4개를 기본값으로 제공합니다.. Authoritative name server 가 Azure Public DNS 입니다. 맨 위에 그림에서 5번 6번 역활을 하는 것이 Azure Public DNS이며 DNS 레코드 관리를 할 수 있고 외부 리소스에 대한 DNS 쿼리를 제공하며 글로벌 네트워크에 호스팅 되며 애니케스트 네트워킹을 사용합니다. (DNSSEC은 제공 안함)

 

Authoritative name server 란 ?

Azure DNS가 이 역활을 하며 Azure DNS의 Zone에서 DNS 요청에 응답을 하는 네임서버를 의미합니다.

 

Azure Private DNS  

Azure DNS의 Private Domain을 알아봅시다. 이를 알기전에 이미 가상네트워크에 대한 기본을 알고 읽어야 감이 올수 있습니다. 온프레미스 시절부터 실제 네트워크에 Private IP(사설 IP) 주소가 가상네트워크에 적용되며 온프레미스 시절에 네트워크에서도 IP대신 도메인으로 설정을 원할때 보통 도메인서버를 내부 내트워크에 설정해서 만들곤 했다.

(이제 이것이필요없어진것이다.) 

물론 내부망에 사설 VM이나머신에 도메인 서버 하나 만들어서 각 Private IP를 도메인에 매핑하면 된다. Azure DNS에 원래 이 기능이 없었는데 왜 만들어 줬을까? (필요하니깐 ㅋㅋ)

사설이든지 공개 망이든지 IP 로 연결할때의 장점과 단점이 있으며 도메인으로 연결할때의 장점과 단점이 있지만 일반적으로는 도메인으로 연결하는것이 좋습니다. 단점도 있지만 IP의 경우 소유권이 없어지거나 다양한 이유에 의해 읽기가 쉽고 ....(사실 익숙해지면 아이피따위의 숫자정도)는 물론 100대 넘어가면 슬슬 뇌의 망각기능이 On되기 때문에 ... 아무튼 엄마가 좋냐 아빠가 좋냐 차이를 이렇다라고 결론내고 싶지 않습니다

결론적으로 Azure Private Domain은 Azure Virtual Network의 주소공간(Address Space)의 디바이스에 연결이 가능하여 내부적으로 도메인으로 연동되게 할수 있습니다.

자동등록 기능은 가상네트워크에 Private DNS를 설정하면 자동으로 그 가상네트워크에 있는 VM은 Private IP가 자동으로 등록되고 없어집니다. 그러나 VM DNS

가 활성화 된 위에 경우는 그 가상네트워크를 하나의 Private 영역에만 연결할 수 있습니다

프라이빗 영역에 연결된 모든 가상네트워크 에서 정방향 DNS 확인이 가능하며 역방향은 가상네트워크 범위 내만 지원됩니다.

 

Apex Domain

끝점 도메인으로 Naked Domain이라고도 하며 예를들어 example.com이 Apex 도메인이며 Naked Domain(벌거벗은 도메인) 입니다.

 

DNS Zone

DNS zone은 특정도메인(example.com) 에 대한 DNS 레코드를 호스트 하는데 사용됩니다

예를들어 DNS에서 도메인을 호스팅 하려면 먼저 DNS Zone을 먼저 만들어야 하며 이는 Public일 경우 고유한 DNS를 사용해야하며 도메인 등록 기관에는 한개만 만들 수 있습니다.

도메인을 소유하지 않아도 도메인 Zone을 Azure DNS에서 만들 수는 있지만 호스트 하려면 소유 해야 합니다.

 

DNS Record

-A Record 는 가장 기본적인 DNS 레코드 유형이며 도메인 또는 서브도메인이 IP 주소를 가르키도록 하는데 사용됩니다. A 레코드에 값을 할당하는 것은 TTL과 IP 주소 또는 Alias 만 세팅할수 있습니다. 밑에 사진처럼 Name에는 Apex Domain으로 빈칸으로 놓을 수도 있으며 Sub domain을 생성해서 A record를 생성할수 있습니다. 물론 Alias 별칭으로 다른 리소스도 사용할수 있습니다. 

-TTL 값

DNS 캐쉬 서버가 DNS서버에 연결하여 레코드의 새 복사본을 가져 오기 전에 DNS 레코드를 제공할수 있는 시간을 나타내며 지정한 시간을 넣으면 그 시간 동안에 DNS 설정 값을 가져오는 캐싱하는 역활을 합니다.

-Alias 란

별칭으로 Azure의 다른 리소스를 IP 부분이 아닌 별칭을 바로 연결할수 있는 기능입니다
002 compute-multi-vm

-CNAME 이란?

DNS 서비스의 CNAME은 도메인 별명으로 Canonical Name의 약자로 도메인 주소를 또 다른 도메인 주소로 매핑시키는 record 타입입니다. 예를 들어 example.com이 있고 서브 도메인이 naver 이면 naver.example.com을 만들수 있습니다. 그럼 이 naver.example.com이 다른 daum.example.com으로 Alias를 가지도록 만들어 주는 기능입니다.

 
002 compute-multi-vm