自由気ままに書いちゃおう

好きなことをつらつらと・・・

EC2のDHCP設定について

■前提

・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
; 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        ※名前解決ができない。