概要
過去に、EC2サーバーにおいて、/etc/resolv.confファイルにネームサーバーや検証用ドメインの情報を手動で追加した経験があります。しかし、サーバーを再起動すると、これらの設定情報が上書きされてしまう問題が発生しました。
原因
この問題は、NetworkManagerが/etc/resolv.confファイルを自動的に管理するため発生します。NetworkManagerは、起動時に/etc/resolv.confファイルを読み込み、DHCPサーバーから取得したDNS情報を設定します。そのため、手動で設定した情報は、NetworkManagerが起動するたびに上書きされてしまいます。
解決方法
- NetworkManagerの設定変更
/etc/NetworkManager/NetworkManager.conf ファイルに以下の設定を追記します
[main]
plugins=XXXX
; ここ(設定しないと、OS再起動されると、設定情報が上書きされます)
dns=none
この設定により、NetworkManagerは/etc/resolv.confファイルを管理しなくなります。
- NetworkManagerサービスを再起動します
sudo systemctl restart NetworkManager
・ 設定例
以下の例では、/etc/resolv.confファイルにローカルドメインとGoogleのネームサーバーを追加しています。
;ローカルドメインを検索対象として追加
search ap-northeast-1.compute.internal {dbfocus.local}
nameserver 10.10.0.2
;Googleの名前解決サーバーを参照するように設定します
nameserver 8.8.8.8