【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

先日 VMware ESXi 6 の環境で検証マシンで検証をした際に「/etc/resolv.conf」を修正しました。

Google の Public DNS サーバーのIPアドレス「8.8.8.8」を入れて作業し、その後 OS を再起動後に yum update を実行した際にリポジトリを見つけることができなかったので調べたところ「/etc/resolv.conf」に見かけない「DNSサフィックス」が追加されているのを確認しました。

[test@cnt07 ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
search flets-east.jp iptvf.jp localdomain ← この DNS サフィックスはなに?どこからきたのでしょうか?
nameserver 2404:1a8:7f01:b::3 ← しかも DNSサーバー(ネームサーバー)のアドレスが IPv4 ではなく IPv6 になっています。
nameserver 2404:1a8:7f01:a::3
[test@cnt07 ~]$ 

 

ルーターの設定とCentOS7のデフォルトの設定が「/etc/resolv.conf」を書き変えている

言葉だけだとなかなか伝わらないと思うので、検証環境を図解しました。

検証環境

下図のような環境になっています。

今回は「仮想マシン:cnt07」で作業をしています。

検証環境

 

/etc/resolv.conf ファイルはなぜ書き変わるのか?誰が書き変えているのか?

OSを再起動後に「/etc/resolv.conf」が書き変わっているので、OSの起動時のログを確認してみます。

Jul 1 08:31:43 cnt07 kernel: Fusion MPT base driver 3.04.20
Jul 1 08:31:43 cnt07 kernel: Copyright (c) 1999-2008 LSI Corporation
Jul 1 08:31:43 cnt07 kernel: VMware vmxnet3 virtual NIC driver – version 1.4.7.0-k-NAPI ← NICドライバーを読み込んでいます。
Jul 1 08:31:43 cnt07 kernel: vmxnet3 0000:03:00.0: # of Tx queues : 2, # of Rx queues : 2
Jul 1 08:31:43 cnt07 kernel: vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps ← NICがリンクアップしました。
Jul 1 08:31:43 cnt07 kernel: vmxnet3 0000:0b:00.0: # of Tx queues : 2, # of Rx queues : 2
Jul 1 08:31:43 cnt07 kernel: vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps ← NICがリンクアップしました。
Jul 1 08:31:43 cnt07 kernel: [drm] Initialized drm 1.1.0 20060810
Jul 1 08:31:43 cnt07 kernel: Fusion MPT SPI Host driver 3.04.20
Jul 1 08:31:43 cnt07 kernel: mptbase: ioc0: Initiating bringup
Jul 1 08:31:43 cnt07 kernel: ioc0: LSI53C1030 B0: Capabilities={Initiator}
Jul 1 08:31:43 cnt07 kernel: scsi host2: ioc0: LSI53C1030 B0, FwRev=01032920h, Ports=1, MaxQ=128, IRQ=17

 

Jul 1 08:32:22 cnt07 systemd: Started firewalld – dynamic firewall daemon.
Jul 1 08:32:22 cnt07 systemd: Starting Network Manager… ← firewalld の次に「Network Manager」が起動します。
Jul 1 08:32:23 cnt07 kernel: ip6_tables: (C) 2000-2006 Netfilter Core Team
Jul 1 08:32:23 cnt07 NetworkManager[733]: <info> [1498865543.8709] NetworkManager (version 1.4.0-20.el7_3) is starting…
Jul 1 08:32:23 cnt07 NetworkManager[733]: <info> [1498865543.8736] Read config: /etc/NetworkManager/NetworkManager.conf ← 「Network Manager」のコンフィグファイル「/etc/NetworkManager/NetworkManager.conf」ファイルを読み込んでいます。
Jul 1 08:32:23 cnt07 NetworkManager[733]: <info> [1498865543.9701] manager[0x7f3ea046c160]: monitoring kernel firmware directory ‘/lib/firmware’.
Jul 1 08:32:23 cnt07 kernel: Ebtables v2.0 registered
Jul 1 08:32:24 cnt07 NetworkManager[733]: <info> [1498865544.0141] dns-mgr[0x7f3ea0465820]: init: dns=default, rc-manager=file
Jul 1 08:32:24 cnt07 systemd: Started Network Manager.
Jul 1 08:32:24 cnt07 systemd: Starting Network Manager Wait Online…

 

Jul 1 08:32:24 cnt07 systemd: Started Network Manager Script Dispatcher Service.
Jul 1 08:32:24 cnt07 kernel: nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
Jul 1 08:32:24 cnt07 NetworkManager[733]: <info> [1498865544.3334] settings: loaded plugin ifcfg-rh: (c) 2007 – 2015 Red Hat, Inc. To report bugs please use the NetworkManager mailing list. (/usr/lib64/NetworkManager/libnm-settings-plugin-ifcfg-rh.so)
Jul 1 08:32:24 cnt07 NetworkManager[733]: <info> [1498865544.3377] settings: loaded plugin iBFT: (c) 2014 Red Hat, Inc. To report bugs please use the NetworkManager mailing list. (/usr/lib64/NetworkManager/libnm-settings-plugin-ibft.so)
Jul 1 08:32:24 cnt07 NetworkManager[733]: <info> [1498865544.3380] settings: loaded plugin keyfile: (c) 2007 – 2015 Red Hat, Inc. To report bugs please use the NetworkManager mailing list.
Jul 1 08:32:24 cnt07 NetworkManager[733]: <info> [1498865544.3818] ifcfg-rh: new connection /etc/sysconfig/network-scripts/ifcfg-ens160 (5da93180-192d-4961-9211-8521be319a4b,”ens160″)
Jul 1 08:32:24 cnt07 NetworkManager[733]: <info> [1498865544.3858] ifcfg-rh: new connection /etc/sysconfig/network-scripts/ifcfg-ens192 (027769e4-14c4-4bfa-a6b0-df353281dee0,”ens192″)
Jul 1 08:32:24 cnt07 dbus[650]: [system] Activating via systemd: service name=’org.freedesktop.hostname1′ unit=’dbus-org.freedesktop.hostname1.service’
Jul 1 08:32:24 cnt07 dbus-daemon: dbus[650]: [system] Activating via systemd: service name=’org.freedesktop.hostname1′ unit=’dbus-org.freedesktop.hostname1.service’
Jul 1 08:32:27 cnt07 nm-dispatcher: req:3 ‘up’ [ens160]: start running ordered scripts…
Jul 1 08:32:28 cnt07 avahi-daemon[635]: Registering new address record for fe80::80ec:1873:ccf:1eb5 on ens160.*.
Jul 1 08:32:29 cnt07 NetworkManager[733]: <info> [1498865549.7214] dhcp6 (ens160): activation: beginning transaction (timeout in 45 seconds)
Jul 1 08:32:29 cnt07 NetworkManager[733]: <info> [1498865549.7763] dhcp6 (ens160): dhclient started with pid 876
Jul 1 08:32:29 cnt07 NetworkManager[733]: <info> [1498865549.7825] policy: set ‘ens160’ (ens160) as default for IPv6 routing and DNS

Jul 1 08:32:30 cnt07 dhclient[876]: XMT: Info-Request on ens160, interval 980ms.
Jul 1 08:32:30 cnt07 dhclient[876]: RCV: Reply message on ens160 from fe80::212:e2ff:fe10:a098.
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.5444] dhcp6 (ens160): nameserver ‘2404:1a8:7f01:b::3’
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.5446] dhcp6 (ens160): nameserver ‘2404:1a8:7f01:a::3’
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.5447] dhcp (ens160): domain search ‘flets-east.jp.’
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.5447] dhcp (ens160): domain search ‘iptvf.jp.’
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.5448] dhcp6 (ens160): state changed unknown -> bound
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.5994] dhcp6 (ens160): client pid 876 exited with status 0
Jul 1 08:32:30 cnt07 NetworkManager[733]: <info> [1498865550.6004] dhcp6 (ens160): state changed bound -> done
Jul 1 08:32:30 cnt07 nm-dispatcher: req:4 ‘dhcp6-change’ [ens160]: new request (4 scripts)
Jul 1 08:32:30 cnt07 nm-dispatcher: req:4 ‘dhcp6-change’ [ens160]: start running ordered scripts…
Jul 1 08:32:31 cnt07 NetworkManager[733]: <info> [1498865551.1972] manager: startup complete
Jul 1 08:32:31 cnt07 systemd: Started Network Manager Wait Online.
Jul 1 08:32:31 cnt07 systemd: Starting LSB: Bring up/down networking…
Jul 1 08:32:32 cnt07 network: ループバックインターフェイスを呼び込み中 [ OK ]
Jul 1 08:32:32 cnt07 network: インターフェース ens160 を活性化中: [ OK ]
Jul 1 08:32:48 cnt07 systemd: Started Network Manager Script Dispatcher Service.

Jul 1 08:32:48 cnt07 dnsmasq[2332]: started, version 2.66 cachesize 150
Jul 1 08:32:48 cnt07 dnsmasq[2332]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth
Jul 1 08:32:48 cnt07 dnsmasq-dhcp[2332]: DHCP, IP range 192.168.122.2 — 192.168.122.254, lease time 1h
Jul 1 08:32:48 cnt07 dnsmasq[2332]: reading /etc/resolv.conf
Jul 1 08:32:48 cnt07 dnsmasq[2332]: using nameserver 2404:1a8:7f01:a::3#53
Jul 1 08:32:48 cnt07 dnsmasq[2332]: using nameserver 2404:1a8:7f01:b::3#53
Jul 1 08:32:48 cnt07 dnsmasq[2332]: read /etc/hosts – 2 addresses
Jul 1 08:32:48 cnt07 dnsmasq[2332]: read /var/lib/libvirt/dnsmasq/default.addnhosts – 0 addresses
Jul 1 08:32:48 cnt07 dnsmasq-dhcp[2332]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Jul 1 08:32:48 cnt07 kernel: virbr0: port 1(virbr0-nic) entered disabled state

 

どうやら「Network Manager」が犯人の可能性があります。

以下、調査しながら原因と対策のためのコマンドを実行します。

OS再起動後の /etc/resolv.conf

 

上でも確認しましたが、OS再起動後にログインして「/etc/resolv.conf」を確認すると以下のように「8.8.8.8」しかなかったファイルが以下のように変更されています。

「Generated by NetworkManager」と記載があるので「NetworkManager」が犯人であることは間違いないのですが、何をどこまでしているのでしょうか。

[test@cnt07 ~]$ cat /etc/resolv.conf
# Generated by NetworkManager
search flets-east.jp iptvf.jp localdomain
nameserver 2404:1a8:7f01:b::3
nameserver 2404:1a8:7f01:a::3
[test@cnt07 ~]$ 

 

「/etc/resolv.conf」の内容そのものがすべて書き変わってします。

そもそも「search flets-east.jp iptvf.jp localdomain」は一体何なのでしょうか?

 

「flets-east.jp」は「フレッツ光 東日本」のドメイン

実は自宅のインターネット回線は「フレッツ光 NTT東日本」を利用しています。

しかもフレッツ光から借りたブロードバンドルーターが DHCP サーバーの役割も担っています。

「flets-east.jp」Whois情報で確認

Whois で確認してみました。

やはり「flets-east.jp」「NTT東日本」のドメインです。

Domain Information: [ドメイン情報]
[Domain Name]                   FLETS-EAST.JP

[登録者名]                      東日本電信電話株式会社
[Registrant]                    NIPPON TELEGRAPH AND TELEPHONE EAST CORPORATION

[Name Server]                   

ns03.flets-east.jp

[Name Server]                   

ns04.flets-east.jp

[Signing Key]                   

[登録年月日]                    2007/12/14
[有効期限]                      2017/12/31
[状態]                          Active
[最終更新]                      2017/02/10 04:39:41 (JST)

Contact Information: [公開連絡窓口]
[名前]                          東日本電信電話株式会社
[Name]                          NIPPON TELEGRAPH AND TELEPHONE EAST CORPORATION
[Email]                         flets-east@ml.east.ntt.co.jp
[Web Page]                       
[郵便番号]                      163-8019
[住所]                          東京都新宿区西新宿3−19−2
[Postal Address]                Tokyo
                                Shinjuku,Tokyo
                                19-2,Nishi-shinjuku 3-chome
[電話番号]                      03-5359-9041
[FAX番号]                       

 

「iptvf.jp」のWhois情報で確認

もう1つの「iptvf.jp」も確認してみました。

非常に懐かしい「ぷらら」のドメインです。

Domain Information: [ドメイン情報]
[Domain Name]                   IPTVF.JP

[登録者名]                      株式会社ぷららネットワークス
[Registrant]                    Plala Networks Inc.

[Name Server]                   

ns1.iptvf.jp

[Name Server]                   

ns2.iptvf.jp

[Signing Key]                   

[登録年月日]                    2008/03/10
[有効期限]                      2018/03/31
[状態]                          Active
[最終更新]                      2017/04/01 01:05:10 (JST)

Contact Information: [公開連絡窓口]
[名前]                          株式会社NTTぷらら
[Name]                          NTT Plala Inc.
[Email]                         eizo-nw@plala.co.jp
[Web Page]                       
[郵便番号]                      1706024
[住所]                          東京都豊島区
                                東池袋3−1−1
                                サンシャイン60 24階
[Postal Address]                Tokyo
                                Toshima-ku
                                24th Floor, Sunshine 60, 3-1-1 Higashi Ikebukuro
[電話番号]                      0335276677
[FAX番号]                       0335276680

 

 

「flets-east.jp」と「iptvf.jp」は「フレッツ光TV」用のDNSサフィックス

このドメインのセットについて調べたところ「フレッツ光TV」用のDNSサフィックスであることが分かりました。

自宅のブロードバンドルーターは下図の「NTT PR-500MI(ファームウェアバージョン 04.01.0002)」です。

 

「flets-east.jp」と「iptvf.jp」は「フレッツ光TV」用のDNSサフィックス

 

ログインをして設定を調べます。

通常は「192.168.1.1」「PR-500MI」ブロードバンドルーターに接続できます。

 

「flets-east.jp」と「iptvf.jp」は「フレッツ光TV」用のDNSサフィックス

 

 

 

ブロードバンドルーター(NTT PR-500MI)からIPv6のDNS設定を外す手順

ブロードバンドルーターの IPv6 の DNS 設定が邪魔をしているので設定を確認して外します。

 

ブロードバンドルーターにログインする

ネットワーク回線を引いた後、デフォルトのままで何もネットワークの設定を変えていない場合は、「http://192.168.1.1/」にログインします。

「flets-east.jp」と「iptvf.jp」は「フレッツ光TV」用のDNSサフィックス

 

 

左側ペインより「基本設定」「接続先設定(IPv6 PPPoE)」をクリックします。

 

 

接続先設定(IPv6 PPPoE)の設定画面より、「LAN側プレフィックスの選択」「自動設定(推奨)」から「手動設定(NGNプレフィックス固定)」に変更して「設定」をクリックします。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

 

 

「状態」「停止」になっていることを確認します。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

 

「機器再起動」の「再起動」をクリックします。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

 

確認画面が表示されるので「OK」をクリックします。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

 

2~3分間待ちます。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

 

 

2~3分後に以下のように「再起動完了」画面が表示されることを確認して「再表示」をクリックします。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

Network Manager で DNS の設定をする

上記の手順で IPv6 アドレスで NTT フレッツ光 TV の DNSサフィックスが勝手に入る機能を停止しました。

ここからは Network Manager で「固定 DNS アドレス」を設定します。

つまり、今まで

  • ブロードバンドルーターは IPv6 の DNS 情報を配信
  • ブロードバンドルーターから IPv6 の DNS 情報を取得
  • サーバーは IPv6 の DNS 情報を DHCP で取得
  • サーバーは固定 DNS サーバー(ネームサーバー)情報は不保持

という環境でした。

 

これを

  • ブロードバンドルーターは IPv6 の DNS 情報を配信しない
  • ブロードバンドルーターから IPv6 の DNS 情報を取得しない
  • サーバーは IPv6 の DNS 情報を DHCP で取得しない
  • サーバーは固定 DNS サーバー(ネームサーバー)情報(IPv4)を保持する

という環境に変えます。

 

ネットワークインタフェースの情報の確認

 

ネットワークインタフェースの情報を確認します。

[test@cnt07 ~]$ ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::80ec:1873:ccf:1eb5 prefixlen 64 scopeid 0x20<link>
inet6 2408:210:8105:9500:268b:5f3a:6aac:c7b1 prefixlen 64 scopeid 0x0<global>
ether 00:0c:29:af:89:22 txqueuelen 1000 (Ethernet)
RX packets 53856 bytes 3394831 (3.2 MiB)
RX errors 0 dropped 18 overruns 0 frame 0
TX packets 4169 bytes 348148 (339.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:af:89:2c txqueuelen 1000 (Ethernet)
RX packets 49753 bytes 3018714 (2.8 MiB)
RX errors 0 dropped 17 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 132 bytes 11476 (11.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 132 bytes 11476 (11.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:94:1e:f2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

[test@cnt07 ~]$ nmcli connection show ens160
connection.id: ens160
connection.uuid: 5da93180-192d-4961-9211-8521be319a4b
connection.stable-id: —
connection.interface-name: ens160
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.timestamp: 1498915402
connection.read-only: no
connection.permissions:
connection.zone: —
connection.master: —
connection.slave-type: —
connection.autoconnect-slaves: -1 (default)
connection.secondaries:
connection.gateway-ping-timeout: 0
connection.metered: 不明
connection.lldp: -1 (default)
ipv4.method: manual
ipv4.dns: 
ipv4.dns-search:
ipv4.dns-options: (デフォルト)
ipv4.dns-priority: 0
ipv4.addresses: 192.168.1.10/24
ipv4.gateway: 192.168.1.1
ipv4.routes:
ipv4.route-metric: -1
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: —
ipv4.dhcp-timeout: 0
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: —
ipv4.dhcp-fqdn: —
ipv4.never-default: no
ipv4.may-fail: yes
ipv4.dad-timeout: -1 (default)
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (デフォルト)
ipv6.dns-priority: 0
ipv6.addresses:
ipv6.gateway: —
ipv6.routes:
ipv6.route-metric: -1
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: 0 (無効)
ipv6.addr-gen-mode: stable-privacy
ipv6.dhcp-send-hostname: yes
ipv6.dhcp-hostname: —
ipv6.token: —
GENERAL.名前: ens160
GENERAL.UUID: 5da93180-192d-4961-9211-8521be319a4b
GENERAL.デバイス: ens160
GENERAL.状態: アクティベート済み
GENERAL.デフォルト: はい
GENERAL.デフォルト6: はい
GENERAL.VPN: いいえ
GENERAL.ゾーン: —
GENERAL.DBUS パス: /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON パス: /org/freedesktop/NetworkManager/Settings/1
GENERAL.スペックオブジェクト: /
GENERAL.マスターパス: —
IP4.アドレス[1]: 192.168.1.10/24
IP4.ゲートウェイ: 192.168.1.1
IP6.アドレス[1]: 2408:210:8105:9500:268b:5f3a:6aac:c7b1/64
IP6.アドレス[2]: fe80::80ec:1873:ccf:1eb5/64
IP6.ゲートウェイ: fe80::212:e2ff:fe10:a098
IP6.ルート[1]: dst = 2408:210:8105:9500::/64, nh = ::, mt = 100
IP6.DNS[1]: 2404:1a8:7f01:b::3
IP6.DNS[2]: 2404:1a8:7f01:a::3
DHCP6.オプション[1]: dhcp6_client_id = 0:4:69:63:b4:18:db:f0:e4:ee:f:50:6d:94:4d:19:85:88
DHCP6.オプション[2]: dhcp6_name_servers = 2404:1a8:7f01:b::3 2404:1a8:7f01:a::3
DHCP6.オプション[3]: requested_dhcp6_name_servers = 1
DHCP6.オプション[4]: requested_dhcp6_domain_search = 1
DHCP6.オプション[5]: requested_dhcp6_client_id = 1
DHCP6.オプション[6]: dhcp6_sntp_servers = 2404:1a8:1102::b 2404:1a8:1102::a
DHCP6.オプション[7]: dhcp6_domain_search = flets-east.jp. iptvf.jp.
DHCP6.オプション[8]: dhcp6_server_id = 0:3:0:1:0:19:e7:13:6c:1b

 

 

 

下図はブロードバンドルーターの DHCPv6 で配布する DNS サーバーアドレスです。

上の「nmcli connection show ens160」IP6.DNS[1]: 2404:1a8:7f01:b::3」IP6.DNS[2]: 2404:1a8:7f01:a::3」の値を取得できていることが確認できます。

【CentOS7】OSを再起動すると /etc/resolv.conf の内容が書き変わるので注意

 

 

IPv6無効化

CentOS7 での IPv6の無効化は「/etc/sysctl.conf」ファイルで設定をします。

デフォルトでは「/etc/sysctl.conf」ファイルは空です(何も設定がありません)。

設定変更前に IPv6 が有効になっていることを確認します。

[test@cnt07 ~]$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:af:89:22 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global ens160
valid_lft forever preferred_lft forever
inet6 2408:210:8105:9500:268b:5f3a:6aac:c7b1/64 scope global noprefixroute dynamic ← IPv6 が有効になっています。
valid_lft 2591772sec preferred_lft 604572sec
inet6 fe80::80ec:1873:ccf:1eb5/64 scope link
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:af:89:2c brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:94:1e:f2 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:94:1e:f2 brd ff:ff:ff:ff:ff:ff
[test@cnt07 ~]$

 

 

 

「/etc/sysctl.conf」を編集します。

[root@cnt07 ~]# vi /etc/sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

net.ipv6.conf.all.disable_ipv6 = 1 ←「net.ipv6.conf.all.disable_ipv6 = 1」を追加します。
net.ipv6.conf.default.disable_ipv6 = 1 ←「net.ipv6.conf.default.disable_ipv6 = 1」を追加します。
[root@cnt07 ~]#

 

 

/etc/sysctl.conf を書き変えたので、sysctl コマンドで設定の変更を反映させます。

sysctl コマンドは実行中の(起動中の)カーネルの「TCP/IP」や「仮想メモリ」などのカーネルパラメータの設定に変更を加えるコマンドです。

 

[root@cnt07 ~]# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1 ← sysctlコマンドを実行すると「/etc/sysctl.conf」ファイルが再読み込みされて変更された部分が表示されます。
net.ipv6.conf.all.disable_ipv6 = 1
[root@cnt07 ~]#

 

 

設定後に「ip addr show」コマンドを実行して IPv6 アドレスが表示されなくなったことを確認します。

[root@cnt07 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:af:89:22 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global ens160
valid_lft forever preferred_lft forever
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether 00:0c:29:af:89:2c brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:94:1e:f2 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:94:1e:f2 brd ff:ff:ff:ff:ff:ff
[root@cnt07 ~]#

 

 

DNSサーバーの設定

上記の設定作業で IPv6 を無効化したので、これで「IPv6のDNSサーバーのアドレスが勝手に設定される」ことに関しては解決しました。

次は IPv4 で固定 DNS サーバーIPアドレスを設定して、OS を再起動しても「/etc/resolv.conf」に勝手に書き変わったり削除されないようにします。

CentOS6 までは、NIC の設定は「/etc/sysconfig/network-scripts/ifcfg-ethX」ファイルを直接編集していましたが、CentOS7からはファイルの編集ではなくコマンドラインからの設定が推奨されています。

 

「/etc/resolv.conf」ファイルに以下のように Google の Public DNS サーバー(ネームサーバー)のIPアドレスを設定します。

  • 8.8.8.8
  • 8.8.4.4

コマンドを実行しても「/etc/resolv.conf」ファイルが書き変わらない現象

以下の流れで設定をします。

  1. nmcli コマンドでDNSサーバーIPアドレスを設定
  2. systemctl restart NetworkManagerで NetworkManager を再起動
  3. /etc/resolv.conf が変更されていることを確認

コマンドを実行します。

[root@cnt07 ~]# nmcli connection modify ens160 ipv4.dns “8.8.8.8”
[root@cnt07 ~]# nmcli connection modify ens160 ipv4.dns “8.8.4.4” ← 2回 nmcli コマンドを実行していますが、これが後程アダになります。

 

[root@cnt07 ~]# systemctl restart NetworkManager ← NetworkManager を再起動します。
[root@cnt07 ~]# systemctl status NetworkManager ← NetworkManager が正常に再起動したことを確認します。
NetworkManager.service – Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2017-07-02 06:58:35 JST; 6s ago
Docs: man:NetworkManager(8)
Main PID: 16271 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
mq16271 /usr/sbin/NetworkManager –no-daemon

7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8291] device (ens160…0]
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8296] device (virbr0…0]
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8308] device (ens160…0]
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8313] manager: Netwo…AL
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8396] manager: Netwo…TE
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8398] manager: Netwo…AL
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8523] device (ens160…d.
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8543] device (virbr0…0]
7月 02 06:58:36 cnt07.localdomain NetworkManager[16271]: <info> [1498946316.8675] device (virbr0…d.
7月 02 06:58:41 cnt07.localdomain NetworkManager[16271]: <info> [1498946321.1481] manager: start…te
Hint: Some lines were ellipsized, use -l to show in full.
[root@cnt07 ~]# cat /etc/resolv.conf ← cat で「/etc/resolv.conf」を開きます。これで正しく「8.8.8.8」「8.8.4.4」が入っていると思いきや・・・
# Generated by NetworkManager
search flets-east.jp iptvf.jp localdomain
nameserver 2404:1a8:7f01:b::3 ← まったく変わっていません。
nameserver 2404:1a8:7f01:a::3

[root@cnt07 ~]# nmcli connection show ens160 | grep -i dns ← 設定をチェックするが何も値なし
ipv4.dns:
ipv4.dns-search:
ipv4.dns-options: (デフォルト)
ipv4.dns-priority: 100
ipv4.ignore-auto-dns: no
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (デフォルト)
ipv6.dns-priority: 100
ipv6.ignore-auto-dns: no
ipv4.dns: 8.8.4.4
ipv4.dns-search:
ipv4.dns-options: (デフォルト)
ipv4.dns-priority: 0
ipv4.ignore-auto-dns: no
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (デフォルト)
ipv6.dns-priority: 0
ipv6.ignore-auto-dns: no

 

nmcli コマンドで「DNSサーバーのIPアドレス」を変更して、その後「systemctl restart NetworkManager」コマンドを実行しても「/etc/resolv.conf」ファイルは書き変わらないことが分かりました。

 

「/etc/resolv.conf」ファイルを書き変えるためには「systemctl restart network」コマンドが必要

「/etc/resolv.conf」ファイルを書き変えるためには「systemctl restart network」コマンドが必要であることが分かりした。

コマンドを実行します。

[root@cnt07 ~]# systemctl restart network ← Teraterm で ssh 経由でアクセスをしていても、このコマンドでセッションは切れません。(ただ、設定が間違っていると network サービスが上がってこなくなる可能性がありますので注意)
[root@cnt07 ~]# systemctl status network
network.service – LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
Active: active (exited) since 日 2017-07-02 07:01:47 JST; 4s ago
Docs: man:systemd-sysv-generator(8)
Process: 16916 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
Process: 17089 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)

7月 02 07:01:45 cnt07.localdomain systemd[1]: Starting LSB: Bring up/down networking…
7月 02 07:01:46 cnt07.localdomain network[17089]: ループバックインターフェイスを呼び込み中 [ OK ]
7月 02 07:01:47 cnt07.localdomain network[17089]: インターフェース ens160 を活性化中: 接続が正常にアクティベートされました (D-Bus アクティブパス: /org/fre…nnection/2)
7月 02 07:01:47 cnt07.localdomain network[17089]: [ OK ]
7月 02 07:01:47 cnt07.localdomain systemd[1]: Started LSB: Bring up/down networking.
Hint: Some lines were ellipsized, use -l to show in full.
[root@cnt07 ~]# cat /etc/resolv.conf ← /etc/resolv.conf ファイルを確認します。
# Generated by NetworkManager
search localdomain
nameserver 8.8.4.4 ← 「8.8.4.4」のエントリしかありません。

 

nmcli コマンドで DNSサーバーのIPアドレスを追加しましたが、最後のコマンド分しか設定されていません。(当たり前ですが)

「nmcli connection modify ens160 ipv4.dns “8.8.8.8”」追加するコマンドではなく書き変えるコマンドなので注意です。

つまり必要な設定は一気に入れる必要がありました。

※下の方に「man nmcli」の「modify」部分を記載しています。正確にはオプションによって追加もできますが、忘れやすいので1つずつではなく一気に必要な設定を入れた方がいいです。

 

【結論】DNSサーバーIPアドレスを割り当てて「/etc/resolv.conf」に反映させる正しい手順

前置きが長くなりましたが、最終的な結論では、CentOS7でOS起動中に複数の DNS サーバー(ネームサーバー)IPアドレスを割り当てて「/etc/resolv.conf」に反映させる正しい手順は以下の通りです。

[root@cnt07 ~]# nmcli connection modify ens160 ipv4.dns “8.8.8.8 8.8.4.4″ ← nmcli コマンド1つに設定したいDNSサーバーIPアドレスをすべて入れます。

[root@cnt07 ~]# systemctl restart NetworkManager ← 「NetworkManager」を再起動します。
[root@cnt07 ~]# cat /etc/resolv.conf ← 念のため「/etc/resolv.conf」の内容を確認します。
# Generated by NetworkManager
search localdomain
nameserver 8.8.4.4 ← 「8.8.4.4」しか入っていない状態です。
[root@cnt07 ~]# systemctl restart network ← 「systemctl restart network」コマンドで network サービスを再起動します。
[root@cnt07 ~]# cat /etc/resolv.conf ← 「/etc/resolv.conf」ファイルの中身を確認します。
# Generated by NetworkManager
search localdomain
nameserver 8.8.8.8 ← 追加されています。
nameserver 8.8.4.4
[root@cnt07 ~]# nmcli connection show ens160 | grep -i dns
ipv4.dns: 8.8.8.8,8.8.4.4 ← 追加されています。
ipv4.dns-search:
ipv4.dns-options: (デフォルト)
ipv4.dns-priority: 0
ipv4.ignore-auto-dns: no
ipv6.dns:
ipv6.dns-search:
ipv6.dns-options: (デフォルト)
ipv6.dns-priority: 0
ipv6.ignore-auto-dns: no
IP4.DNS[1]: 8.8.8.8 ← 追加されています。
IP4.DNS[2]: 8.8.4.4 ← 追加されています。
[root@cnt07 ~]#

 

【補足事項】nmcliコマンドの「modify」の説明

 

modify [–temporary] [id | uuid | path] ID {option value | [+|-]setting.property value}…
Add, modify or remove properties in the connection profile.

接続プロファイルのプロパティを追加、変更、または削除します。

To set the property just specify the property name followed by the value.

プロパティを設定するには、プロパティ名の後に値を指定します。

An empty value (“”) removes the property value.

空の値( “”)はプロパティ値を削除します。

In addition to the properties, you can also use short names for some of the properties.

プロパティに加えて、いくつかのプロパティに短い名前を使用することもできます。

Consult the PROPERTY ALIASES section for details.

詳細については、PROPERTY ALIASESセクションを参照してください。

If you want to append an item to the existing value, use + prefix for the property name.

既存の値に項目を追加する場合は、プロパティ名に + prefixを使用します。

If you want to remove just one item from container-type property, use – prefix for the property name and specify a value or an zero-based index of the item to remove (or option name for properties with named options) as value.

コンテナ型のプロパティから1つの項目だけを削除する場合は、プロパティ名に – prefixを使用し、削除する項目の値または0から始まるインデックス(名前付きオプション付きのプロパティのオプション名)を値として指定します。

The + and – modifies only have a real effect for multi-value (container) properties like ipv4.dns, ipv4.addresses, bond.options, etc.

+ と – の変更は、ipv4.dns、ipv4.addresses、bond.optionsなどの複数値(コンテナ)プロパティに対してのみ実際の効果があります。

See nm-settings(5) for complete reference of setting and property names, their descriptions and default values.

設定とプロパティー名、その説明、およびデフォルト値の完全な参照については、nm-settings(5)を参照してください。

The setting and property can be abbreviated provided they are unique.

設定とプロパティは、一意であれば省略することができます。

The connection is identified by its name, UUID or D-Bus path.

接続は、その名前、UUIDまたはDバスパスによって識別されます。

If ID is ambiguous, a keyword id, uuid or path can be used.

IDがあいまいである場合は、キーワードid、uuidまたはパスを使用できます。

 

 

 

 

 

まとめ

何気なく確認した検証環境の「/etc/resolv.conf」ですが、様々な謎が解決できてよかったです。

「ぷらら」という懐かしいプロバイダを思い出しました。

NTT とフレッツ光TV のサービスをやっているのでしょうか?

 

CentOS7からネットワークの設定は nmcli コマンドで設定することになりますが、ファイルを書き変えるよりコマンドで設定をした方が履歴に残るので管理しやすいと思います。

直接ファイルを編集するやり方だと、誰がどのように修正したのか分からなくなる可能性があります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください