こんにちは。ますのです。
CentOS7を構築!よっしゃできた!動作確認でリブートだ!
あれ、ホスト名でpingが通らない。あれ、resolv.confが初期設定に戻ってる。再起動する度にDNS設定が上書きされてる…??ぼすけて。と以前になりまして無事解決。
Amazon Linux2でも同じ壁にぶち当たり、余裕だぜぇ!と同じ設定を適用したところホスト名がpingで通らない…。嘘やん…resolv.confが初期設定に。あれ、今回ifcfg-eth0も上書きされてるジャン!?絶望。という状況になりましたのです。
さてさて、困ったのでAWSのドキュメント漁ってたら対応方法あるじゃないですか!ということでEC2インスタンス用の手順を試してみました。
/etc/dhcp/dhclient.conf ファイルに設定を追記する
まず「/etc/dhcp/dhclient.conf」にDNS設定を追記する必要があります。
dhclient.confを閲覧、編集するにはroot権限が必要となるので、suやsudo、root権限のユーザに変更しましょう。
supersede domain-name-servers 1.1.1.1, 2.2.2.2;
supersede domain-search “abc.com”;
reboot後、/etc/resolv.confの設定変更を確認する
dhclient.confに追記後、サーバをrebootコマンドで再起動します。
再起動が完了したらDNS設定が変更されているか確認してみましょう!
; generated by /usr/sbin/dhclient-script
search abc.com.
nameserver 1.1.1.1
nameserver 2.2.2.2
/etc/sysconfig/network-scripts/ifcfg-eth0にPEERDNS設定は必要?
AWSのドキュメントでは「/etc/sysconfig/network-scripts/ifcfg-eth0」にPEERDNS=yesを設定しましょうと記載されています。
わたしが設定した時ですが、ifcfg-eth0自体が再起動時に上書きされてしまう状態だったので、入力しても意味がなかったという状況です。。。なんぞこれ。
PEERDNS=noだと/etc/resolv.conf更新できなくなっちゃうよ!って書いてあるのですが、それが出来なかってん困っておったっていうのに。一応設定しておきましょう。
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
RES_OPTIONS=”timeout:2 attempts:5″
DHCP_ARP_CHECK=no
使われているNICは「ifconfig」の結果から確認できます。
(eth0:…eth5:…ens5:…などが左側に記載されているかと思います。)
以上の設定でわたしは無事にAmazon Linux2でDNS設定を固定することが出来ました!
CentOS7で同じくresolv.confが上書きされた時の対応をざっくり紹介
※(以下の部分を追記する)
[main] plugins=ifcfg-rh
dns=none
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=yes
PEERDNS=no //「no」に変更
DHCPV6C=yes
DHCPV6C_OPTIONS=-nw
PERSISTENT_DHCLIENT=yes
RES_OPTIONS=”timeout:2 attempts:5”
DHCP_ARP_CHECK=no
今回のEC2インスタンス用の設定は「resolv.confを指定した内容に上書きする」という状況になるようですね。
もしわかった場合は追記しますー!!