[AWS] On-Premises와 AWS간의 Hybrid DNS
aws workshop studio의 [PRD] 2024 ConntectX for Partners - Hybrid Network using AWS VPN의 lab을 정리한 내용이다.
시나리오는 다음과 같다.
Anycompany는 On-Premises사용자들을 위해 DNS서버(Domain : anycompany.corp)가 구성되어 있습니다.
AWS에는 Route53을 이용하여 DNS(awsanycompany.corp)이 구성되어 있습니다.
1) On-Premises 및 AWS 시스템간의 도메인을 통한 접속을 하고자 합니다.
2) AWS시스템에 접속할 때, IPv4주소를 기억하지 않고 Domain(awsanycompany.corp)정보를 이용하여 접속하고자 합니다.
HQ-IDC와 HQ-AWS 간의 도메인 서버 간 DNS Query가 전송되어 사설 통신이 이루어지도록 해야한다.
AWS Hybrid DNS
온프레미스 DNS를 Route 53 DNS와 통합할 수 있는 하이브리드 DNS 인프라를 생성한다.
Route53 Resolver는 온프레미스 DNS 인프라와 AWS간 하이브리드 DNS 아키텍처를 활성화하기 위한 도구를 제공한다.
- Outbound Endpoint: 온프레미스 DNS 인프라에 대한 DNS 쿼리는 아웃바운드 엔드포인트에서 시작된다.
- Inbound Endpoint: AWS에서 호스팅되는 DNS 도메인에 대한 온프레미스 DNS 인프라의 DNS 쿼리 대상 역할을 한다.
- Route 53 Resolver Rule: 특정 DNS 도메인에 대한 DNS 쿼리를 온프레미스 DNS 서버로 전달하도록 Route53 규칙을 생성할 수 있다.
Hosted Zone
네임서버를 매니지드 방식으로 제공하는 서비스다.
기업 등에서 네임서버를 이용할 때, 사내에서 접속할 때와 인터넷에서 접속할 때의 이름을 구분하고 싶을 때가 있다.
이러한 경우를 가정하여, 특정 VPC에서 들어오는 쿼리와 그렇지 않은 쿼리를 구분하여 서로 다른 응답을 반환할 수 있는 기능을 제공한다.
- Public hosted zone : 인터넷에 공개된 DNS 도메인의 레코드를 관리하는 컨테이너
- Private hosted zone : VPC에 폐쇄된 사설 네트워크 내 DNS 도메인 레코드를 관리하는 컨테이너, VPC 내부에서 R53 Resolver라는 표준으로 제공되는 리졸버를 통해 접근해야한다.
DNS구성 확인하기
기본 구성 상태는 다음과 같다.
온프레미스 | anycompany.corp | 192.168.2.250 (DNS) | 192.168.2.20 (WEB) |
AWS | awscompany.corp | 10.0.10.10 (WEB01) | 10.0.20.10 (WEB02) |
온프레미스 IDC의 DNS 설정 확인
1. IDC서버에 접속해서 SERVER에 할당된 DNS 정보를 확인한다.
cat /etc/resolv.conf
sh-4.2$ cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search anycompany.corp
options timeout:2 attempts:5
nameserver 192.168.2.250
2. DNS 서버에서 온프레미스 DNS의 조건부 전달 규칙(Conditional Forward Rule)을 확인한다.
awsanycompany.corp와 ap-northeast-2.compute.interal 도메인에 대해서 Endpoint로 전달하는 규칙을 확인 할 수 있다.
sudo su -
cat /etc/bind/named.conf.options
root@DNSSRV:~# cat /etc/bind/named.conf.options
options {
directory "/var/cache/bind";
recursion yes;
allow-query { any; };
forwarders {
8.8.8.8;
};
forward only;
auth-nxdomain no;
};
zone "awsanycompany.corp" {
type forward;
forward only;
forwarders { 10.0.1.250; 10.0.2.250; };
};
zone "ap-northeast-2.compute.internal" {
type forward;
forward only;
forwarders { 10.0.1.250; 10.0.2.250; };
};
AWS의 DNS 설정 확인
1. Route53 -> Hosted Zone에서 Resource Record 정보를 확인한다.
2. AWS WEB 서버에 접속해 Resolver의 설정을 확인한다.
cat /etc/resolv.conf
sh-4.2$ cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search ap-northeast-2.compute.internal
options timeout:2 attempts:5
nameserver 10.0.0.2
sh-4.2$
3. Private Hosted Zone에 등록되어있는 RRset의 값이 정상적으로 확인되는지 아래와 같이 확인한다.
nslookup web1.awsanycompany.corp
nslookup web2.awsanycompany.corp
sh-4.2$ nslookup web1.awsanycompany.corp
Server: 10.0.0.2
Address: 10.0.0.2#53
Non-authoritative answer:
Name: web1.awsanycompany.corp
Address: 10.0.10.10
sh-4.2$ nslookup web2.awsanycompany.corp
Server: 10.0.0.2
Address: 10.0.0.2#53
Non-authoritative answer:
Name: web2.awsanycompany.corp
Address: 10.0.20.10
엔드포인트 구성하기
1. Route53 콘솔 -> Resolver -> VPC를 선택 후 Resolver 구성을 위해 Configure endpoints를 선택한다.
2. 인바운드와 아웃바운드를 동시에 설정 후 다음과 같이 구성한다.
3. 조건부 전달 규칙(Conditional Forward Rule)을 설정한다.
모든 설정이 완료되면 아래와 같은 형태로 2개의 AZ에 인바운드/아웃바운드 엔드포인트가 생성된다.
Hybrid DNS 구성 검증
1. Outbound Endpoint 구성 검증
- Web Instance에서 DNS Query(websrv.anycompany.corp)는 R53으로 전송이 된다.
- DNS 질의를 수신한 R53은 Resolver에 규정되어 있는 조건부 전송 규칙에 따라 anycompany.corp 도메인에 대해서 192.168.2.250으로 전송하게 된다.
- DNS Query는 아웃바운드 엔드포인트를 통해 TGW로 전송이 된다.
- TGW에서는 목적지 주소(192.168.2.250)를 확인하고, Site-to-Site VPN을 통해 온프레미스로 전송하게 되며, 이를 수신한 CGW는 IDC내의 DNS서버로 Query를 전달하게된다.
- 온프레미스 IDC DNS(192.168.2.250)는 수신된 Query의 내용을 확인하여 WEBSRV를 회신한다.
2. Inbound Endpoint 구성 검증
- Websrv 인스턴스에서 DNS Query(web1.awsanycompany.corp)는 Route53으로 전송이 된다.
- DNS 질의를 수신한 DNS 서버는 조건부 전송 규칙에 따라 awsanycompany.corp 도메인에 대해 10.0.10.250 혹은 10.0.20.250으로 전송한다
- CGW는 목적지 주소를 기반으로 Site-to-Site VPN을 통해 TGW로 Query 패킷을 전송한다.
- TGW는 수신한 Query정보를 확인하여 인바운드 엔드포인트로 전송하게된다.
- 인바운드 엔드포인트는 이를 R53 Resolver에 전송하게 되며 Private Hosted Zone에서 web서버의 IPv4 주소를 확인하여 회신한다.
'💻 CSP > AWS' 카테고리의 다른 글
[AWS] Client VPN (2) (0) | 2024.02.27 |
---|---|
[AWS] Client VPN (1) (0) | 2024.02.26 |
[AWS] Site-to-Site VPN 구성하기 (0) | 2024.02.22 |
[AWS] Site-to-site VPN (0) | 2024.02.21 |
[AWS] profile 확인 (0) | 2024.01.02 |