2021年12月11日土曜日

AWSのEC2インスタンスが参照するDNSに自分のDNSを追加する

 こんにちは

今日は、AWSに起動したEC2にDHCPで設定されるDNSの話です。

通常何も考えずにEC2を起動すると、AWSが自動的に割り当てたDNSが、DHCPによって割り当てられますが、それ以外に、オンプレのDNS等も参照したい場合もあるかと思います。そう言った場合に、DNSを任意のものを自動的に割り当てられるように設定してみたいと思います。

デフォルト設定

現在のデフォルト設定を見てみます。/etc/resolv.confを見てみると、

[ec2-user@ip-10-20-2-36 etc]$ cat /etc/resolv.conf 

options timeout:2 attempts:5

; generated by /usr/sbin/dhclient-script

search ap-northeast-1.compute.internal

nameserver 10.20.0.2

という感じになっています。これを自分の好きな設定に変更してみます。

VPCのDHCPオプションセットを作成する

AWSマネジメントコンソールを開いて、VPCを開き、DHCPオプションセットを選択します。


DHCPオプションセットを開くと次のような画面になります。現在は、AWSが決めたドメイン名とDNSが配布されるような設定になっています。


DHCPオプションセットは、一度作成してしまうと、修正を行うことができないようです。新しくDHCPオプションセットを作成します。右上の「DHCPオプションセットの作成」をクリックします。



「DHCPオプションセットの作成」をクリックすると設定画面が開きますので、以下のような値を設定して、「DHCPオプションセットの作成」ボタンをクリックします。そう言えば、何度も同じ名前のボタンが出てくるような気がしますね。。。





正常に作成することができると以下のような画面になるようです。




VPCのDHCPオプションセットを変更する

VPCで利用しているDHCPオプションセットを変更します。VPCコンソールから、変更したいVPCを選択して、「DHCPオプションセットを編集」を選択します。


「DHCPオプションセットを編集」という画面が開きますので、「DHCPオプションセット」から先程作成したDHCPオプションセットを選択し得て、「変更を保存」ボタンをクリックします。




設定変更の確認

DHCPから値を再取得するコマンドがすぐに思い浮かばなかったので、インスタンスを再起動しました。インスタンスを再起動して、DHCPオプションセットの変更後の/etc/resolv.confを見てみると、

[ec2-user@ip-10-20-2-239 etc]$ cat /etc/resolv.conf 

options timeout:2 attempts:5

; generated by /usr/sbin/dhclient-script

search foo.com ap-northeast-1.compute.internal

nameserver 10.20.2.11

nameserver 10.20.2.139

確かに追加されているようです。ドメイン名の search 対象は、自分が追加したものに加えてデフォルトのものが登録されていますね。

もう少し考えてみる

search 行で指定されたドメイン名は、FQDN形式で指定されなかったときに補完される候補という感じですので、ホスト名だけで解決したいドメインが複数ある場合は複数指定した方が良いです。例えば、host1.foo.com 、host2.sub.foo.com、host3.foo.com.local というFQDNを持つホストがある環境で、ユーザが、host1 とか host2とかhost3という名前で解決したい場合は、それぞれ対象のドメイン名を入れるといいです。

あと、元々デフォルトで入っていたDNSもサーバも残した方がいいかも。。。私の記憶違いかもしれませんが、デフォルトの構成ではnameserver 行は3つまでは設定できたと思います。そして、書いた順番に問い合わせるだったような。。。

あ、あとデフォルトのDNSサーバはVPCのネットワーク+2が自動的に割り当てられる仕組みになっているようです。

以下のような条件の環境を想定して再度DHCPオプションセットを設定してみます。

オンプレ側のDNS:10.20.2.11 と 10.20.2.139
AWSのDNS:10.20.0.2
補完するドメイン名:foo.com と sub.foo.com と foo.com.local 

こんな感じで設定してみました。



インスタンスを再起動して、DHCPオプションセットの変更後の/etc/resolv.confを見てみると、

[ec2-user@ip-10-20-2-239 ~]$ cat /etc/resolv.conf 

options timeout:2 attempts:5

; generated by /usr/sbin/dhclient-script

search foo.com sub.foo.com foo.com.local ap-northeast-1.compute.internal

nameserver 10.20.2.11

nameserver 10.20.2.139

nameserver 10.20.0.2

ちゃんと思い通りに反映されていますね。


 
 

0 件のコメント:

結局 Kindle にケースを買いました。

 こんばんわ 私、最近ほとんど外出しなくなったのですが、妻の買い物に一緒に行って、ぼけーっと待っていたり、病院に行ってぼけーっと待っていたりする機会が多くなり、なんなら家でもボケーっとしていることが非常に多くなったためか、Kindleの出番が結構ありそうです。 前回、タブレットで...