web-dev-qa-db-ja.com

tun1のデフォルトルートの設定:RTNETLINKの回答:そのようなプロセスはありません

私は現在、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
1
jbaiter

コマンドで、ネクストホップ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
1