web-dev-qa-db-ja.com

2つのWiFiネットワークはOpenWrtで同時にのみ機能します

OpenWrtがインストールされたデバイスTP-Link3020ルーターを使用して、WiFiによる接続と接続の両方を試みています。

自宅のWiFiネットワークがあり、接続を設定します(「クライアントモード」)。次に、同じ無線機に別のインターフェイスを設定して、コンピューターをデバイスに接続します(「apモード」)。

クライアントモードはWANに関連付けられており、DHCPを介してスペース192.168.10.1/24でアドレスを取得するAPモードはLANに関連付けられ、スペース192.168.1.1/24でアドレスを配布します

すべてが機能しますが、自宅のWiFiが起動するまでです。シャットダウンすると、両方の接続が失われます。つまり、インターネットに接続できなくなります。これは正常ですが、コンピュータからデバイスに接続するためのAPネットワークも表示されません。たとえば、LUCIページを参照してください。

enter image description here

この構成は機能しますが、In The Moon Networkが起動するまでです。ダウンすると、pfSense routerまでに、Out of The Moon Networkもダウンします。 MR3020で設定されているにもかかわらず、アクセスできなくなり、表示されなくなります。

なぜそしてどのように克服するのですか?

[〜#〜] update [〜#〜]

12.04から14.07-rc3にアップグレードしても、インターフェースの並べ替えは役に立ちませんでした。

更新2

MR3020(たとえば、必要な無線が2つあるのに、無線が1つしかない)が私の要求に対応できない理由の説明もいただければ幸いです。

1
Dims

さて、これは正確な答えではありませんが、リピーターになることがなぜ1つの無線だけでは難しいのか(ルーティングではありますが)、より多くの説明があります。 1つの無線は1つのWiFiチャネルでのみ機能します。

ステーションモードでは、すべてが正常です。チャネルをautoに設定すると、wpa_supplicant(またはwpad)が、正しいチャネルの使用を含め、処理を行います。適切なチャネルが動的に選択されるため、ローミングも機能します。

APモードでは、無線がネットワークを提供するチャネルを明示的に指定する必要があります。このチャネルは、ネットワークを「再起動」せずに変更することはできません。

そのため、ステーションとAPの両方であるリピーターモードでは、チャネルも固定されます。これにはいくつかの意味があります。最も明白なのは、もちろん、ローミングが機能しなくなったことです。あまり明白ではありませんが、さらに残念なことに、ワイヤレスネットワークを拡張する際に、アップストリームネットワークに干渉するダウンストリームネットワークを作成します。したがって、実際に範囲を改善することはできますが、品質は低下します。

ステーションがダウンしたときにAPがダウンするという問題は、無線が1つしかないことの副作用である可能性があります。

大学のネットワーク用に(MR3020を使用して)一種のリピーターを構築しようと何時間も費やしましたが、自動ソリューションでは回避できない多くの問題のために諦めました。

1
Daniel B

TL-MR3020とTL-WR703Nでも同様の問題に直面しました。考えられる解決策の1つは次のとおりです。

  • デフォルトの設定(2つのネットワークなど)で試してみてください。
  • 開始後15秒(またはそれくらい)後、アップリンク接続をテストしてみてください。
  • アップリンクが利用できない場合は、アップリンクWi-Fiインターフェイスを無効にして、Wi-Fiを再起動します。

したがって、バックグラウンドタスクチェックスクリプトとして起動を開始します。つまり、/ etc /rc.local行に追加します。

wifi-sentinel.sh&

次のスクリプトを呼び出す:

# wifi-sentinel.sh (on syspath, e.g., in /usr/bin/)
#!/bin/sh

# use uci show wireless to list interfaces

# test both networks.
uci set wireless.@wifi-iface[2].disabled=0; 
uci commit wireless; 
wifi

# wait some time and test
sleep 15 

if wget http://google.com; then
   logger "You have uplink, no action."
# disable uplink wifi and restart if no connection is available
else
   uci set wireless.@wifi-iface[2].disabled=1; 
   uci commit wireless; 
   wifi
fi
1
tpcz

理論的にはこれは機能しますが、hostapd、wpa_supplicant、カーネルドライバー、無線自体のファームウェア、およびOpenWRT内でそれをバインドする接着剤のすべてからの協力が必要です(したがって、テストされていない)。

私は同様のハードウェアで同様のセットアップをしています。私の疑いは、hostapd/wpa_supplicantが一緒にうまく機能していないということです。 STAモードアクセスが失われた結果としてAPがダウンしたときにイーサネット経由で接続すると、ログ読み取りに特に1行が表示されます。

Sun Oct 12 03:54:23 2014 daemon.notice netifd: Network device 'wlan0-1' link is down

つまり、同じ無線を共有している他のインターフェイスもダウンとしてマークされています。

さらに掘り下げてみると、すべてが機能しているときに、AP側を見ることができます。

> iw dev wlan0-1 info
Interface wlan0-1
    ifindex 38
    wdev 0x16
    addr XX:XX:XX:XX:XX:XX
    ssid YYYYYYY
    type AP
    wiphy 0
    channel 6 (2437 MHz), width: 20 MHz, center1: 2437 MHz

インターフェイスがダウンすると、APはSSIDとチャネル設定を失います。

> iw dev wlan0-1 info
Interface wlan0-1
    ifindex 38
    wdev 0x16
    addr XX:XX:XX:XX:XX:XX
    type AP
    wiphy 0

最終的に私の場合、APモードの操作は支援なしで回復するようです。

手動でリセットするさまざまな組み合わせを試しましたが、最終的にはSTAモードデバイスのUSBポートで使用するUSB​​WiFiアダプターで解決しました。最近のOpenWRTのUSBポートでは、複数のディスクリート無線が総合的に優れたソリューションであり、安価で簡単です。

0
Flexo

Wpa_supplicantが接続を失うと、アクティブなスキャンサイクルに入り、wiphyがapモード操作に使用できなくなります。したがって、staが関連付けを失うと、apは停止します。それは簡単に修正できるものではなく、これを解決する現在の計画はありません。

詳細はこちら

https://dev.openwrt.org/ticket/120https://forum.openwrt.org/viewtopic.php?id=4161

0