何ですかイーサネットおよびWi-Fiインターフェースの標準命名規則Linuxマシンでは?
私たちは表示するだけのツールを開発しています。LinuxシステムのイーサネットおよびWi-Fiインターフェースと現在の状態。
たとえば、以下は私のLinux(Ubuntu)システムのネットワークインタフェース(物理および仮想)のリストです。
docker0
、、、、enp0s25
lo
wlp3s0
ツールを実行すると、次の結果が表示されます。
enp0s25
、wlp3s0
私たちのコードのロジックは、すべてのイーサネットインターフェイスが常に文字で始まり、e
Wi-Fiインターフェイスが常に文字で始まるということですw
。
論理は正しいですか?そうでない場合は、この問題をどのように解決しますか?
答え1
ネットワークインタフェースの名前は任意に指定できるため、何をしても次の状況に直面します。 (1)パターンと一致しない名前を持つ「物理」ネットワークインターフェイスがある、または(2)「パターンパターン一致と一致しない物理」ネットワークインターフェイス。
要点は、私があなたのツールを使用している場合は「仮想」ネットワークインターフェースを持っているので、あなたのツールを使って私が望むことをすることができないということです。しかし、実用的な目的のためには、設定で「物理学」と見なされなければなりません。
物理ネットワークインターフェイスと仮想ネットワークインターフェイスの両方が共通のAPIを共有するため、Linuxは非常に柔軟になります。ユーザーの世話をしたり奪ったりしないでください。ユーザーは感謝します。
答え2
システムの場合予測可能なインターフェース名、プレフィックスは次のようになります。udev-builtin-net_id.c
。インターフェイスの種類に応じた2文字のプレフィックスです。
伝統的なネーミングと新しいシステムネーミングの意味のために、ethX
最初の文字は金利自動的に生成されるインターフェイス名はイーサネットインターフェイスでなければなりません。すべてのWi-Fiインターフェースは次のようにする必要があります。勝つどちらのシナリオでも、すべてのインターフェイスが次に終わるわけではありませんが、勝つWi-Fiになります。
このツールが任意の環境(あなたが制御する内部環境だけでなく)で動作する必要がある場合、ユーザーは任意の名前でLinuxシステムでインターフェースの名前を変更できます(例:イニシャルwan0
に関する規則を破る) 。lan0
lan1
dmz0
答え3
命名規則は、LANインターフェイスの名前をeth0
、、、eth1
...、WLANインターフェイスの名前をwlan0
、、、wlan1
...で指定することです。
あなたが見ているのはsystemdによって導入されたいわゆる「予測可能な名前」です。実際には予測できず、ハードウェアが変更されても変更されることがあります。これはまさに避けるべき問題です。
推測するには、開始文字で十分です。一部のインターフェイス、特にWLANには次のプロンプトがあります/sys/class/net/*/uevent
。
DEVTYPE=wlan
DEVTYPE
残念ながら、LANインターフェイスにはそのようなインターフェイスはありません。
答え4
結合または構成されたインターフェースを明示的に除外しましたか?ここでのデフォルト値は、bond0
またはteam0
サーバーのデフォルトインターフェイスとして使用することです。
論理を考え直す必要があると思います。おそらく、特定のシステムで定義されているすべてのネットワークインターフェイスを繰り返して、イーサネット、Wi-Fi、インフィニット、シリアルなどに分割して魔法をかけてみてください。