内容
オンプレミスのDNSサーバにフォワード設定後、Route53のインバウンドエンドポイントに特定ドメインの名前解決を転送する設定を行うことがあると思います。オンプレミス側のDNSサーバ想定環境を作成して、DNSサーバでフォワード設定を行った際の動きを見てみます。DNSサーバはLinux環境にbindをインストールします。
構成
下記の図でEC2がオンプレミス側のDNSサーバ想定環境になります。ECサーバ内部からRoute53のプライベートホストゾーンに登録されたwww.gov.xxx.co.jpという名前解決を行う検証となります。EC2サーバ内部からの名前解決の流れは下記になります。
- EC2サーバから
nslookup www.gov.xxx.co.jp
コマンドを実行します。 -
/etc/resolv.conf
には問合せ先のDNSサーバを指定します。EC2内に構築したDNSサーバに問合せを行うため、ここはEC2サーバのローカルのIPアドレスとなります。 -
nslookup www.gov.xxx.co.jp
コマンドを実行した際、/etc/resolv.conf
を参照し、172.20.1.10(ローカルにインストールされたDNSサーバ)に名前解決のリクエストを送信します。 - DNSサーバには
gov.xxx.co.jp
はインバンドエンドポイントに転送するといったルールを記載します。 - インバウンドエンドポイントに転送後、Route53のホストゾーンからAレコードを取得します。
環境構築
前提
- プライベートホストゾーンが作成済みである。
- インバウンドエンドポイントが作成済みである。
- VPCおよびEC2が作成済みである。
- セキュリティグループ、ルートテーブルの設定などが適切にされている。
上記準備が完了している状態でEC2にbindのインストール、設定を行っていきます。
構築
- bindのインストール
yum install -y bind bind-utils
- bindの設定
listen-on port 53にEC2のIPアドレスを設定します。またgov.xxx.co.jpをDNSインバウンドエイドポイントに転送するためのZoneを記述します。
vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 172.20.1.10; };
listen-on-v6 port 53 { none; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
dnssec-enable no;
dnssec-validation no;
};
zone "gov.xxx.co.jp" IN {
type forward;
forward only;
forwarders { 172.20.1.20; 172.20.1.30; };
};
- namedの再起動
systemctl restart named
- リゾルバの設定
EC2サーバ内から名前解決する時、問合せ先のDNSサーバを指定します。VPC内のデフォルトDNSサーバが設定されているため、EC2のIPアドレスに設定します。
vi /etc/resolv.conf
nameserver 172.20.1.10
- 名前解決出来ることを確認
nslookup www.gov.oce.co.jp
Server: 172.20.1.10
Address: 172.20.1.10#53
Non-authoritative answer:
Name: www.gov.xxx.co.jp
Address: 172.20.1.40