web-dev-qa-db-ja.com

systemdで予測可能なネットワークインターフェイス名

UbuntuとDebian(stretch)の最近のバージョンでは、新しいネットワークインターフェイスの命名規則が導入されています。

今、 "eth0"のような古いスタイル名を使用しているシステムから更新するとき、私は知りたいですブートする前に =新しい名前はどうなるか。

これどうやってするの?起動前に(そしてその後ネットワーク接続が失われる前に)/ etc/network/interfaceを編集するために使用できる「systemd」の魔法の呼び出しはありますか?

15

使用可能なスキームは2つあります。biosdevnameと予測可能なネットワークインターフェイス名です。

biosdevname

Biosdevnameは、ubuntuのデフォルトのようです。 biosdevnameパッケージをインストールするとアクティブになります。

インターフェースのbiosdevnameは、次のようにして見つけることができます。

biosdevname -i eth0

予測可能なネットワークインターフェイス名

これはDebianストレッチのデフォルトであると思いますが、以前のリリースからのアップグレード時に明示的に有効にする必要があります。

Eth0の予測可能な名前は、次のようにして見つけることができます。

udevadm test-builtin net_id /sys/class/net/eth0 | grep '^ID_NET_NAME_'
7
GnP

新しいスキームは明らかに「予測可能なネットワークインターフェイス名」と呼ばれますが、名前を実際に予測する方法に関するドキュメントは多くありません。 私が見つけたものすべて 基本的に このソースコード コメントを指します(コメント自体が最初のリンクを指します)。コメントから、udevがネットワークデバイス名に使用するアドレス指定スキームをどのようにして知るかは、まったく明確ではありません。

最初のリンクごとに、Grubのカーネルコマンドラインにnet.ifnames=0を追加することで、リンクを無効にし、従来の名前を使用できます。 このコメント によると、VLANタグ付きインターフェースを作成する予定がある場合は、追加された拡張によってインターフェース名が長くなりすぎるため、必要になる可能性があります。

それ以外の場合は、名前を使用して何をしようとしているのかを説明するために質問を再質問することをお勧めします(たとえば、インターフェースをansibleなどで構成します)。

2
DerfK

更新されたバージョンでもこれが当てはまるかどうかはわかりませんが、私の古いシステムでは/etc/udev/rules.d/80-net-name-slot.rulesに空のファイルを作成でき、「予測可能な」命名機能が無効になりました。また、独自のルールを作成し、MACアドレスまたはPCI/USB接続に基づいて自分でインターフェイスに名前を付けることもできます。

2
user143311

このドキュメント は少し役立つかもしれません。 「v197で正確に変更された点」のセクションを参照してください。はい、これはある程度の価値があると思いますが、さらなる研究の道を開くかもしれません。

0
Charles Burge