[小ネタ]Route 53 Resolver アウトバウンドエンドポイントを別々のVPCで利用する場合に必要な通信経路を確認してみた

2023.12.14

こんにちは。
繁松です。

はじめに

Route 53 Resolver アウトバウンドエンドポイントを別々のVPCで利用する場合に必要な通信経路はどこか、Transit Gatewayで通信している環境で検証してみたのでブログにしました。

  • Route 53 Resolver について

説明

確認したかったことを図で説明します。

確認したかったこと

  • ①通信元サーバーから別VPCのDNSサーバーで名前解決を行いたい。
    • TGW ルートテーブルに必要な設定は?[VPC A ⇔ VPC X]?、[VPC X ⇔ VPC Y]?、[VPC Y ⇔ VPC A]?どれが必要なのか?
  • ②名前解決後に通信元サーバーから通信先サーバーに通信したい。
    • TGW ルートテーブルに必要な設定は?多分[VPC A ⇔ VPC B]だけでOKか?
  • 構成について補足
    • アカウントは2アカウント(図左右)
    • VPC
      • VPC A(通信元サーバー用):10.0.1.0/24
      • VPC B(通信先サーバー用):10.0.2.0/24
      • VPC X(アウトバウンドエンドポイント用):10.0.10.0/24
      • VPC Y(DNSサーバー用):10.0.11.0/24
    • TGWルートテーブルはTGWアタッチメント毎に個別に設定
    • アウトバウントエンドポイントリゾルバールールはResource Access Managerで共有

結論

①名前解決に必要な経路
[VPC X ⇔ VPC Y]の通信経路が必要です。

  • VPC X TGW Route Table(アウトバウンドエンドポイント用)の設定
CIDR アタッチメントID リソース(VPC) リソースタイプ ルートタイプ
10.0.11.0/24 VPC Y TGW Attachment ID VPC Y(DNSサーバー用) VPC 静的
  • VPC Y TGW Route Table(DNSサーバー用)の設定
CIDR アタッチメントID リソース(VPC) リソースタイプ ルートタイプ
10.0.10.0/24 VPC X TGW Attachment ID VPC X(アウトバウンドエンドポイント用) VPC 静的

②名前解決後に通信元サーバーから通信先サーバーの通信に必要な経路
[VPC A ⇔ VPC B]の通信経路が必要です。

  • VPC A TGW Route Table(通信元サーバー用)の設定
CIDR アタッチメントID リソース(VPC) リソースタイプ ルートタイプ
10.0.2.0/24 VPC B TGW Attachment ID VPC B(送信先サーバー用) VPC 静的
  • VPC B TGW Route Table(通信先サーバー用)の設定
CIDR アタッチメントID リソース(VPC) リソースタイプ ルートタイプ
10.0.1.0/24 VPC A TGW Attachment ID VPC A(送信元サーバー用) VPC 静的

やってみた

大前さんのブログを参考に構築しました。

環境について

送信先サーバーのIPアドレス:10.0.2.10
DNSサーバーの設定:

server:
interface: 0.0.0.0

access-control: 10.0.0.0/8 allow

do-ip6: no

local-zone: "shige.local." static

local-data: "web.shige.local. IN A 10.0.2.10"
local-data-ptr: "10.0.2.10 web.shige.local."

①通信元サーバーから名前解決(web.shige.local.)し送信元サーバーのIPアドレスが返ってくることを確認

[ec2-user@ip-10-0-1-36 ~]$ dig web.shige.local. +short
10.0.2.10

②通信元サーバーから通信先サーバーに通信
送信先サーバーではapacheを起動させて静的コンテンツを準備し、通信出来ていることを確認

[ec2-user@ip-10-0-1-36 ~]$ curl web.shige.local
Hello world!20231214

さいごに

Route53 Resolver EndpointをマルチアカウントのVPCで利用する場合に必要な通信経路について改めて確認してみました。
今回のような環境で名前解決を行うには、アウトバウンドエンドポイントのVPCとDNSサーバーのVPCが通信出来ていれば名前解決可能ということがわかりました。

参考