イーサネットインターフェイスがeth0ではなくenp0s10と呼ばれるのはなぜですか?


65

を実行するとifconfig -aloおよびenp0s10インターフェイスのみが取得され、従来のeth0は取得されません

enp0s10どういう意味ですか?なぜeth0がないのですか?


5
ifconfig非推奨です。移動を考えてみてipからiproute2すぐ。
solsTiCe

1
答えが言うように、それはsystemdの変更です。あなたの取得するにはeth0、バックはカーネルオプションを使用するnet.ifnames=0 biosdevname=0(この参照スレッドを)。ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rule以下の回答を使用すると、Debian 10(バスター)で動作しませんでした
MrCalvin

回答:


56

これは、udevdがイーサネットデバイスに名前を割り当てる方法の変更点です。これで、デバイスは「ソースの引用」に基づいた「予測可能なインターフェイス名」を使用します。

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

これが変更された理由は、systemd freedesktop.orgページに、これを無効にする方法とともに文書化されています

ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules

または、古いバージョンを使用している場合:

ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

7
freedesktop、orgリンクに続いて、要点は次のとおりですThe classic naming scheme for network interfaces applied by the kernel is to simply assign names beginning with "eth" to all interfaces as they are probed by the drivers. As the driver probing is generally not predictable for modern technology this means that as soon as multiple network interfaces are available the assignment of the names is generally not fixed anymore and it might very well happen that "eth0" on one boot ends up being "eth1" on the next. This can have serious security implications...
。– lepe

87

「enp0s10の意味」に対する回答 質問:

enp0s10:
| | |
v | |
en| |   --> ethernet
  v |
  p0|   --> bus number (0)
    v
    s10 --> slot number (10)

ソース:GitHubのudev-builtin-net_id.c


6
これを探しに来ました。
駆け巡って

5
...fNNIC名の最後に部分がないため、関数番号は0であると推測できます。番号を16進数(10 = 16進数で「a」)に変換した後、enp0s10PCIデバイスID を意味することがわかります00:0a.0
telcoM
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.