ネットワークインタフェースに関して、systemdはどのように機能しますか?

ネットワークインタフェースに関して、systemdはどのように機能しますか?

Systemdはネットワークインタフェース名をeth0からenp0s25に変更することが知られており、これを「予測可能なネットワークインタフェース名」と呼びます。

私のシステムでは、eth0を「enp0s31f6」と呼びます。

こんなことを言ってすみませんが、私もこのユーザーの言葉に同意します。「私は「予測可能」という言葉が皮肉だとは思わない」 https://askubuntu.com/questions/704361/why-is-my-network-interface-named-enp0s25-instead-of-eth0

トピックに戻る:

私のシステム(物理PCIイーサネットアダプタを搭載したDebian 9.8)で、突然DHCPが機能しなくなったことがわかりました。

IPを取得するには、dhclientを手動で実行する必要があります。

その後、/etc/network/interfacesを見て、次のことを確認しました。

auto eth0
iface eth0 inet dhcp

これはenp0s31f6ではないはずですか?

しかし、そこに何を入れるべきかをどうやって知ることができます。

このファイルを手動で編集し、systemdが私のインターフェースを呼び出すことを決めた項目にeth0を変更する必要がありますか?

確かに、私はsystemdの仕組み、Debianの仕組み、予測可能なネットワークインタフェースの仕組みに関するいくつかの重要な情報を見逃したことに違いありません。たぶんこれらの組み合わせです。

/etc/network/interfacesで抽象ネットワークインタフェースを参照する必要がありますか?いくつかの抽象文字列は常に「最初のネットワークインタフェースカード」を意味します(ただしeth0ではありませんか?)。それともいくつかのUIDで? PCIドメイン:バス:デバイスを介して?

とても混乱しています。多くのドキュメントでは、私が考えているレガシースクリプト、最新のシステムに言及していますが、多くのディストリビューションはレガシースクリプトとシステム機能の組み合わせを使用しているようで、マスターするのは難しいです。

質問:

  • なぜ動作が止まったのですか?

  • 私は何が間違っていましたか?

  • なぜこれですか?一度Debian が体系的で予測可能なネットワークインタフェースを使用する場合、/etc/network/interfaces の eth0 は何ですか?

  • この問題を解決する正しい方法は何ですか?

答え1

なぜ動作が止まったのですか?私は何が間違っていましたか?

「突然」何が起こったのかを言うのは難しいです。 DHCPの動作が停止する前後のDHCPログを見ると、/var/log/syslog答えが見つかります。/var/log/messagesで修正時間も確認してくださいstat /etc/network/interfaces

/etc/network/interfacesDebianが体系的で予測可能なネットワークインタフェースを使用しているときに私のeth0が表示されるのはなぜですか?

これは新しいデフォルトDebian 拡張以降。以前にシステムをインストールし、システムが/etc/network/interfacesjessie(またはwheezy ...)で起動されていた場合は、以前のnetcfg命名スキームを使用してインストーラ()によって生成されました。

この問題を解決する正しい方法は何ですか?

あなたに最適なものは何でも。

  • このシステムに複数のイーサネットインターフェイスが必要な場合は、それらを区別する方法を検討してください。 ethXシーケンスは不安定または予測不可能であることに注意してください。予測可能なネットワークインターフェイス名さまざまなオプションが用意されているので、ユースケースに応じて選択してください。

  • マシンにイーサネットインターフェイスが1つしかない場合は、次のことができます。

    • 常にeth0のカーネル名を再利用してください。 (上記のページにはいくつかのオプションがあります。私のお気に入りのオプションはです。ln -s /dev/null /etc/systemd/network/99-default.link後でrebuild initramfsを使用することを忘れないでくださいupdate-initramfs -u。)
    • または、インターフェイス名に気を付けずに/etc/network/interfaces完全に放棄し、すべての設定が一致するsystemd-networkdに切り替えます。
[Network]
DHCP=ipv4

in /etc/systemd/network/dhcp.network(ファイル名の選択)。申し訳ありません。インデントが正しくできません...

関連情報