■前提
・RHEL7.6で動作確認(ホスト名はrhel761とした)
・NetworkManager.serviceは無効化(=networkサービスを使用)
■実施したいこと
testprivate.localというドメイン名の名前解決を実施したい
■/etc/resolv.confについて
network.serviceを使用している場合、/usr/sbin/dhclient-script により自動的に生成される。(生成されてしまう)
【NetworkManager.service無効時 & network.service有効時】
期待する設定値は以下の通り。
testprivate.localがresolv.confに記載されていること。
# cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script ※network.serviceにより生成された場合、左記の赤字の通りの記載となる。
search ap-northeast-1.compute.internal testprivate.local
nameserver 172.17.0.2
■実現方法
/etc/dhcp/dhclient.conf を下記のように修正し、networkサービス再起動を実施する。
※networkサービスの状態をsystemctl status networkで確認すると、「suspect value in domain_search option - discarded」と出力されるがbugのため、放置してよい。
# vi /etc/dhcp/dhclient.conf
supersede domain-search "ap-northeast-1.compute.internal testprivate.local"; ※""で囲んだ部分の設定が、resolv.confに反映される。
supersede domain-name "ap-northeast-1.compute.internal testprivate.local"; ※""で囲んだ部分の設定が、resolv.confに反映される。
# systemctl restart network.service
■nslookupコマンド結果
# nslookup rhel76
Server: 172.17.0.2
Address: 172.17.0.2#53
Non-authoritative answer:
Name: rhel761 testprivate.local
Address: 172.17.10.107
■dhclient.confを削除した場合の動作
/etc/dhcp/dhclient.confを削除後に、networkサービスを再起動すると、/etc/resolv.confの内容が元に戻ってしまう。
# cat /etc/resolv.conf
# cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search ap-northeast-1.compute.internal ※ドメイン名(testprivate.localが自動設定されない)
nameserver 172.17.0.2
上記状態のため、名前解決も実施できない。
# nslookup rhel761
Server: 172.17.0.2
Address: 172.17.0.2#53
** server can't find rhel761: NXDOMAIN ※名前解決ができない。