【EC2】Amazon Linux2でDNS設定を静的にする

  • 2019年7月30日
  • 2019年7月30日
  • AWS, Linux
AWS

こんにちは。ますのです。

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権限のユーザに変更しましょう。

# vi /etc/dhcp/dhclient.conf
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設定が変更されているか確認してみましょう!

$ cat /etc/resolv.conf
; generated by /usr/sbin/dhclient-script
search abc.com.
nameserver 1.1.1.1 
nameserver 2.2.2.2
こんな感じに変わっていればDNS設定はdhclient.confで追記した内容がサーバやインスタンス起動時にresolv.confに上書きされるようになります。

/etc/sysconfig/network-scripts/ifcfg-eth0にPEERDNS設定は必要?

AWSのドキュメントでは「/etc/sysconfig/network-scripts/ifcfg-eth0」にPEERDNS=yesを設定しましょうと記載されています。
わたしが設定した時ですが、ifcfg-eth0自体が再起動時に上書きされてしまう状態だったので、入力しても意味がなかったという状況です。。。なんぞこれ。

PEERDNS=noだと/etc/resolv.conf更新できなくなっちゃうよ!って書いてあるのですが、それが出来なかってん困っておったっていうのに。一応設定しておきましょう。

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
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
[ifcfg-eth0]の部分は状況によりNICの名称を変更しましょう。
使われているNICは「ifconfig」の結果から確認できます。
(eth0:…eth5:…ens5:…などが左側に記載されているかと思います。)

以上の設定でわたしは無事にAmazon Linux2でDNS設定を固定することが出来ました!

CentOS7で同じくresolv.confが上書きされた時の対応をざっくり紹介

腑に落ちないただの余談です。CentOS7や以前立てたAmazonLinux2ではこの2つの設定しただけで、resolv.conf上書きされないようになったんですけどねぇ。。。不思議です。
# vi /etc/NetworkManager/NetworkManager.conf
※(以下の部分を追記する)
[main] plugins=ifcfg-rh
dns=none
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
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
以前の設定ですと動作は「resolv.confへの上書きをやめる」となりました。
今回のEC2インスタンス用の設定は「resolv.confを指定した内容に上書きする」という状況になるようですね。
仕組みがわかっていないのがまだまだ勉強不足であります。
もしわかった場合は追記しますー!!
日々精進を!駆け出しインフラエンジニアのますのでした。
最新情報をチェックしよう!