「予測可能なネットワークインターフェイス名」を有効にする方法


12

私のイーサネットデバイスの名前を調べることにしましたが、他のディストリビューションと異なり、Debianはこの変更を有効にしていないようです(または、それを控えていますか?)。

  • 現時点では、古い永続的なネットワークインターフェイスの命名規則を保持し、カーネルコマンドラインでnet.ifnames = 1を使用して新しいものをオプトインします。

問題は、grubカーネル行を編集する必要があることです。これは、ファイルを変更することで無効にできるものに対してやり過ぎのようです。別の方法はありますか?


次のリンクを確認することをお勧めします:science.uva.nl/research/air/wiki/LogicalInterfaceNames nameifや起動ファイルの更新などの回避策が見つかるかもしれません ... @Braiam
user1527227 14

@ user1527227それはまさに私がしたくないことです。
Braiam

jesseでは、/ etc / default / grubの1行のみを変更する必要があります。wheezyでは、このAFAIKを有効にする方法はありません。私は新しい命名方式が本当に好きなので、私は自分のwheezeサーバーに独自のudevルールを設定しました。
GnP 14

回答:


11

Debianのバージョン220-7は、このオプトインを行うパッチを削除しました。

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

これはdebian-develリストの提案から生じました。古い名前を使用していたシステムは、ユーザーが移行するまで名前が変更されません。移行ガイドについてはREADME.Debianをお読みください。

新しい名前は、次を使用して予測できます。

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

ここeth0で、デバイスの現在の名前です。


5

sidまたはjessieについて話していると思います。wheezyの場合、v204バックポートを試してください。

ここで劇中のいくつかの誤解があるかもしれません:udevルールから分かるように、ここで(現在はsidのV208用)、udevの開発者が明示的にこの機能を有効にするデフォルトの方法として、カーネルコマンドラインパラメータを選択しました。
私はそれのために選ばれたインタフェースを使用して、単に置くことで、「やり過ぎ」、本質的に何も表示されませんGRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"/etc/default/grub。あなたが心配している特定の副作用はありますか?

Debianのそれらの規則にに格納されているので、あなたが言及した答えは、それを無効にするには、ファイルを削除示唆しているという事実は、長期的には動作しません(少なくとも、Debianの場合)ハックです/lib/udev/rules.d彼らは上書きでになるだろう。すなわち、アップグレード(さらに、それを記述するファイルを効果的に削除することで機能を無効にすることは理にかなっていますが、有効にすることは根本的に異なるため、これは不公平な比較だと思います)。

OTOH、カーネルcmdlineを使用しない具体的な理由がある場合、debianパッケージに対してバグを報告し、メンテナーにこれらのルールを移動させることができます/etc/udev/。その後、理論的には現在の「永続的な」ルールと新しい「予測可能な」ルールを切り替えることができます。

ただし、net.if_names参考までに、バージョン209のソースを見ると、このチェックは完全に削除されているようです。そのため、近い将来、質問の修正が必要になる場合があります。


1
「この機能を有効にするデフォルトの方法として、明示的にカーネルコマンドラインを選択しました。」実際、これはこれを行うDebianパッチであり、udev開発者ではありません。ブート時にオプトアウトする方法のみが含まれていましたが、Debianはそれをオプトインに変更しました。デフォルトでは有効になっているため、有効にするのは簡単です。
Braiam 14

@ブライアム:いいキャッチ!しかし、カーネルのcmdlineを有効にするか無効にするかに関係なく、インターフェースとして使用するというudevの選択であったというのが主な論点であると思います。
レオアンチューンズ14

カーネルコマンドラインを編集してnet.ifname=1パラメーターを追加しましたが、この機能はLinux Mintでは有効になっていません。この機能をサポートしているLinuxディストリビューションはどれですか?
sherrellbc

0

Debian / Ubuntuでは、udev 220以降、このファイルの名前を変更することで新しい名前を有効にできます。

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

が示唆するように/usr/share/doc/udev/README.Debian.gz

sudo update-initramfs -u

次に、再起動します(または、ネットワークカードを駆動するモジュールのrmmod + insmod)。


-1

Ubuntu 15.10はbiosdevname、予測可能なネットワークインターフェイス名を提供しないものを使用します。削除(apt-get remove biosdevname)し、grub(GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1")および永続的なルールを編集しても、予測可能なネットワークの干渉は発生しません。

主な理由は、下位互換性のようです。2つのモバイルブロードバンドUSBデバイスでテストしたところ、ネットワークインターフェース名は各ブートで一貫性のない名前が付けられました(たとえば、最初のインターフェースusb0、2番目のusb1など)。主な理由は下位互換性のようです。

ランチパッドにはいくつかのバグがありますが(例:これ)、簡単な答えは、予測可能なネットワークインターフェイス名を探している場合は、別のディストリビューションを探す必要があるということです。


とった!実際に答えを更新します。
アンソニーハント

@roalma答えを更新しました!以前の「コメントのような」投稿で申し訳ありません。
アンソニーハント

Debianは、バージョン220-7以降、動作を修正するパッチを削除したため、デフォルトでこの機能をサポートしています。これで、新しくインストールされたシステムはデフォルトで予測可能な名前を使用します。
Braiam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.