12.4.0
一般的なDebianイメージを使用して、Hyper-Vホストに新しいDebian VMをインストールしましたdebian-12.4.0-amd64-netinst.iso
。
ネットワーク設定を完了するためにログインした後、2つの仮想化ネットワークカードが次の名前の代わりに名前が付けられているeth0
のを見て驚きました。eth1
予測可能なネットワークインターフェイス名柄。これが意味するのは、仮想NICに一貫してバインドできないことですeth0
。eth1
これにより、静的IPアドレスの割り当てがめちゃくちゃになり、トラフィックが間違ったインターフェイスにルーティングされるか、無効なVLAN IDでタグ付けされる可能性があります。
ダーバンネットワークインタフェース名 Wikiを実行するとき、udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
出力には常に1つのID_NET_NAME_PATH
要素を含める必要があります。
ID_NET_NAME_PATH=常に存在します。通常、wlp3s5やenp1s3f0など、忘れてしまうほど複雑です。すべての数字は16進数であることに注意してください。
しかし、私が見たことはありませんでした!コマンドを実行すると、次のような結果が出力されます。
ID_NET_NAMING_SCHEME=v252
ID_NET_NAME_MAC=enx00155dddac06
ID_OUI_FROM_DATABASE=Microsoft Corporation
問題は次のとおりです。これらの仮想マシンのネットワークインターフェイスが生成されないのはなぜですか?ID_NET_NAME_PATH「予測可能なインターフェイス名」パターンの命名に基づいて、この問題をどのように解決できますか?
フォローアップの質問:eth0
インターフェイス名を次のように保持すると、インターフェイス名eth1
はありますか?実際これにより、ネットワークインタフェースバインディングが不安定になる危険性はありますか?
現在のシステム構成の詳細については、以下を参照してください。
Debianインストーラはデスクトップ環境なしでインストールすることを選択しましたが、そしてSSHサーバーは、対話型ユーザーを必要としないプライマリサーバーアプリケーションとDockerコンテナホスティング用のリモート管理サーバーです。したがってNetworkManager
、存在しません。ネットワーク構成が管理されていると思いますsystemd-networkd
。
新しいシステムにはファイルがありません/etc/systemd/network
。だから私はそれが与えられた基本的な命名戦略シーケンスを使用すると信じています/lib/systemd/network/99-default.link
。ファイルの内容は次のとおりです。
[Match]
OriginalName=*
[Link]
NamePolicy=keep kernel database onboard slot path
AlternativeNamesPolicy=database onboard slot path
MACAddressPolicy=persistent
出力にはへsudo sysctl -a
の参照は含まれていませんnet.ifnames
。
Linux版はですLinux [...] 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux
。systemd 252 (252.19-1~deb12u1)
関連するDebian NetworkInterfaceNames Wikiページで「仮想マシン」の説明を確認しましたが、以下のファイルのいくつかを削除して/etc/systemd/network
から再構築してinitrd
インターフェース名の再生成を開始するように指示します。この場所にファイルはありません。 initrdを再構築して再起動しようとしました。これはインターフェイス名に影響を与えず、eth0
同じままですeth1
。