OpenVPNクライアントを介して接続されたLANサブネットにルーティングしようとしています。
そのコマンドの使用に問題がありますroute
。わかりません。 OpenVPN リンクが確立され、ping
クライアントを接続できます。
VPNサーバーのLANサブネットにパスを追加しようとすると、次のエラーが発生します。
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.9.0.6 dev tun0
SIOCADDRT: No such process
ルーティングテーブルはOpenVPNサーバーがあるのに10.9.0.0/24
、何が問題なのかよくわかりません。
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default ve108.csr2.lga1 0.0.0.0 UG 0 0 0 eth0
10.9.0.0 10.9.0.2 255.255.255.0 UG 0 0 0 tun0
10.9.0.2 * 255.255.255.255 UH 0 0 0 tun0
204.145.81.0 * 255.255.255.0 U 0 0 0 eth0
追加情報:
# ip ad sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0e:cf:20:c1:24 brd ff:ff:ff:ff:ff:ff
inet 204.145.81.11/24 brd 204.145.81.255 scope global eth0
inet6 fe80::20e:cfff:fe20:c124/64 scope link
valid_lft forever preferred_lft forever
3: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.9.0.1 peer 10.9.0.2/32 scope global tun0
ping
ルーティングしたいVPNクライアントにアクセスできますが、なぜこの問題が発生するのか理解できません。私が知っている限り、パスを追加できるはずです。
# ping -c 1 10.9.0.6
PING 10.9.0.6 (10.9.0.6) 56(84) bytes of data.
64 bytes from 10.9.0.6: icmp_req=1 ttl=64 time=24.0 ms
--- 10.9.0.6 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 24.008/24.008/24.008/0.000 ms
詳細は次のとおりです。OpenVPNクライアント、VPNサーバーに接続します。私がルーティングしたいネットワークはこのクライアントにあります。
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default greece-gw.secus 0.0.0.0 UG 2 0 0 eth0
10.9.0.1 10.9.0.5 255.255.255.255 UGH 0 0 0 tun0
10.9.0.5 * 255.255.255.255 UH 0 0 0 tun0
loopback localhost 255.0.0.0 UG 0 0 0 lo
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1
198.50.241.0 * 255.255.255.0 U 0 0 0 eth0
VPNサーバーに正常に到達します。
# ping -c 1 10.9.0.1
PING 10.9.0.1 (10.9.0.1) 56(84) bytes of data.
64 bytes from 10.9.0.1: icmp_seq=1 ttl=64 time=24.0 ms
--- 10.9.0.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 24.017/24.017/24.017/0.000 ms
IP転送を有効にします。
# sysctl -a | grep forwarding
net.ipv4.conf.all.forwarding = 1
iptables
転送を許可するように設定しました。
# iptables -nvL FORWARD
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- tun0 eth1 0.0.0.0/0 0.0.0.0/0
クライアントインタフェースの構成は次のとおりです。
# ip ad sh
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:5f:f2:1e brd ff:ff:ff:ff:ff:ff
inet 198.50.241.113/24 brd 198.50.241.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe5f:f21e/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:c6:b8:fd brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fec6:b8fd/64 scope link
valid_lft forever preferred_lft forever
4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
link/sit 0.0.0.0 brd 0.0.0.0
5: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 100
link/none
inet 10.9.0.6 peer 10.9.0.5/32 scope global tun0
valid_lft forever preferred_lft forever
答え1
残念ながら、Webツールはしばしばひどいエラーメッセージを表示します。私が知っている限り、カーネルが嫌いなのは、ゲートウェイを使用してパスを追加しようとしていますが、ゲートウェイを「ローカル」と見なさない場合です。以下を行う必要があります。
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.9.0.2 dev tun0
または:
route add -net 192.168.0.0 netmask 255.255.255.0 dev tun0
カーネルルーティングの設定に加えて、openvpn自体にルーティングを追加する必要があります。これは、クライアントのccdファイルにある「iroute」ディレクティブを使用して行われます。
答え2
別の検索中に偶然この質問を見つけましたが、OPがアクセスしようとしました。サブネットリモートOpenVPNサーバーに接続します。
私の答えの仮説トンネルモード、いいえブリッジモデル。 (OpenVPNはルーター、一つでもない変化.)
私が正しく理解したら、--client-config-dir
この場合は(「CCD」)を使用する必要があります。route
サブネットアドレス範囲を含むデフォルト構成にはディレクティブが必要です。そしてCCDファイルの1つiroute
(「i」を参照)は、次のものであると正しく識別されます。それ離れて。 (OpenVPNログを表示して認識されていることを確認し、そのパスが現在のコンピュータに存在することを確認できます。)
他のサブネットからこのサブネットにアクセスする場合(つまりOpenVPNクライアントを実行しているコンピュータではなく、返品OpenVPNコンピュータに「ゲートウェイに」トラフィックを送信するローカルサブネット内の静的ルート。これは、各クライアントコンピュータで定義することも、ローカルルータでより便利に定義することもできます。
トラフィックフローは次のとおりです。
- リモートサブネットをpingします。
- コンピュータまたはルータは、ゲートウェイとして機能するOpenVPNボックスにトラフィックを転送します。(機能的には、OpenVPNトンネルはルーターとして機能するためです。)
- そのシステムの指示に従って、
route
トラフィックがデバイスに送信され、tunX
OpenVPN が実際にトラフィックを選択できるようになります。 - この
iroute
ディレクティブ(および対応するCCD)は、OpenVPNにリモートサブネットがあるかどうか、およびそれをどのリモートに送信するかを示します。(リモコンを1つだけ使用しても同じです。) - トラフィックはリモート側の宛先にルーティングされます。
- そして今、すべてが逆さまに起こるはずです! リモートサブネットのIPアドレスを使用してリモートでping応答を送信し、成功する必要があります。最初からまた家。
OpenVPNに直接接続されたコンピュータからpingする場合(クライアントを実行しています)10.8.0.x
、あなたの住所は次のとおりです。これさらに、アドレス範囲はすべての関連デバイスで「往復」に正常にルーティングする必要があります。
これは「デフォルトのTCP / IPルーティングの問題」であり、「問題のルータ」がOpenVPNかどうかにかかわらず発生します。ホストがお互いに正常に会話した場合(うん!)「ネットワークでは、彼らはただのルーターです。」
tcpdump
(またはWireShark)はtraceroute
あなたの親友です。まず、暗号化されたトラフィックがOpenVPNホスト間で移動する必要がある方法で移動することを確認する必要があります。(もちろん、内容が読めなくてもルーティングの有無はわかります。)その後、トンネル内でも同じことを行います。パケットがトンネルを通過してトンネルに到達することを確認してください。そして退いてください。 (アスタリスクが印刷され始めると、traceroute
おそらくその項目がないことを意味します。キャンセル特定の「ホップ」にルーティングします。小包がそこに着いたが、そこから家に帰る方法はなかった。 )