始めに
オンプレで稼働していたUbuntu16.04をAWSに移行(cloudEndure利用)したのですが、移行後に名前解決が出来なかったので、その時の備忘録です。
AWS公式サイトに沿って静的DNSサーバの設定しただけではダメでした。
静的DNS設定
該当マシンでは静的DNSを使いたいので設定します。静的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限定なのかはわからないですが、助けになれば幸いです。
最後までご覧いただき、ありがとうございました。
コメント