2 つのイーサネット インターフェイス (etho と eth1) を持つサーバーで問題が発生しています。このサーバーは linux-ubuntu-server を実行しています。eth1 はリッスン インターフェイスのみにする必要があるため、DHCP 要求を一切行わない必要があります。当然、eth0 は正常に動作している必要があります。では、eth1 上の DHCP クライアント アクションを無効にするにはどうすればよいでしょうか。
少し早いですがお礼を。
答え1
何かのようなもの:
auto lo eth0 eth1
iface lo inet loopback
iface eth1 inet static
address 192.168.32.130
netmask 255.255.255.0
gateway 192.168.32.1
設定ファイルでは、静的 IP アドレスが/etc/network/interfaces
割り当てられます。eth1
答え2
正しい/etc/network/interfaces
ファイルがあっても、dhclient
静的インターフェースで IP アドレスを要求し続ける場合があります。この問題は、/var/lib/dhcp/dhclient.*.leases
間違った情報を含む古いファイルの存在にある可能性があります。 kill してdhclient
それらのファイルを削除し、新たに開始します ( DHCP インターフェースでifdown
/ を実行します)。ifup
答え3
最新の Linux OS では、Network Manager によってこれを制御できます。
RHELの場合:
BOOTPROTO=dhcp
ファイル内の行を変更する/etc/sysconfig/ネットワークスクリプト/ifcfg-eth1にしてからBOOTPROTO=static
、ネットワーク サービスを再起動します。Debianの場合:ファイル内の
method=auto
行をに変更しますmethod=static
/etc/NetworkManager/system-connections/有線接続1、ネットワーク サービスを再起動します。
答え4
このインターフェースに静的 IP を追加したくない場合は、DHCP クライアントによって割り当てられた IP を削除する必要があるかもしれません。
このスクリプトを実行すると、eth0 の IP が削除されます。
#!/bin/sh
localip=`ip addr list dev eth0 | grep "inet " | sed 's/\(^\s*inet\s\)\([0-9\.]*\)\([\s\/].*\)/\2/'`
if [[$ip != ""]]; then
sudo ip addr del $localip dev eth0
fi
手動で実行するか、crontab に設定する必要があります。または、IP を割り当てた後に呼び出すことを試みますが、それをフックする方法がわかりません。IP アドレスが削除された後、このインターフェイスで DHCP クライアントが無効になっているかのように動作します。
注: これは、指定されたインターフェイス上の DHCP クライアントの影響を取り除く回避策にすぎず、実際に無効にするものではありません。IP アドレスが割り当てられていない状態でインターフェイスが稼働している必要がある私のソリューションでは機能します。