web-dev-qa-db-ja.com

wlan番号の割り当て

Linuxはネットワークデバイスの割り当てをどのようにまたはどこで決定しますか?具体的には、wlan0またはwlan1ワイヤレスUSBデバイス用。

少し前にTP USBワイヤレスを接続しましたが、割り当てられましたwlan0。削除しました。今週私はEdimax USBワイヤレスデバイスを接続しましたが、wlan1。今日2つ目のEdimax USBワイヤレスデバイス(2つ購入)を試すためにそれを取り外しましたが、今ではwlan2

これがどこかで構成されていることを知るのに十分なUnix/Linuxを知っています。未使用の構成ファイルを削除すると、最新のEdimaxをwlan0。しかし、どのように/どこで?

12
Huntrods

dev は、Linuxでのデバイスの名前を決定するシステムコンポーネントです。主に/devでのファイル名だけでなく、ネットワークインターフェイスの名前も決定します。

Udevのバージョン099から196には、ネットワークインターフェースの名前を記録し、常に同じデバイスに同じ番号を使用するルールが付属しています。これらのルールはudev 174以降、デフォルトでは無効になっていますが、ディストリビューションでは有効になっている場合があります(Ubuntuが保持しているなど)。一部のディストリビューションは、異なるルールセットを提供しています。

将来の使用のためにインターフェース名を記録および予約するスクリプトは/lib/udev/rules.d/75-persistent-net-generator.rulesです。 /etc/udev/rules.d/70-persistent-net.rulesにルールを記述します。したがって、wlan0から既存のwlan1および/etc/udev/rules.d/70-persistent-net.rulesエントリを削除し、wlan2wlan0に変更します。 udevadm --trigger --attr-match=vendor='Edimax'(または、お使いのデバイスに一致する--attr-matchパラメータを見つけたら)を実行して、すでにプラグインされているデバイスにルールを再適用します。

この問題は、systemd v197の時点で解決され、ネットワークデバイスの永続的な命名が導入されました。

Freedesktop Predictable Network Interface Names ページによると、カーネルは、関連するドライバによってプローブされた順序に基づいて名前を割り当てただけです:

カーネルによって適用されるネットワークインターフェースの古典的な命名方式は、ドライバーによってプローブされるすべてのインターフェースに、「eth0」、「eth1」などで始まる名前を割り当てるだけです。ドライバーのプローブは一般に最新のテクノロジーでは予測できないため、複数のネットワークインターフェイスが利用可能になるとすぐに、「eth0」、「eth1」などの名前の割り当ては一般に修正されなくなり、非常によく発生する可能性があります」あるブートでのeth0は、次のブートでは「eth1」になります。

ディストリビューションでsystemdを使用している場合は、wlp0s11のように予測どおりに割り当てられているが扱いにくい名前を使用するか、udevルールを記述して、Macアドレスに基づいて、wifi1などの使いやすい名前を付けることができます...

/etc/udev/rules.d/という名前のファイルを10-network-device.rulesにインクルードします。

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="22:bb:cc:33:44:dd", NAME="wifi1"
4
jasonwryan