1996


初めまして。 USBのwifiアダプタを使って、raspberry piに無線LANでSSH接続しようと試みていますが、以下の事象で困っております。
何か思い当たることがおありでしたら、ご教示ください。

  * 事象  
無線LANと有線LANの両方が稼働しているraspberry piで、LANケーブルを抜く（刺さない）と無線LANも機能しない

  * 環境 

    * raspberry pi model B+（電源はiPhone用ACアダプタから供給）
    * OS:raspbian 2014-09-09
    * カメラモジュール、I2C有効（ただしなにも接続せず）
    * wifiアダプタ：WLI-UC-GNM2/GW-USNano2
    * LANルータ（DHCP）：WHR-G301N(WPA2-PSK/AES)
    * Mac book AirからSSHでログインして操作
  * 事象が発生する状況 

    1. 有線LAN接続でSSHログイン
    2. lsusbでwifiアダプタは認識されており、ifconfigでもwlan0として認識
    3. /etc/network/interfaces, /etc/wpa_supplicant/wpa_supplicant.confを設定し、ifup  
→dncpでIPを取得でき、そのIPに対するSSHログインも成功（有線LAN側も使える）

    4. (3)状態で一旦shutdownしてLANケーブルを抜き、再起動する  
→ルータ管理画面上ではIPが振られていることが分かるが、そのIPに対するSSHログインはできない

    5. (3)状態でSSHをログアウト（起動したまま）し、LANケーブルを抜いても(4)と同様
    6. (4)or(5)状態でLANケーブルを挿し、wifiアダプタを抜くと(1)同様にログイン可能で、  
wifiアダプタを挿して(2)に戻るとwifiも使える

wifiアダプタを２種類書いていますが、上記事象はどちらでも発生します。
`/etc/network/interfaces`および`/etc/wpa_supplicant/wpa_supplicant.conf`の記載内容については、
いろいろなサイト・ブログを参考にかなり試しましたが、状況は改善していません。
`/etc/wpa_supplicant/wpa_supplicant.conf`を使わない設定でも同じでした。

VNC経由でGUIツールのwpa_guiを使うことも試みましたが、こちらではwlan0が認識されず、使えない状態です。 (chmod
4755でwpa_guiのパーミッションを変更すれば良いというブログ記事も拝見しましたが、それを行うとwpa_guiのウィンドウになにも表示されなくなりました）

という訳で、なぜかLANケーブルとセットでないとwifiが機能せず、困っております。 お知恵を拝借できると幸いです。

**12/20追記**  
みなさんご回答とコメントありがとうございます。
上記3.の状態で、2つのIPに対してMacからpingを打ちwlan0,eth0それぞれでtcpdumpを取ったところ、wlan0の方ではecho
requestも見えませんでした。（eth0には両方のIPについてecho request/replyが見えている）
キャプチャ結果でラズパイ側が"ホスト名.local"と表示されており、avahi-daemonが悪さをしているのでしょうか。。。

なお、上記3.の状態での/etc/network/interfacesとwpa_supplicant.confは下記です。

[code]

    auto lo
    
    iface lo inet loopback
    iface eth0 inet dhcp
    
    allow-hotplug wlan0
    auto wlan0
    iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    
    iface default inet dhcp
    
[/code]

  

[code]

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    network={
      ssid="SSID"
      psk=パスキー(16進)
      auth_alg=OPEN
      scan_ssid=1
    }
    
[/code]

**12/22追記**  
皆さん引き続きお付き合いありがとうございます。 Taichi Yanagiyaさんご指摘の/proc/net/arpの値（raspberry
pi）は下記となっていました。IP..11.4がmac、..11.3はiPad（SSH端末アプリ）、..11.1はルーターです。

[code]

    IP address       HW type     Flags       HW address            Mask     Device
    192.168.11.1     0x1         0x2         00:24:a5:b7:2f:4f     *        wlan0
    192.168.11.3     0x1         0x2         70:11:24:4b:1e:dd     *        wlan0
    192.168.11.4     0x1         0x0         00:00:00:00:00:00     *        wlan0
    192.168.11.3     0x1         0x2         70:11:24:4b:1e:dd     *        eth0
    192.168.11.4     0x1         0x2         48:d7:05:b7:6b:ed     *        Ethan
    
[/code]

  
**12/23追記（解決）**  
皆様ご回答とコメントありがとうございます。 Yanagiyaさんご指摘の方法とは少し違いますが、クライアント側で「arp
-d」コマンドで問題のIPのキャッシュを削除し、クライアントを再起動したところ問題が解消しました。
（なんとなくやっていたら治ってしまい、記録を取っていなくてすみません）

12/22追記ではYanagiyaさんのご指摘を勘違いしておりました。上記Ras-PiのARPテーブルは関係ありませんでした。
ARP以外にも、今まで深く考えていなかった点についてご助言をいただき、誠にありがとうございました。


CC BY-SA 3.0
2014-12-17T18:27:49.233
1946
2014-12-22T16:54:05.967
2014-12-22T16:54:05.967
4770
4770
question
raspberry-pi network
raspberry piでLANケーブルを抜くとwifiが使えない


/etc/network/interfacesの設定ってどうなっているかって見せてもらうことは可能でしょうか？ 何か設定が抜けているような気がします。


CC BY-SA 3.0
2014-12-18T04:09:12.437
1974
2014-12-18T04:09:12.437
3855
1946
answer


wlan0、有線LAN I/F (仮に eth0)が同じネットワークセグメントにあるのではないでしょうか。

一般的な Linux のルーティングは、宛先によって outbound の I/F が決まります。
宛先(ネットワークアドレスやデフォルト)に対し、wlan0, eht0 の 2つのルーティングが設定(ip route show コマンドや route
コマンドで確認)されていても eth0 が先になっていれば、eth0 からしか出ていきません。

もし、そうならば、以下のような経路になります。

  * 行き: SSHクライアント → wlan0 → sshd
  * 戻り: sshd → (ルーティングテーブル参照) eth0 → SSHクライアント

有線LAN のケーブルを抜いても I/F の設定は残っていればルーティングテーブルも残ります。

wlan0 に届いたパケットの戻りを wlan0 から出したい場合は、ソースルーティング(ソースポリシールーティング)を設定する必要があります。

(設定例)

[code]

    eth0  の IPアドレス: 192.168.0.10/24
    wlan0 の IPアドレス: 192.168.0.20/24
    
    ip rule add from 192.168.0.10 table 1
    ip rule add from 192.168.0.20 table 2
    ip route add 192.168.0.0/24 dev eth0 src 192.168.0.10 table 1
    ip route add default via 192.168.0.1 dev eth0 table 1
    ip route add 192.168.0.0/24 dev wlan0 src 192.168.0.20 table 2
    ip route add default via 192.168.0.1 dev wlan0 table 2
    
[/code]

設定の意味は、"ip rule" "ソースルーティング" などで検索してください。

他、ARP 関係の問題もあるかもしれません。 キーワード: rp_filter, arp_announce, arp_ignore


CC BY-SA 3.0
2014-12-18T06:08:45.307
1996
2014-12-18T06:08:45.307
4603
1946
answer


  1. RasPiの無線がAPに接続できる
  2. Mac -> RasPiに無線経由で送信できる
  3. RasPiが受信できる
  4. RasPi -> Macに無線経由で送信できる

…という順序で確認していくとして、IPが払い出されているので1.はOKとして、まだ2.が成功していないように見えます。無線に飛ばしたつもりのものが、有線側から届いているので。  
~~Macからルーターまでは無線経路一択だとすると、そこに疑う要素は少なく、ルーターのMacアドレステーブルを疑う手があります。(eth0とwlan0は同じサブネットにあるという設定なら)~~  
↑これはeth0とwlan0とでMacアドレスが異なるので、見当違いです。抹消しておきます。すいません。

全く別の方向性ですが、無線APで無線接続端末間の通信が不可にされているために、うまくいかなかった例もありました。家庭用無線ルーターだとデフォルト許可のような気はしますが、念のため確認すると良いかもしれません。


CC BY-SA 3.0
2014-12-20T04:10:18.983
2198
2014-12-22T06:33:26.110
2014-12-22T06:33:26.110
799
799
1946
answer