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


15

/ 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を停止する方法は?

どうもありがとう。


回答:


22
  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しないと、正しくシャットダウンされません。


1
申し訳ありませんが、誰かがこれがここのOPで行われていることとどのように異なるかについて詳しく説明できますか?私はこれを3回読んだことがありますが、違いは分からないようです。
fostandy 14

日付が変わるようにファイルを変更(「タッチ」)することですか?インターフェイスを停止した後にのみファイルを編集することになっていますか?もしそうなら、以前に編集したという事実をどのように「元に戻す」ことができますか?
fostandy 14


1
@Bruno-明確にしてくれてありがとう。好奇心から、あなたがすでに/etc/network/interfacesファイルを取り消せないように編集した場合はどうしますか?強制的にデフォルトにリセットして再起動する方法はありますか?
fostandy 14

7
私はなぜそれが違いを生むべきなのか困惑していましたが、私の賢い友人がそれをとてもうまく説明しました。問題は、ファイルが編集されてからifdown実行された場合、ネットワークマネージャーは停止する必要があることを知らないことですdhclient。なぜなら、interfacesファイル内にあるのは静的エントリだけだからです。その後、インターフェイスがダウンし、ifup正しく発行されて静的設定が適用されますが、dhclient開始されたこともわかりません。
パラサイクル

2

同じ問題がありました(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ファイルの両方を読み取ります。いくつかの競合が生じますが、それでも機能的なネットワークです。


私はまったく同じ問題を抱えていて、後のファイル(99-eth0.cfgなど)が実際に以前のステートメントをオーバーライドしていないという難しい方法を学びました!ご意見をお寄せいただきありがとう
ござい

1

私が見つけたのは、これはgnomeのNetworkManagerがまだ実行中であり、デバイスを担当していると考えていたためです。後から考えると、psdhclientがNetworkManagerによって起動されていることが示されているように、これは明白なはずです。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.