1 つのインターフェースで DHCP クライアントを無効にする

1 つのインターフェースで DHCP クライアントを無効にする

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 アドレスが割り当てられていない状態でインターフェイスが稼働している必要がある私のソリューションでは機能します。

関連情報