web-dev-qa-db-ja.com

OpenVPNに2つのネットワークを完全に接続させる

リモートサーバー(192.168.150.0/24ネットワークのゲートウェイ)に接続しようとしているクライアント(192.168.203.0/24ネットワークのゲートウェイでもある)があり、それらの間に完全なブリッジを作成しています。

クライアントには次のOpenVPN構成があります。

dev tun
remote gs.example.com
ca OurCompany-CA.crt
client
port 5800
proto udp 
comp-lzo 
verb 3
cipher BF-CBC
ca /etc/openvpn/gs-keys/ca.crt
cert /etc/openvpn/gs-keys/kang.crt
key  /etc/openvpn/gs-keys/kang.key
keepalive 10 60
status /var/log/openvpn-status.log
log-append  /var/log/openvpn.log

サーバーには次のものがあります。

port 5800
proto udp
dev tun
Push "route 192.168.150.0 255.255.255.0"
    Push "route 192.168.203.0 255.255.255.0"
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/kang-server.crt
key /etc/openvpn/keys/kang-server.key 
dh /etc/openvpn/keys/dh1024.pem
server 192.168.155.0 255.255.255.0
keepalive 10 120
comp-lzo
status /var/log/openvpn-status.log
log /var/log/openvpn.log
verb 3
persist-key
persist-tun
client-config-dir /etc/openvpn/ccd

/etc/openvpn/ccd/kang.exmaple.orgファイルには次のものがあります。

    iroute 192.168.203.0 255.255.255.0

Kang(192.168.203.1)から、192.168.150.1にpingを実行できますが、それ以外は何も実行できません(150.10、150.11などはすべて「宛先ポートに到達できません」)。 gs(192.168.150.1)から、203サブネット内のすべてに正常にpingできます。

203ネットワーク上のどこからでも、192.168.150.1にpingを実行できますが、そのサブネット上の他の何もpingできません(「192.168.150.10にpingを実行すると宛先ポートに到達できません」を取得します)。150サブネット上のどこからでも(たとえば、192.168を使用している場合) .150.10)192.168.203.1にpingすることすらできません。

Kangのファイアウォールには、tunアダプターを介して送信されるすべてのものに対してACCEPTルールがあります。 gsでは、tun0のACCEPTもありますが、ファイアウォールを完全にオフにしても、これらの問題が発生します。

Irouteルールがccdファイルからも読み取られているのではないかと思います。それらはログにどのように表示されますか?

編集:

ip_forwarding(/ proc/sys/net/ipv4/ip_forward)は、両方のマシンで1に設定されています。

Gsゲートウェイ(192.168.150.1)でtracerouteを実行すると、次のようになります。

traceroute 192.168.203.40
traceroute to 192.168.203.40 (192.168.203.40), 30 Hops max, 38 byte packets
 1  192.168.155.6 (192.168.155.6)  396.019 ms  372.837 ms  362.607 ms
 2  192.168.203.40 (192.168.203.40)  364.324 ms  387.439 ms  366.329 ms

192.168.150.10からの同じtraceroute:

traceroute 192.168.203.40
traceroute to 192.168.203.40 (192.168.203.40), 30 Hops max, 38 byte packets
 1  192.168.150.1 (192.168.150.1)  1.409 ms  1.173 ms  1.958 ms
 2  192.168.150.1 (192.168.150.1)  1.475 ms  1.222 ms  1.068 ms

そして、192.168.150.10のルーティングテーブル:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.11.0    *               255.255.255.0   U     0      0        0 br-lan
192.168.150.0   *               255.255.255.0   U     0      0        0 eth0.2
default         192.168.150.1   0.0.0.0         UG    0      0        0 eth0.2

192.168.203.1(カン)からの同様のtraceroute:

traceroute 192.168.150.1
traceroute to 192.168.150.1 (192.168.150.1), 30 Hops max, 40 byte packets using UDP
 1  192.168.150.1 (192.168.150.1)  51.687 ms   50.260 ms   54.513 ms
kang:~ # traceroute 192.168.150.10
traceroute to 192.168.150.10 (192.168.150.10), 30 Hops max, 40 byte packets using UDP
 1  192.168.155.1 (192.168.155.1)  48.623 ms   55.955 ms   54.684 ms
 2  192.168.155.1 (192.168.155.1)  57.062 ms   55.816 ms   57.978 ms

Kangのルート(Kangは個々のユーザー用のVPNサーバーでもあります。192.168.203.0/ 24と192.168.150.1にアクセスできますが、192.168.150.0/24には他にアクセスできません)。そのVPNは192.168.137.0/24サブネットを使用します。

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.137.2   *               255.255.255.255 UH    0      0        0 tun0
192.168.155.5   *               255.255.255.255 UH    0      0        0 tun1
192.168.155.1   192.168.155.5   255.255.255.255 UGH   0      0        0 tun1
10.42.7.0       *               255.255.255.0   U     0      0        0 eth1
192.168.137.0   192.168.137.2   255.255.255.0   UG    0      0        0 tun0
192.168.203.0   *               255.255.255.0   U     0      0        0 eth0
192.168.150.0   192.168.155.5   255.255.255.0   UG    0      0        0 tun1
link-local      *               255.255.0.0     U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         10.42.7.1       0.0.0.0         UG    0      0        0 eth1
2
djsumdog

チェックするいくつかの事柄:

  • 確認してください /proc/sys/net/ipv4/ip_forward1OpenVPNサーバーとクライアントマシンの両方で。

  • OpenVPNエンドポイントではないマシンに、VPNトンネルを使用して他のネットワークに到達するためのルーティング情報があることを確認してください。マシンがそれぞれのネットワークのゲートウェイである場合、ルーティングは自動的に処理される必要があります。そうでない場合、デフォルトゲートウェイには、OpenVPNエンドポイントを介して他のネットワークにトラフィックを送信する静的ルートが必要です。

2
cjc