web-dev-qa-db-ja.com

アップグレード後にeth0の名前がenx78e7d1ea46daに変更されるのはなぜですか?

これは、予測可能なネットワークインターフェイス名に関連していると思います。デバイスは、kaliを実行するRaspberry Pi Bモデルです(kali-next)

  1. ファームウェア/ BIOSを組み込んだ名前は、オンボードデバイスのインデックス番号を提供します(例:eno1)
  2. ファームウェア/ BIOSが提供するPCIExpressホットプラグスロットインデックス番号を組み込んだ名前(例:ens1)
  3. ハードウェアのコネクタの物理的/地理的位置を組み込んだ名前(例:enp2s0)
  4. インターフェイスのMACアドレスを組み込んだ名前(例:enx78e7d1ea46da)
  5. 古典的で予測不可能なカーネルネイティブのethXネーミング(例:eth0)

ポリシー4)はデフォルトでは使用されませんが、ユーザーが選択した場合に使用できます。

ポリシー4はどこで無効にできますか?そもそもなぜ有効になっているのかわかりません。ファームウェア/ BIOSがイーサネットインターフェイスのインデックス/場所情報を提供していないようです。

$ udevadm test-builtin net_id /sys/class/net/enx78e7d1ea46da 2> /dev/null
ID_NET_NAME_MAC=enx78e7d1ea46da
ID_OUI_FROM_DATABASE=Raspberry Pi Foundation
3
sdaffa23fdsf

この問題は、debianおよびubuntuudevパッケージのv233より前のバージョンの/lib/udev/rules.d/73-usb-net-by-mac.rulesのバグが原因であると思われます。

このコミットによって問題が修正されました。

https://anonscm.debian.org/cgit/pkg-systemd/systemd.git/commit/debian/extra/rules/73-usb-net-by-mac.rules?id=9e202a329175b0ca4eaa09a75897aa2044eb7d7a

参照:

https://askubuntu.com/questions/811295/73-usb-net-by-mac-rules-issue-with-net-ifnames/895879#895879

これを書いている時点で、このv233はDebian jessie用にnotリリースされていません。

この問題をローカルで修正する1つの方法は、上記のコミットと同じ方法でファイルを編集してから、再起動することです。

1
jonseymour

何時間も掘り下げてどこにも行かなかった後、Ubuntu16.04がプリインストールされたサーバーarmhfを実行しているRaspberryPi3の修正を見つけました。短編小説、実行中$ apt-get update追加 予測可能なネットワークインターフェイス名

次のファイルを編集します。

$ vim /lib/udev/rules/73-usb-net-by-mac.rules

見るべき:

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \
    ATTR{address}=="?[014589cd]:*", \
    TEST!="/etc/udev/rules.d/80-net-setup-link.rules", \
    IMPORT{builtin}="net_id", NAME="$env{ID_NET_NAME_MAC}"

最後のNAMEを次のように変更します。

ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb", NAME=="", \
    ATTR{address}=="?[014589cd]:*", \
    TEST!="/etc/udev/rules.d/80-net-setup-link.rules", \
    IMPORT{builtin}="net_id", NAME="eth0"

変更内容を保存。リブート。すべてがeth0を指していると仮定すると、すべてが機能しているはずです。

0
Luis Godinez