Today Keys : resolver, route53, dns, hybrid, 하이브리드, 쿼리, query, 질의, 레코드, on-premise, aws, 아마존, endpoint
이번 포스팅은 클라우드와 On-Premise의 하이브리드 클라우드 환경에서 원활한 DNS 질의 확인이 가능하도록 도와주는 Route53 Resolver에 대한 포스팅입니다. DNS Endpoint 및 Forwarding Policy를 통해서 On-premise와 Cloud 간의 도메인 질의를 손쉽게 도와줍니다.
이번 Route53 Resolver 포스팅에서 구성하게 될 구성도입니다.
AWS에서는 Route53에 테스트용 Zone과 레코드를 생성하고(zigi2.space), Route53 Resolver를 생성합니다.
On-Premise에서는 On-Prem용 DNS를 구성하고, 마찬가지로 테스트용 Zone과 레코드(zigi.space)를 생성합니다.
Route 53의 Resolver 메뉴로 들어가서 보면, 아래와 같이 Route 53 Resolver에 대한 개념도와 함께 설명이 있습니다.
'Configure endpoints' 를 클릭해서, Route 53 Resolver를 만들겠습니다.
Resolver는 총 5단계로 진행됩니다. 첫 번째는 Route 53에 대한 Resolver에 대한 방향성에 대한 부분입니다. Inbound와 Outbound 모두 적용해서 Endpoint를 생성 할 것인지, 아니면 Inbound 혹은 Outbound 방향에 대해서 정합니다. 본 포스팅에서는 양방향에 대해서 모두 적용합니다.
2단계로는 Inbound에 대한 endpoint 생성입니다.
inbound는 On-premise 혹은 다른 VPC에서의 DNS query를 받아주기 위한 endpont입니다. 먼저 Endpoint 이름과 VPC, 그리고 이 Endpoint에 대한 접근 제어용 Security Group를 정합니다.VPC와 Security Group은 endpoint 생성 이후 변경이 불가하며, 필요 시 삭제 후 만들어야 합니다.
이제 EndPoint에 대한 정보를 정합니다. Availability Zone과 Subnet을 정하고, endpoint에 할당 될 IP를 정하는 데자동으로 하거나, 아래와 같이 현재 미 사용 중인 IP 중에서 지정이 가능합니다.
추가로 필요 시 tag를 지정 할 수 있습니다.
3단계는 Outbound에 대한 Endpoint 입니다.
Outbound는 해당 리전에서 사용하는 Outbound 용 Endpoint 입니다. 먼저 Endpoint 이름과 VPC, 그리고 이 Endpoint에 대한 접근 제어용 Security Group를 정합니다.VPC와 Security Group은 endpoint 생성 이후 변경이 불가하며, 필요 시 삭제 후 만들어야 합니다.
이제 EndPoint에 대한 정보를 정합니다. Availability Zone과 Subnet을 정하고, endpoint에 할당 될 IP를 정하는 데자동으로 하거나, 아래와 같이 현재 미 사용 중인 IP 중에서 지정이 가능합니다.
마찬가지로 Tag를 지정 할 수 있습니다.
4단계는 도메인 Rule에 대한 설정입니다.
도메인 Rule은 Outbound, 즉 VPC 내에서 특정 도메인에 대해서 외부로 질의를 하도록 하기 위한 정책입니다.사용자가 지정한 rule에 따라서 해당 도메인은 사용자가 지정한 DNS 서버로 직접 질의한 값을 받게 됩니다.
이름을 지정하고, Rule type을 정합니다. Forward로 지정하게 되면, 아래에서 지정하는 도메인에 대해서, 특정 Target IP로 질의하게 됩니다. Target IP는 아래에서 설정하게 되면, On-Premise의 DNS로 지정하면 됩니다.그리고 도메인을 지정합니다. 이 도메인에 대한 질의에 대해서는 전달하게 되는 것입니다.그리고 이러한 Rule이 적용될 VPC를 지정합니다.
Rule에서 정한 도메인에 대한 질의가 오는 경우에 Query를 던질 목적지 IP와 포트를 지정합니다.
Tag도 지정이 가능합니다만, 본 예제에서는 별도로 지정하지 않았습니다.
5단계는 다른 설정과 마찬가지로 전체 설정에 대한 Review입니다.
앞서 설정한 값을 확인하고 이상이 없으면 Resolver를 생성합니다.
먼저 AWS에서 On-Premise의 사설 도메인인 zigi.space로의 질의입니다.아래의 결과는 현재 Resolver 생성 전입니다. Resolver가 없기 때문에 사설 도메인에 대한 질의가 실패합니다.
하지만, Resolver 생성전이라도 질의를 할 서버를 사설 도메인을 갖고 있는DNS 서버로 직접 질의하면 결과 값을 응답 받을 수 있습니다.
이제 Resolver를 생성 이후의 결과 값입니다.처음의 질의와 동일하게 하더라도 Resolver에 의해서 내부 DNS로 질의를 전달하여 받은 값을질의 결과 값을 리턴하게 됩니다.
다음은 Inbound에 대한 확인입니다. Inbound 확인을 위해서 Route 53에서 Private DNS를 만듭니다.Private DNS 레코드로 만든 것은 zigi2.space에 대한 A 레코드입니다.
On-Premise의 DNS 서버에서도 Route53으로 생성한 Private DNS(zigi2.space)에 대해서Conditional Forwarder를 이용해서 앞선 만들었던 Inbound Endpoint 지정합니다.
이제 On-Premise 서버에서 On-Premise의 DNS로 Route53에서 생성한 zigi2.space로 질의하면
아래와 같이 정상적인 질의 값을 받아오는 것을 확인할 수 있습니다.