Centos 7で作業していますが、ネットワークインターフェイスをdhcpから静的IP設定に設定するのに問題があります。
変更が/etc/resolv.conf
消え、systemctl restart network.service
一般ファイルが作成されました。
cat /etc/resolv.conf
# Generated by NetworkManager
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
注:ifcfg-ens160ファイルのPEERDNS = "yes"です。
PEERDNS=、ここでは次のいずれかのオプションです。 yes - DNSディレクティブが設定されている場合は/etc/resolv.confを変更します。 DHCP を使用する場合、デフォルトは yes です。
no - /etc/resolv.conf を変更しないでください。
何か関連があるようですが、dhcpに設定すると正常に動作するため、/etc/resolv.conf
自動的に設定すると成功すると期待します。
回避策は、/etc/resolv.conf
サービスを再起動して編集することです。
しかし、私はこの動作とファイルがデフォルトの失敗メッセージにリセットされるのを防ぐ方法を理解したいと思います。
答え1
/etc/init.d/network
古典(に翻訳されているnetwork.service
)をと比較することができますNetworkManager.service
。これらは部分的に共存すると予想されますが、そのうちの1つだけを選択して次のことを行うのが最善です。止めるそして障害を負うもう一つ。
/etc/resolv.conf
どちらも直接作成せずに正しく設定/etc/sysconfig/network
および/または/etc/sysconfig/network-scripts/ifup-*
ファイリングすることをお勧めします。
有効にする必要がありますDHCPまたはでネームサーバーを手動で設定します/etc/sysconfig
。
はい(DHCP):
BOOTPROTO=dhcp
はい(静的):
BOOTPROTO=none
DNS1=192.168.1.1
実際に/etc/resolv.conf
自分で設定し、NetworkManagerが上書きされないようにするには、次のようにします/etc/NetworkManager/NetworkManager.conf
。
[main]
dns=none
ネームサーバーの数に関する追加の質問に関連して、/etc/resolv.conf
libcリゾルバの動作であまりにも多くを期待してはいけません。単にネームサーバーを順番に試して、リストに存在しないネームサーバーがある場合、長い時間遅延が発生します。
ネームサーバーを3つ以上使用する理由はよくわかりません。ただし、そのようなものがある場合は、次のローカル転送DNSサーバーを構成する必要があります。束縛されていないまたはDNS動的構成のベストエクスペリエンスを得るには、この場合NetworkManagerを使用する必要があります/etc/resolv.conf
。127.0.0.1
NetworkManagerとdnsmasqは長い間サポートされており、Ubuntuや他のディストリビューションのデフォルトです。
[main]
dns=dnsmasq
バインドされていない NetworkManager は、最新の NetworkManager バージョンでアルファ品質であり、現在、次のものが必要です。dnssecトリガー主なユースケースは、ローカルホストでDNSSEC検証を提供するためです。
[main]
dns=unbound
dnsmasqとアンバウンドプラグインの両方が/etc/resolv.conf
構成されておりnameserver 127.0.0.1
、各プラグインは独自のローカルDNSサーバーを構成します。
答え2
ネームサーバーを指定するには、dhclient.conf を使用します。これはネームサーバーエントリの順序を細かく制御でき、ネットワーク設定の「Red Hat方式」と一致します。
dhclient.confはデフォルトでは存在しませんが、生成できます。
interface "eth0" {
prepend domain-name-servers 8.8.8.8;
append domain-name-servers 8.8.4.4;
}
生成されたresolv.conf:
# Generated by NetworkManager
search example.com
nameserver 8.8.8.8
nameserver 10.0.2.3
nameserver 8.8.4.4
Vagrantでテスト:
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.provision "shell", inline: <<VAGRANTEOF
cat <<EOF > /etc/dhcp/dhclient-eth0.conf
interface "eth0" {
prepend domain-name-servers 8.8.8.8;
append domain-name-servers 8.8.4.4;
}
EOF
sudo service network restart
VAGRANTEOF
end
追加資料:
- dhclient.conf マンページ
- /usr/share/doc/dhclient-4.2.5/dhclient.conf.example