歴史 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

歴史  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -

静的 IP が設定された Linux ボックスがあり、問題ないようです。静的 IP アドレスは数時間動作し、その後は DHCP が使用するように指示したアドレス (と思われる) に自動的に設定されます。

私の/etc/network/interfacesは次の通りです

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.101
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.254

何か案は?

答え1

Ubuntu Server でも同じ問題が発生しましたが、解決できたと思います。ネットワークを再起動すると、dhclient3 はまだ実行されています。htop から確認すると、引数に「eth0」が含まれているため、eth0 の dhcp の更新をまだ探しているのではないかと疑いました。apt-get で dhcp-client を削除できなかったため、次を実行しました。

sudo kill $(ps -aux | grep dhc | grep eth0 | awk '{print $2}')

注意: このコードは、サーバー上の他のものを強制終了する可能性があります。落ち着いて、「eth0」を、静的 IP を設定したインターフェース名に置き換えてください。または、htop を通じてインターフェースの dhclient または dhclient3 を強制終了してください。

答え2

私も同じ問題を抱えていました。dhclient デーモンがおかしくなってしまいました。健全性チェックに手を加える必要があります。次のようになるはずです:

  • 既存のリース情報を検出する (/var/lib/dh​​cp/*)
  • DHCP 構成のすべてのインターフェースを検証します (/etc/network/interfaces)
  • インターフェイスが静的に構成されている場合は、DHCP リース情報をクリアし、実行中はインターフェイスを無視します。
  • インターフェイスが静的に設定されておらず、既存のリース情報がある場合は、それに応じて更新します。
  • インターフェイスが静的に設定されておらず、既存のリース情報がない場合は、それに応じて検出します。

歴史 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

問題が続いている間に、/var/log/syslog が次の行でいっぱいになっているのを目撃しました。

May  3 06:25:36 xxxxxx dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67

'ps aux | grep dhc' で確認したところ、dhclient プロセスはバックグラウンドで実行されていました。

'/etc/network/interfaces' で eth0 の静的 IP 設定が正しいことを確認した後、ネットワーク サービスを再起動しました。ネットワーク サービスが再起動された後、静的 IP はリースが半分の期間に達するまで維持され、その時点で dhclient はシステムの初期構成時に受信した、以前に DHCP によって割り当てられたアドレスを更新しました。この情報は '/var/lib/dh​​cp/*' に保持されます。

この動作は、私がここ数日間作業していた 3 つのシステムで確認されています。システム情報:

# cat /etc/issue.net
Debian GNU/Linux 7
# cat /proc/version
Linux version 3.2.0-4-amd64 ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.68-1+deb7u1
# dhclient -version
Internet Systems Consortium DHCP Client 4.2.2

解決 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

注: root として実行するか、各コマンドに sudo を追加します。

# dhclient -r
# dhclient -x
# rm /var/lib/dhcp/* 
# shutdown -r 0

結果: dhclient プロセスはシステムで自動的に起動せず、'ifconfig' は eth0 が静的 IP で正しく構成されていることを示し、syslog には DHCP スパムが存在せず、変更は複数回のシステム再起動後も持続します。

注意: 私のシステムは、正しく動作するために静的に割り当てられた IP アドレスに依存しています。この修正をラップトップに適用すると、WiFi 接続が切断される可能性があります。

関連情報