絖綛 N@i.jp  昨日:00044772
 今日:00044377
 総計:00096684
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:03/21 19:08


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

Raspberry Pi 3 (Raspbian Jessie) でルーティングの設定をしてみた(2)

Wi-Fi側もルーター越えできるようになりました


 あれから1日ほどジタバタしてました。直接の原因は、

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    post-up   /sbin/ip rule add from 192.168.0.200 table 100 prio 10000
    post-up   /sbin/ip route add 192.168.0.0/24 dev wlan0 src 192.168.0.200 table 100
    post-up   /sbin/ip route add default via 192.168.0.1 dev wlan0 table 100
    post-down /sbin/ip route del default table 100
    post-down /sbin/ip route del 192.168.0.0/24 table 100
    post-down /sbin/ip rule del table 100 prio 10000

赤字の箇所で"RTNETLINK answers: Invalid argument"というエラーが発生していた事でした。ただ、どれが無効な引数(Invalid argument)なのかは示してくれないという、何とも不親切なエラーメッセージなのでした。
 試行錯誤した結果、"src 192.168.0.200"が無ければエラーは発生しない事が分かりました。(でも何故"src 192.168.0.200"が無効な引数なのかは結局分からず。(*1))これが無くても、本来の目的は果たせますよね。最終的な設定は以下のようになります。

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    post-up   /sbin/ip rule add from 192.168.0.200 table 100 prio 10000
    post-up   /sbin/ip route add 192.168.0.0/24 dev wlan0 table 100
    post-up   /sbin/ip route add default via 192.168.0.1 dev wlan0 table 100
    post-down /sbin/ip route del default table 100
    post-down /sbin/ip route del 192.168.0.0/24 table 100
    post-down /sbin/ip rule del table 100 prio 10000

 ルーティングテーブルは、

# ip rule show
0:     	from all lookup local
10000: 	from 192.168.0.200 lookup wifi
32766: 	from all lookup main
32767: 	from all lookup default
# ip route show table wifi
default via 192.168.0.1 dev wlan0
192.168.0.0/24 dev wlan0  scope link

という設定になりました。これで192.168.0.200から入ってきたものに対しては、自サブネット内への通信の場合には wlan0デバイスを使い、サブネット外への場合は wlan0デバイスから192.168.0.1(ゲートウェイ)へ送るようになるはず。

# ip route get 192.168.0.100
local 192.168.0.100 dev lo  src 192.168.0.100
    cache <local>
# ip route get 192.168.0.200
local 192.168.0.200 dev lo  src 192.168.0.200
    cache <local>

(*1)"ip route add help"でヘルプを表示させてみると、

Usage: ip route { add | del | change | append | replace } ROUTE
ROUTE := NODE_SPEC [ INFO_SPEC ]
NODE_SPEC := [ TYPE ] PREFIX [ tos TOS ]
             [ table TABLE_ID ] [ proto RTPROTO ]
             [ scope SCOPE ] [ metric METRIC ]
INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...
NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS
OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]
           [ rtt TIME ] [ rttvar TIME ] [ reordering NUMBER ]
           [ window NUMBER] [ cwnd NUMBER ] [ initcwnd NUMBER ]
           [ ssthresh NUMBER ] [ realms REALM ] [ src ADDRESS ]
           [ rto_min TIME ] [ hoplimit NUMBER ] [ initrwnd NUMBER ]
           [ quickack BOOL ]

(一部だけ抜粋)なので、"src 192.168.0.200"は引数として書けると思うんだけどなぁ〜ま、いっかぁ


< 過去の記事 [ 8月の 全てのカテゴリ リスト ] 新しい記事 >

2016 calendar
8月
123456
78910111213
14151617181920
21222324252627
28293031


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.