予測可能な名前体系で使用されるネットワークインタフェース命名体系の競合を解決するには?

予測可能な名前体系で使用されるネットワークインタフェース命名体系の競合を解決するには?

Debian 10(Buster)を新しくインストールしましたが、予測可能な名前体系に問題があります。

オンボードNIC 4個と4ポートPCIe NICがあります。

命名規則はオンボードポートに適用されますが、4ポートPCIeは最初の2つのポートに適用されますが、ens2f1最後のens2f02つのポートにはrename8名前が付けられますrename9

私はここで記事全体を読んだ。https://wiki.debian.org/NetworkInterfaceNames

なぜそんな名前がついたのか分かります。ここに簡単な説明があります。
これらのインターフェイスの名前は/lib/udev/rules.d/80-net-setup-link.rulesルールファイルで使用されている優先順位ID_NET_NAMEから来ているため、ID_NET_NAME_SLOT問題は_SLOT同じで、テストするときも同じです。以下はandの出力です。ens2f0rename8ens2f1rename9udevadmens2f0rename8

# udevadm test-builtin net_id /sys/class/net/ens2f0 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx00151757e989
ID_OUI_FROM_DATABASE=Intel Corporate
ID_NET_NAME_PATH=enp13s0f0
ID_NET_NAME_SLOT=ens2f0

# udevadm test-builtin net_id /sys/class/net/rename8 2>/dev/null
ID_NET_NAMING_SCHEME=v240
ID_NET_NAME_MAC=enx00151757e98b
ID_OUI_FROM_DATABASE=Intel Corporate
ID_NET_NAME_PATH=enp14s0f0
ID_NET_NAME_SLOT=ens2f0
  1. ファイルを上書きして機能/lib/udev/rules.d/80-net-setup-link.rulesさせることができますかID_NET_NAME_PATH
    次の行を
    NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"
    次に変更してください。
    NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"

  2. ファイルに「このファイルを編集しないでください。更新時に上書きされます」と書かれているので、このファイルをどのように上書きして新しいルールファイルをどこに配置できますか?

私はこの「スクリプト」がどのように機能するかを理解していると確信しています。
この行では、まず同じであることをNAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"確認し、次に同じでないことを確認し、優先順位に従って新しい値を設定します。NAME""ENV{ID_NET_NAME}""NAMEID_NET_NAME

私が持っているファイル全体は次のとおりです(すべての人に同じでなければならないことを知っていますが、明確にするために投稿しています)。

# do not edit this file, it will be overwritten on update

SUBSYSTEM!="net", GOTO="net_setup_link_end"

IMPORT{builtin}="path_id"

ACTION!="add", GOTO="net_setup_link_end"

IMPORT{builtin}="net_setup_link"

NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"

LABEL="net_setup_link_end"
  1. これに変えてもいいですか?
SUBSYSTEM!="net", GOTO="net_setup_link_end"

IMPORT{builtin}="path_id"

ACTION!="add", GOTO="net_setup_link_end"

IMPORT{builtin}="net_setup_link"

NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_MAC}!="", NAME="$env{ID_NET_NAME_MAC}"
NAME=="", ENV{ID_NET_NAME}!="", NAME="$env{ID_NET_NAME}"

LABEL="net_setup_link_end"

ベストアンサー1

  1. はい、単純な優先順位ID_NET_NAME_PATHではなく専用の目的に変更できます。ID_NET_NAME

  2. カバレッジファイルは次の場所にあります。/etc/udev/rules.d/80-net-setup-link.rules

  3. はい、スクリプトは機能します(自己テスト)。

  4. 新しい質問に移動しました:udev予測可能な名前スキームルールにネットワークインターフェース名がすでに存在していることを確認しますか?

おすすめ記事