Debian Wheezy(7.0)を実行しているVM(ESXi 5.1.0上))があります。
eth0には静的に割り当てられたアドレスがあります。 eth1 was DHCPが割り当てられたので、静的にします。
これが私の古い/etc/network/interfaces
です:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo eth0 eth1
iface lo inet loopback
# The primary network interface
allow-hotplug eth0 eth1
iface eth0 inet static
address 10.2.1.77
broadcast 10.2.1.255
netmask 255.255.255.0
pointopoint 10.2.1.1
iface eth1 inet dhcp
そして、これが私の新しい/etc/network/interfaces
です:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo eth0 eth1
iface lo inet loopback
# The primary network interface
allow-hotplug eth0 eth1
iface eth0 inet static
address 10.2.1.77
broadcast 10.2.1.255
netmask 255.255.255.0
pointopoint 10.2.1.1
iface eth1 inet static
address 10.1.0.254
netmask 255.255.255.0
gateway 10.1.0.1
dns-nameservers 8.8.8.8
再起動すると、dhcpcd
が古いDHCP割り当てアドレスのリースを更新しようとし、成功することがわかります。そして、/etc/resolv.conf
を上書きします。これはshould 8.8.8.8を含みますが、含まれていません。ただし、eth1には正しい(静的)アドレスがあります。
私はここで何が間違っているのですか? dhcpcd
を完全に無効にしたくありません。近い将来、eth1をDHCPに戻すか、DHCPによって割り当てられた3番目のインターフェイスを追加する可能性があります。
これは、dhcpcd5
の制限が原因です。これにより、すべてのインターフェイスでDHCPが有効になります(すべてまたはまったく)。より柔軟なisc-dhcp-client
に切り替えることで、これを修正しました。
実行(rootとして):
update-rc.d -f dhcpd remove
将来、再度有効にする場合は、
update-rc.d dhcpd defaults
注:rc.dから削除すると、すべてのインターフェイスで無効になります。これを復元すると、すべてのインターフェイスで有効になります。
dhcpcdのmanページ は次のことを示しています。
denyinterfacesパターン
When discovering interfaces, the interface name must not match pattern which is a space or comma separated list of patterns passed to fnmatch(3).
Dhcpcdがインターフェイスで動作するのを停止するには、/ etc/dhcpcd.confに行を追加して、インターフェイスをそのままにしておくように要求できます。
oPの場合、これは次のようになります。
denyinterfaces eth0
これにより、dhcpcdを有効にしたまま、その特定のインターフェイスでdhcpcdが混乱するのを防ぐことができます。これにより、インターフェース構成を/ etc/network/interfacesに保持することもできます。もう1つのオプションは、Arifferが提案したものを使用することです(/ etc/network/interfacesの代わりに/etc/dhcpcd.confを使用して構成を行います)。
Dhcpcd(クライアントデーモン、ここではほとんどの人がDHCPおよびDHCPdと混同しています)を使用している場合は、/etc/dhcpcd.conf
の下部に次のテキストを追加します。
static
interface eth0
static ip_address=172.16.0.5/24
static routers=172.16.0.1
static domain_name_servers=8.8.8.8
もちろん、IP情報をネットワークの詳細に置き換えることを忘れないでください。
サービスを無効にすることができます。 https://serverfault.com/questions/32438/disable-a-service-from-starting-at-all-runlevels
推奨される方法は、デバイスの/etc/sysconfig/network-scripts/ifcfg-*
ファイルを更新してdhcp行を削除する(またはfalseに変更する)ことです。
残念ながら、私は現在Linuxマシンの前にいないので、正確な構成を取得することはできません。