予測可能なネットワークインターフェイス名は、NFS ルートインターフェイスの名前を変更しません。

予測可能なネットワークインターフェイス名は、NFS ルートインターフェイスの名前を変更しません。

NFSルートと予測可能なネットワークインターフェイスを使用して、イーサネットインターフェイス名が異なることを発見しました。カーネルによって構成されたインタフェースの1つはeth0と命名され、他のインタフェースはネットワークデバイスの命名方式に従って命名されました。したがって、同じイメージがローカルで起動され、ネットワークを介して起動されると、同じインターフェイスの最終名が異なります。これはいくつかの構成を妨げるようです。たとえば、[eth0] を使用する ptp4l.service 構成があるため、ローカルおよびネットワーク ブートには [end0] と [eth0] を使用して別々の構成を作成する必要がありますが、これは不便です。

NFS ルートを使用する場合、NFS ルートが依存するイーサネットインターフェイスがあります。したがって、カーネルによって構成され、名前が付けられ、設定できません。

NFS ルート systemd-udevd.service を使用すると、eth0 の名前を変更できないことが表示されます。

systemd-udevd[180]: eth0: Network interface 'eth0' is already up, refusing to rename to 'end0'.

しかし、eth0にはすでにID_NET_NAME_ONBOARDがあります。

# udevadm test-builtin net_id /sys/class/net/eth0 2> /dev/null
ID_NET_NAMING_SCHEME=v252
ID_NET_NAME_MAC=xxxxxxxxxxxxx
ID_NET_NAME_ONBOARD=end0

予測可能なネットワークインタフェース名を無効にすることは考慮しません。

もしそうなら、カーネルの起動中にイーサネットインターフェイス名を設定するか、systemd-udevdにID_NET_NAME_ONBOARDを使用して設定されたインターフェイスの名前を変更するように強制する方法はありますか?

答え1

または、ID_NET_NAME_ONBOARD を使用して、systemd-udevd が設定されたインターフェイスの名前を変更するように強制します。

これは非常に簡単に行えますが、後で見るとコア名前の変更を拒否し、systemd-udevdが間違った当事者でない場合、systemd-udevdを倒そうとする試みは意味がありません。

「予測可能なネットワークインタフェース名」には魔法のようなものはありません。これは単なるudevルールであり、udevはip link setインターフェースの名前を変更するために同じ方法を使用します。

予測可能なネットワークインターフェイス名がNFSルートでテストされており、この状況に正しい解決策がある可能性があります。

systemd / udevが推奨する一般的な解決策は、initramfsを使用して開始することです。 initramfsは、プロセスが開始される前にカーネルにネットワークを構成させるのではなく、ユーザースペースでこれを行います(これにより、NFSルートもマウントされます)。 initramfsは、ネットワーク構成を続行する前にsystemd-udevdを起動するか、別の名前変更を実行できます。

systemd-networkdの最新バージョンはカーネルコマンドラインネットワークパラメータも認識しているため、そのパラメータをinitramfsに簡単に含めることができます。

関連情報