이것이 점프 투 공작소

DNS존과 네임서버, AWS Resolver로 On-Prem DNS서버 질의하기 본문

aws

DNS존과 네임서버, AWS Resolver로 On-Prem DNS서버 질의하기

겅겅겅 2023. 10. 19. 22:25

DNS Zone이란?

DNS Zone은 도메인 네임스페이스라고도 합니다.

DNS는 트리구조로 되어있는데 최상위에 root 도메인, TLD(Top Level Domain), 서브 도메인으로 이루어져있습니다.

각 도메인 영역마다 별도의 Zone을 만들어서 관리 할 수 있습니다.

예를 들어 TLD인 google.com, 서브도메인 a.google.com , b.google.com 마다 각각의 Zone을 가질 수 있습니다.

영역에 대한 모든 정보는 DNS 영역 파일이라는 이름으로 저장됩니다.

네임서버와 DNS 레코드란?

사용자가 도메인을 질의하거나, 도메인을 통해 통신할때, 도메인의 네임서버에 질의를 하여 설정된 값을 찾아 통신을 하게 합니다.

이때, 네임서버에 설정된 값들을 DNS레코드라고 합니다.

각 DNS Zone 마다 DNS레코드를 가지며, Root DNS 서버는 전 세계에 13개가 존재합니다.

 

AWS의 Route53에서도 네임서버를 확인 할 수 있습니다.

DNS 레코드 값

  • 도메인 명 : example.com
    • DNS 존의 주 도메인 이름을 나타냅니다.
  • SOA 레코드 (Start of Authority):
    • 주 존에 대한 권한을 설정하는 레코드로, DNS 존의 시작을 나타냅니다.
  • NS 레코드 (Name Server):
    • 주 DNS 서버와 관련된 네임서버의 정보를 포함하며, 해당 도메인의 DNS를 관리하는 네임서버를 지정합니다.
    • 도메인에 대한 네임서버의 권한을 가지고 있는지 확인합니다.
  • A 레코드 (Address):
    • 호스트 이름(예: www)을 IPv4 주소로 매핑하는 레코드입니다.
    • 하나의 도메인에 여러 A레코드를 사용 할 수 있습니다.
  • AAAA 레코드 (IPv6 Address):
    • 호스트 이름(예: www)을 IPv6 주소로 매핑하는 레코드입니다.
  • CNAME 레코드 (Canonical Name):
    • 호스트 이름(예: www)을 다른 도메인 이름(예: another-example.com)에 별칭으로 매핑하는 레코드입니다.
  • MX 레코드 (Mail Exchanger):
    • 이메일을 수신하는 메일 서버의 우선순위 및 호스트 이름을 지정하는 레코드입니다.
  • TXT 레코드 (Text):
    • 텍스트 정보를 포함하며, SPF(Sender Policy Framework) 레코드와 같이 이메일 스팸 방지 정책과 같은 정보를 포함할 때 사용됩니다.
  • SRV 레코드 (Service):
    • 서비스의 위치 및 우선순위를 지정하며, 주로 VoIP 및 SIP 등과 같은 서비스에서 사용됩니다.
  • PTR 레코드 (Pointer):
    • IP 주소를 호스트 이름으로 역으로 해석하는데 사용됩니다.

DNS Resolver란?

DNS Resolver는 클라이언트(사용자)가 DNS 서버에 보내는 요청을 처리합니다.

이러한 요청을 DNS Query라고 하며,

DNS Resolver의 동작 순서는 아래와 같습니다.

  1. 클라이언트에서 DNS 쿼리를 발생시킵니다.
  2. DNS 쿼리가 Resolver에 도착하면 도메인 트리구조(Root -> TLD -> SubDomain)에 따라 각 네임서버에 요청하여 응답을 받습니다.
  3. 전달받은 요청 DNS의 IP를 클라이언트에 반환합니다.

출처 : AWS

AWS Resolver로 On-Prem과 DNS 질의하기

AWS와 On-Prem 이 합쳐진 하이브리드 환경에서는 두 환경간 DNS 질의가 필요합니다.

DX를 통해 두 인프라의 통신이 가능하다면 AWS Resolver의 Inbound Endpoint, Outbound Endpoint를 이용하여 이를 구현 할 수 있습니다.

각 EndPoint들은 VPC와 연동되며, 1초의 약 10000번의 DNS쿼리를 지원합니다.

Inbound Endpoint (On-Prem -> AWS)

외부(On-Prem) 네트워크가 DNS쿼리를 AWS의 Resolver로 보내게되는 엔드포인트입니다. 

Outbound Endpoint (AWS -> On-Prem)

 AWS의 네트워크가 DNS쿼리를 외부(On-Prem)의 Resolver로 보내게되는 엔드포인트입니다. 

AWS <-> On-Prem Resolver 생성하기 

1. Route53의 Resolver에서 인바운드 엔드포인트를 생성

2. 엔드포인트와 VPC, SG 연결

3. 엔드포인트의 IP 주소 지정

HA를 위해 2개의 가용영역에 IP를 지정해야합니다.

여기서 생성된 IP를 이용하여 On-Prem -> AWS  DNS질의를 하게됩니다.

두 인프라 간의 DNS 질의를 위한 NAT라고 생각하셔도 될 것 같습니다.

4.  Outbound Endpoint의 VPC, SG를 연결합니다.

5. Outbound Endpoint IP 생성

Inbound Endpoint와 동일하게 2개의 IP를 생성합니다.

여기서 생성된 IP는 AWS -> On-Prem으로 DNS 쿼리를 전달할때 사용되는 NAT라고 생각하시면 됩니다.

6. 규칙(Rule) 생성

Resolver의 규칙을 생성합니다.

Resolver에서 해석을 위한 도메인을 지정합니다.

대상 IP주소에는 On-Prem의 NameServer IP와 포트를 지정해주시면됩니다.

생성한 Resolver 확인