web-dev-qa-db-ja.com

静的IPを選択したときにdhclientがまだ実行されているのはなぜですか?

/ etc/network/interfacesでdhcpを静的に変更します(以下を参照)。

# The primary network interface
auto eth0
iface eth0 inet static
netmask 255.255.0.0
address 10.10.130.128
gateway 10.10.1.1

次に、インターフェイスを再起動します。

$ Sudo ifdown eth0; Sudo ifup eth0
...
$ ifconfig
eth0      Link encap:Ethernet 
          inet addr:10.10.130.128  Bcast:10.10.255.255  Mask:255.255.0.0

したがって、新しいアドレスが有効になります。

しかし、DHCPはまだそこにありますか?

$ ps aux | grep dhc
root    ... dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth0

それは正常ですか?そうでない場合、静的IPでインターフェイスを再起動し、同時にDHCPを停止する方法は?

どうもありがとう。

14
user276851
  1. 最初にインターフェースをシャットダウンする必要があります(dhcpモードで)Sudo ifdown eth0
  2. 次に、構成を編集しますnano /etc/network/interfaces

    # The primary network interface
    auto eth0
    iface eth0 inet static
    netmask 255.255.0.0
    address 10.10.130.128
    gateway 10.10.1.1
    
  3. インターフェースをバックアップしますSudo ifup eth0

そうでない場合、dhclientは正しくシャットダウンしません。

22
pvc

同じ問題がありました(Ubuntu 16.04)。ただし、これはクラウドインスタンスであり、インターフェイスを簡単にダウンダウンできませんでした。

簡単な答え:ファイルを削除しました/etc/network/interfaces.d/50-cloud-init.cfg ifupはその特定のファイルによってトリガーされました。

長い回答:/etc/network/interfacesを使用して静的IPアドレスを使用してインターフェイスを設定しましたが、dhclientがDHCPからIPを要求しており、dhclientがsystemdを介して開始されていることがdaemon.logでまだ見つかりました。具体的には、systemdはnetworking.serviceユニットを呼び出し、これはifupを呼び出し、interfacesファイルと50-cloud-init.cfgファイルの両方を読み取ります。いくつかの競合が生じますが、それでも機能的なネットワークです。

2
Patrick Deelman

私にとっては、これはgnomeのNetworkManagerがまだ実行中で、デバイスを担当していると考えていたためです。 psがdhclientがNetworkManagerによって起動されたことを示したので、後知恵でこれは明白であるはずです。

システムを再起動すると、デバイスはNetworkManagerで「管理対象外」になり、構成を試行しなくなりました。 NetworkManagerを停止/再起動するだけで同じことを達成できたかもしれませんが、よくわかりません。

1
fostandy