web-dev-qa-db-ja.com

ネットワークインターフェースの「予測可能な名前」を決定する方法

新しいサーバーをセットアップして、Ubuntu Bionicをインストールします。これには 予測可能なネットワークインターフェイス名 を使用します。

インストーラーは、eth0eth1などの古いインターフェース名を使用しているレスキューシステムで実行されていますが、新しくインストールされたシステムは最初のネットワークカードをenp8s0として構成しています。

lshwを使用すると、このカードのバス情報は次のようになります。

bus info: pci@0000:08:00.0

新しくインストールしたシステムを起動せずに他のネットワークインターフェイスをセットアップしたいのですが、他のカードの予測可能なネットワークインターフェイス名を確認する方法がわかりません。

lshwを使用して、現在無効になっている別のネットワークカードを見つけました。

bus info: pci@0000:41:00.0

これから予測可能なネットワークインターフェイス名を特定することは可能ですか? enp41s0のようになりますか?

私はしばらく検索しましたが、すべてのデバイスとその予測可能な名前を単にリストするツールは見つかりませんでした。

編集:なぜ新しいシステムを起動して調べたくないのですか?これは、セットアッププロセスに余分な手順を追加するためです。古いインターフェイスの名前を使用して、ホスティング会社が提供するレスキューシステムからサーバーをセットアップするスクリプトを実行でき、使用できる状態になりました。次に、サーバーをセットアップしてから、追加のネットワーク構成を最初に削除する必要があります。次に、新しいシステムが起動したら、インターフェースの名前を知るために、手動でネットワークを設定する必要があります。

4
pymkin

命名スキームの詳細はソースコードにあります: dev/udev-builtin-net_id.c 。一般的なスキームには、PCI物理、PCIホットプラグ、およびオンボードがあります。 enpインターフェースは物理的なものを提案します。

コメントからエキゾチックで無関係なビットを取り除くことはこれらのルールを残します:

 * Two character prefixes based on the type of interface:
 *   en — Ethernet
 *
 * Type of names:
 *   [P<domain>]p<bus>s<slot>[f<function>][n<phys_port_name>|d<dev_port>]
 *                                         — PCI geographical location
 *
 * All multi-function PCI devices will carry the [f<function>] number in the
 * device name, including the function 0 device.
 *
 *
 * When using PCI geography, The PCI domain is only prepended when it is not 0.

そのPCIバス名は domain:bus:slot.function の形式です。

16進数の41が10進数の65に変換されるため、それが多機能デバイスではないと想定すると、pci@0000:41:00.0enp65s0と表示されます。

5
John Mahowald