AWS移行したubuntus16.04で名前解決が出来ない

AWS
この記事は約3分で読めます。
記事内に広告が含まれています。

始めに

オンプレで稼働していたUbuntu16.04をAWSに移行(cloudEndure利用)したのですが、移行後に名前解決が出来なかったので、その時の備忘録です。

AWS公式サイトに沿って静的DNSサーバの設定しただけではダメでした。

静的DNS設定

該当マシンでは静的DNSを使いたいので設定します。静的DNS設定は以下の公式サイトに沿って実施します。

EC2 インスタンスを静的 DNS サーバーで設定する
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスに、再起動中も持続する静的 DNS サーバーエントリを設定したいと考えています。

Ubuntu16.04の場合は以下の流れですね。

sudo vi /etc/dhcp/dhclient.conf
⇒ supersede domain-name-servers xxx.xxx.xxx.xxx, xxx.xxx.xxx.xxx;
 ※xxxの部分は静的DNSサーバのIPアドレスに置き換えて記載。
reboot

再起動終わったものの

# ping google.com
ping: unknown host google.com
# nslookup google.com
;; connection timed out; no servers could be reached

・・・上手くいかない。

試しに、

/etc/network/interfacesにdns-nameserversを記載したり、/etc/systemd/resolved.confにdnsを記載したりしてもだめ。

色々試したのね。オンプレとAWSは違うね。

追加施策

起動時のシスログを見ると、「/etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf」という記載があったため、確認してみると、シンボリックリンク「/etc/resolv.conf」は存在しない(オンプレには存在したが消えている)。

以下コマンドでシンボリックリンクを作ってあげて、あっさりと名前解決出来るようになりました。

書式:ln -n <リンク対象> <作成するシンボリックリンク>
ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

なんで移行時に消えたんだろう(謎)

まとめ

静的DNSの基本設定を実施した後、シンボリックファイル「/etc/resolv.conf」が無ければ作成することで名前解決が出来るようになりました。個体差なのかUbuntu16.04限定なのかはわからないですが、助けになれば幸いです。

最後までご覧いただき、ありがとうございました。

コメント

Top
タイトルとURLをコピーしました