複数の場所の無線インターフェイスの設定

複数の場所の無線インターフェイスの設定

/etc/network/interfacesさまざまなアクセスポイントを検出し、それに応じて接続するように設定したいと思います。ファイルの現在の状態は次のとおりです。

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

auto ra0
iface ra0 inet dhcp
 wpa-ssid MyNet
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

これにより、イーサネット接続が正常に検出され、可能であれば MyNet に接続されます。複数のアクセスポイントを検出するように設定するにはどうすればよいですか?

ここ答えのようですが、指示を理解できません。

さまざまなGUI(nm、wicdなど)を試してみましたが、どちらも私のラップトップで動作しないようです。とにかく、私はコマンドラインを介して実行することを好みます。

答え1

wpa_supplicant複数のWi-Fi設定/SSIDを解決するには、そのレベルで作業することをお勧めします。

インターフェイスを次のようにしてください。

auto ra0
iface ra0 inet dhcp

wpa_supplicantをインストールします。

apt get install wpasupplicant

wpa_supplicant.confSSIDによって、どの構成が使用されるかを決定する複数の場所を定義できます。良い:

network={
    ssid="ssid2"
    psk="ssid2 PASSWORD"
}

network={
    ssid="ssid1"
    psk="ssid1 PASSWORD"
}

構成に新しいSSIDを追加するたびにサービスを再起動します。

AP に接続すると、wpa_supplicantSSID 名に基づいて対応する設定が自動的に選択されます。

答え2

複数の場所で動作するように構成するには、/etc/network/interfaces論理インターフェイスと物理インターフェイスの違いを理解する必要があります。物理インターフェイスは、システムにインストールされているハードウェアデバイスに対応し、特定の命名スキーム(wlan0、wlan1、eth0、ra0など)によって識別されます。

あなたの場合、/etc/network/interfaces物理インターフェイスごとに1つの設定しか指定できないため、ここで論理インターフェイスが機能します。物理インターフェイスには複数の論理インターフェイスがあります。これをマッピングといいます。論理インターフェイスを物理インターフェイスにマッピングするには、次の場所に追加します。/etc/network/interfaces

mapping ra0 # map physical interface ra0...
    map home work # ...to 'home' and 'work' logical interfaces

次に、各インターフェイスの設定を作成します。

iface home inet dhcp # configuration stanza for 'home' logical interface
 wpa-ssid Home
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

iface work inet dhcp # configuration stanza for 'work' logical interface
 wpa-ssid Work
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

もちろん、システムがどのインタフェースを使用すべきかわからないので、これはうまくいきません。したがって、guessnetシステムが設定を選択するのに役立つようにします。

sudo apt-get install guessnet

次に、guessnetマッピングセクションで次を使用します。

mapping ra0
        script /usr/sbin/guessnet-ifupdown # <-- We added this
        map home work

Guessnet特定の基準(IP、ESSID、MACアドレス)に対してネットワークをテストし、これらのテストに失敗しない構成を選択してこれを実行します。次の例では、ESSIDが「Work」のネットワークを使用できる場合、前に定義したインターフェースがra0そのネットワークに接続され、この構成が適用されます。

iface work inet dhcp 
 test wireless essid Work # We test if the ESSID of the network is 'Work'
 wpa-ssid Work
 wpa-psk 00d8f778e1e86be0961aa767564d7364ee44fcbd704e4e31ee6c4af0f855c32f

答え3

私たちの場合は、特定のデバイスに異なる無線LANを専用に使用したいと思います。このために、私たちはsystemdテンプレートを作成しました。

# cat /usr/lib/systemd/system/wpa_supplicant\@.service 
[Unit]
Description=WPA supplicant for %i
Before=network.target
After=dbus.service
Wants=network.target
IgnoreOnIsolate=true

[Service]
ExecStart=/sbin/wpa_supplicant -s -O /run/wpa_supplicant-%i -c/etc/wpa_supplicant/wpa_supplicant-%i.conf -i%i

[Install]
WantedBy=multi-user.target

次に、次のように構成を作成します。

==> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf <==
network={
    ssid="net0"
    psk="secretpass0"
}

==> /etc/wpa_supplicant/wpa_supplicant-wlan1.conf <==
network={
    ssid="net1"
    psk="secretpass1"
}

次のように起動します。

systemctl enable --now wpa_supplicant@wlan0
systemctl enable --now wpa_supplicant@wlan1

警告する:

奇妙なことに、私のサービスを無視して次から実行しているようですdhcpcd

# ps ax|grep wpa

    653 ?        Ss     0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan1.conf -iwlan1
    668 ?        Ss     0:00 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0

# systemctl status 668
● dhcpcd.service - DHCP Client Daemon
     Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
    Drop-In: /etc/systemd/system/dhcpcd.service.d
             └─wait.conf
     Active: active (running) since Sat 2023-07-08 21:16:25 BST; 1min 23s ago
       Docs: man:dhcpcd(8)
    Process: 545 ExecStart=/usr/sbin/dhcpcd -w -q (code=exited, status=0/SUCCESS)
      Tasks: 3 (limit: 1993)
     Memory: 4.3M
        CPU: 775ms
     CGroup: /system.slice/dhcpcd.service
             ├─653 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan1.conf -iwlan1
             ├─668 wpa_supplicant -B -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf -iwlan0
             └─701 /usr/sbin/dhcpcd -w -q

たぶん、Debian Networking Stackはファイルを直接dhclientサポートし、自動的に実行することができます(私の/ etc / network / interfaces *ファイルは空です)。wpa_supplicant-<device>.confその場合、必要なのはデバイスごとに異なる構成を適用することだけです。しかし、とにかくこれは私たちにとって効果的でした。なぜこれが起こるのかご存知の方はコメントを残してください。

関連情報