Udev ルールは無線インターフェイスと有線インターフェイスを区別します。

Udev ルールは無線インターフェイスと有線インターフェイスを区別します。

USBサムドライブにArchインストールを設定しようとしていますが、サムドライブをどのコンピュータ(物理または仮想)に接続しても、ネットワークインターフェイス名が同じになるようにしたいと思います。

この目的のために、udevインターフェイスが有線であるか無線であるかに応じてルールを作成したいと思います。次のルールを試しましたが、インターフェイスの名前を変更できませんでした。

SUBSYSTEM=="net",ACTION=="add",ATTR{ifindex}==2,NAME=eth0
SUBSYSTEM=="net",ACTION=="add",ATTR{ifindex}==3,NAME=wlan0

もちろん、これは有線インターフェイスが2番目にリストされ、ワイヤレスインターフェイスが3番目(ループバック以降)にリストされるという素朴な前提に基づいています。

私の質問は次のとおりです

  1. ルールがインターフェイスの名前を変更できないのはなぜですか?このエラーをどのようにデバッグできますか?
  2. インターフェイスが有線であるか無線であるかを検出するより信頼性の高い方法はありますか?
  3. ボーナス:作業を簡単にするために、私が接続しているすべてのコンピュータには、各タイプごとに最大1つのインターフェイスがあるとします。複数の有線/無線インターフェイスを処理する方法はありますか?

ベストアンサー1

/etc/udev/rules.d/70-persistent-net.rules役立つ場合は、この目的で使用されたファイル(他の命名スキームを使用している場合は現在使用されていません)は、インデックスではなくMACアドレスと一致します。そして私は本当に本物インデックスに依存しません。いいえネットワークインタフェースは、特定の順序で生成されることが保証されます。私のコンピュータでは、次のように見えます。

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:55", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

ファイルは自動的に生成されますが、なぜ含まれているのかわかりませんeth0。システムに合わせて修正してください。上記の説明で説明したように、udevadm info -p /sys/class/net/wlan0etcを使用してプロパティ全体のリストを取得します。

おすすめ記事