VPNトンネルの反対側にあるクライアントにVPSの静的ルートを追加して、そのトラフィックをトンネル経由で転送しようとしています。
これは、ルートを追加する予定の目的地の設定です。 Raspiはそれ自体がAPに接続されているルーターとして機能し、NASはRaspiに接続され、VPNトンネルを介してトラフィックをリダイレクトします。
+--------------------------------+
| Raspi |
(192.168.0.101/24)| |(192.168.1.1/24)
(192.168.0.1/24) AP<>=================={wlan0 eth0}================<>NAS (192.168.1.102/24)
| \ / |
| +----------------------+ |
| | iptables and | |
| | routing engine | |
| +-----------+----------+ |
| | |
| {tun0} |
| 10.8.0.6 |
+--------------------------------+
Raspiの背後にあるNAS)と通信するために、route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
を実行しようとしていますが、SIOCADDRT: Network is unreachable
を取得します。
これらはサーバー側の情報です:
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:217.B.C.D Bcast:217.B.C.D Mask:255.255.255.255
inet6 addr: XXXX::XXX:XXXX:XXXX:XXXX/XX Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1598 errors:0 dropped:0 overruns:0 frame:0
TX packets:1453 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:176137 (176.1 KB) TX bytes:165179 (165.1 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460 (460.0 B) TX bytes:460 (460.0 B)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:169 errors:0 dropped:0 overruns:0 frame:0
TX packets:183 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:14825 (14.8 KB) TX bytes:15071 (15.0 KB)
$ netstat -anr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.255.255.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
10.255.255.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
$ ipルートリスト
default via 10.255.255.1 dev eth0
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
10.255.255.1 dev eth0 scope link
追加情報:
インターフェイス間のトラフィックリダイレクトをどのように達成したのか疑問に思われる場合は、iptablesを使用してこれまでのすべてをどのように管理したかを説明する私の投稿を次に示します。
クライアントnetwrokブロック(p2pトポロジの場合):
10.8.0.4 : Network address
10.8.0.5 : Virtual remote endpoint; Non pingable; Only used for routing
10.8.0.6 : Client IP address
10.8.0.7 : Network broadcast address
更新1:
VPNクライアントの対応するccd
ファイルでVPNサーバー構成をtopology subnet
とifconfig-Push 10.8.0.6 255.255.255.0
に変更し、代わりにVPNサーバーとクライアントを/24
サブネットに移動しました/32
の次に、ルートを追加します。今回はroute add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
またはroute add -net 192.168.1.0 netmask 255.255.255.0 dev tun0
はエラーを返しませんでしたが、それでもping 192.168.1.102
は返しませんでした。ただし、netstat -anr
は変更されました(route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
の場合)。
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.255.255.1 0.0.0.0 UG 0 0 0 eth0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
10.255.255.1 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
192.168.1.0 10.8.0.6 255.255.255.0 UG 0 0 0 tun0
私は次の指示を読みました:
https://openvpn.net/index.php/open-source/documentation/howto.html#scope
そして、VPSのroute 192.168.1.0 255.255.255.0
にserver.conf
を追加し、クライアントの対応するccd
ファイルにもiroute 192.168.1.0 255.255.255.0
を追加しました。そして、コマンドroute add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.6
を使用しましたが、それだけです。 VPSからOpenVPNクライアントの背後にある192.168.1.102
クライアントにpingを実行できます:D
追伸:私はまだsubnet topology
モードです。通常のp2p topology
では試していませんが、うまくいくはずです。