私は現在、OpenVPNトンネルtun1でリッスンしているアプリケーションとの間で、すべての着信および発信ネットワークトラフィックをそのトンネルを介してルーティングしようとしています。
これが私のデバイスです:tun0
は、マシン上で実行されているOpenVPNサーバーであり、マシンのローカルネットワークへのアクセスをリモートマシンに提供します。 tun1
はリモートサーバーへのOpenVPNクライアントです。
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:1c:c0:d7:98:1c
inet addr:192.168.178.9 Bcast:192.168.178.255 Mask:255.255.255.0
inet6 addr: fe80::21c:c0ff:fed7:981c/64 Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:103987444 errors:0 dropped:0 overruns:0 frame:0
TX packets:161412265 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:583178850 (556.1 MiB) TX bytes:1006632339 (959.9 MiB)
Interrupt:43 Base address:0x8000
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:16436 Metric:1
RX packets:505197 errors:0 dropped:0 overruns:0 frame:0
TX packets:505197 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:91836367 (87.5 MiB) TX bytes:91836367 (87.5 MiB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.9.8.1 P-t-P:10.9.8.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:272 (272.0 B) TX bytes:960 (960.0 B)
tun1 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.10 P-t-P:10.8.0.9 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:588 (588.0 B) TX bytes:588 (588.0 B)
現在アクティブなルートは次のとおりです。
# ip route show table main
default via 192.168.178.1 dev eth0
10.8.0.1 via 10.8.0.9 dev tun1
10.8.0.9 dev tun1 proto kernel scope link src 10.8.0.10
10.9.8.0/24 via 10.9.8.2 dev tun0
10.9.8.2 dev tun0 proto kernel scope link src 10.9.8.1
192.168.178.0/24 dev eth0 proto kernel scope link src 192.168.178.9
調査の結果、tun1のすべてのトラフィックを別のゲートウェイ(10.8.0.1)に転送するには、「ポリシールーティング」を使用する必要があることがわかりました。そこで、新しいテーブル「tun1」を作成して構成しようとしました。
# echo "1 tun1tbl" >> /etc/iproute2/rt_tables
# ip route add 10.8.0.0/24 dev tun1 src 10.8.0.10 table tun1tbl
# ip route add default via 10.8.0.1 dev tun1 table tun1tbl
RTNETLINK answers: No such process
このデバイス/テーブルのデフォルトルートを設定できないのはなぜですか?
-編集:route
のみを使用して、別の潜在的な解決策を見つけましたが、同様のエラーで失敗します:
# route add default gw 10.8.0.1 dev tun1
SIOCADDRT: No such process
コマンドで、ネクストホップtun1
を介して10.8.0.1
を介してパケットを送信するように要求します。
ip route add default via 10.8.0.1 dev tun1 table tun1tbl
ただし、このネットワークインターフェイスは、ターゲットアドレスを含むサブネット上にありません。
tun1 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.10 P-t-P:10.8.0.9 Mask:255.255.255.255
したがって、コマンドはそのようなルートの追加を拒否します。
tun1
はポイントツーポイントインターフェイスであるため、パケットを送信するためのゲートウェイは必要ありません。コマンドからvia
の部分を削除するだけです。
ip route add default dev tun1 table tun1tbl