📖
【Linux】「/etc/resolv.conf」が更新できない場合の対応
はじめに
今回は、/etc/resolv.conf
が更新できない場合の対応についてアウトプットしたいと思います。
今回の環境の構成図
- ネットワーク図
- 物理構成図
使用しているOS等
項目 | 説明 |
---|---|
PC(ホストOS) | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
仮想化ソフト | VirtualBox 6.1.18 |
ゲストOS | CentOS Linux release 7.5.1804 (Core) |
確認結果
[root@worker1 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@worker1 ~]#
事象
/etc/resolv.conf
の更新を実施するが、network
サービスを再起動すると元の設定に戻ってしまう。
事象再現
- 事前に
/etc/resolv.conf
を確認する。
コマンド
cat /etc/resolv.conf
実行例)
実行例
[root@worker1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.1
[root@worker1 ~]#
※nameserver 192.168.100.1
はDHCPサーバーから自動で引っ張ってくるDNSサーバーになります。
-
/etc/resolv.conf
の設定を変更する。
GoogleのDNSサーバ(8.8.8.8
/8.8.4.4
)を設定する。
コマンド
vi /etc/resolv.conf
ファイル内容変更
変更前)
変更前
# Generated by NetworkManager
nameserver 192.168.100.1
変更後)
変更後
nameserver 8.8.8.8
nameserver 8.8.4.4
-
network
サービスを再起動する。
コマンド
systemctl restart network
-
/etc/resolv.conf
の内容が元に戻っていることを確認する。
コマンド
cat /etc/resolv.conf
実行例)
実行例
[root@worker1 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.100.1
[root@worker1 ~]#
対策
①NetworkManagerを停止/自動起動停止する。
②インターネットに接続している方のNIC(NAT)の設定に以下を追加する。
PEERDNS=no
対処手順
- NetworkManager停止/自動起動停止
○設定
NetworkManger停止
systemctl stop NetworkManager
NetworkManger自動起動停止
systemctl disable NetworkManager
○確認
NetworkManger停止確認
systemctl stop NetworkManager
→ステータスが「inactive (dead)」であることを確認。
NetworkManger自動起動停止確認
systemctl is-enabled NetworkManager
→結果が「disabled」であることを確認。
-
/etc/sysconfig/network-scripts/ifcfg-ens0s3
にPEERDNS=no
を追加
コマンド
vi /etc/sysconfig/network-scripts/ifcfg-ens0s3
編集前)
編集前
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="f3293731-ece8-4e5e-a9f8-1aa68f5b14ab"
DEVICE="enp0s3"
ONBOOT="yes"
編集後)
編集後
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="f3293731-ece8-4e5e-a9f8-1aa68f5b14ab"
DEVICE="enp0s3"
ONBOOT="yes"
PEERDNS="no"
-
/etc/resolv.conf
の設定を変更する。
GoogleのDNSサーバ(8.8.8.8
/8.8.4.4
)を設定する。
コマンド
vi /etc/resolv.conf
ファイル内容変更
変更前)
変更前
# Generated by NetworkManager
nameserver 192.168.100.1
変更後)
変更後
nameserver 8.8.8.8
nameserver 8.8.4.4
-
network
サービスを再起動する。
コマンド
systemctl restart network
-
/etc/resolv.conf
の内容がそのままであることを確認する。
コマンド
cat /etc/resolv.conf
実行例)
実行例
[root@worker1 ~]# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
[root@worker1 ~]#
Discussion