実現したいこと
OpenVPNサーバーを2つ繋げて接続したいです。
前提
現在、図の通りの構成になっています。
①、②、③は全て異なるネットワークです。
①について
- 「②のOpenVPNサーバー」に接続する為のクライアントPCです。
- OpenVPNに対応している様々な環境が想定されます。(WindowsやLinuxやmacOSやAndroidやiOSなど)
- 同時に複数の①が②に対して接続します。
②について
- 「③のOpenVPNサーバー」に接続するためのサーバーです。
- OpenVPNサーバーとOpenVPNクライアントの2つのソフトウェアがインストールされています。
- 実際はeth0にグローバルIPアドレスが割り当てられています。説明の都合上10.2.0.2として質問しました。
③について
- インターネットへの出口となるOpenVPNサーバーです。
- 実際はeth0にグローバルIPアドレスが割り当てられています。説明の都合上10.1.0.2として質問しました。
発生している問題
①が②に対してVPN接続後にインターネットに接続できません
試したこと
①が③に対してVPN接続後にインターネットに接続出来るかテストする
問題なくインターネットに接続できた
(Webブラウザで http://example.com の表示に成功した)
①のVPN接続確立後の環境を確認した
10.8.0.1が見えているがその先に接続できていない事がわかった。
(これに対する対処方法は不明でした…)
> tracert 10.8.0.1 1 13 ms 13 ms 15 ms 10.8.0.1 トレースを完了しました。 > tracert 8.8.8.8 1 13 ms 13 ms 13 ms 10.8.0.1 2 * * * 要求がタイムアウトしました。 > tracert 10.7.0.1 1 14 ms 15 ms 13 ms 10.8.0.1 2 * * * 要求がタイムアウトしました。
②が③とのVPN接続確立後、②でcurlコマンドを実行した
③のIPアドレスが表示された。期待通りの結果である。
②が③を経由してインターネットに接続出来ている事がわかる。
# curl http://api.ipify.org/ x.x.x.x
②のVPN接続確立後の環境の確認を確認した
確認したが、問題点が把握できなかった。
# ip rule show 0: from all lookup local 32766: from all lookup main 32767: from all lookup default
# ip --color=auto route show table main 0.0.0.0/1 via 10.7.0.1 dev tun0 default via 172.105.229.1 dev eth0 proto static 10.7.0.0/24 via 10.7.0.1 dev tun0 10.8.0.0/24 dev tun1 proto kernel scope link src 10.8.0.1 128.0.0.0/1 via 10.7.0.1 dev tun0 y.y.y.y via 172.105.229.1 dev eth0 ★1
★1は以下URLを参考にして追加したものです。
y.y.y.yは①のグローバルIPアドレスです。
これを追加しない場合①が②に接続出来ませんでした。
https://teratail.com/questions/58595
OpenVPNサーバーの設定変更
以下URLを参考に②と③のOpenVPNサーバーの設定を変更したが、期待する結果は得られなかった。
(①が②と③を経由した状態でのインターネットの接続に失敗した)
https://serverfault.com/questions/137981/trying-to-route-between-two-openvpn-clients
②のサーバー
/etc/openvpn/server.conf
diff
1+ server 10.8.0.0 255.255.255.0 2+ topology subnet 3+ client-to-client
③のサーバー
/etc/openvpn/server.conf
diff
1+ server 10.7.0.0 255.255.255.0 2+ topology subnet 3+ client-to-client
②のルーティングを変更した
以下URLを参考に設定を追加しました。
https://teratail.com/questions/43147
結果、インターネットの接続に成功しました。
しかし、①のWebブラウザで次のURLを表示させると②のグローバルIPアドレスが表示されました。
http://api.ipify.org/
①は②を経由しているが、③は経由していないという結果になった。
ip rule add from 10.8.0.0/24 table 1 ip route add table 1 default via 10.2.0.1 dev eth0
IPv4転送の設定を行った
②と③で設定を行いました。
結果は変化なしです。期待する結果を得られなかった。
/etc/sysctl.conf
diff
1+ net.ipv4.ip_forward=1
sysctl -w net.ipv4.ip_forward=1 sysctl -p reboot -f
③のIPアドレス範囲を②と同じにした
10.7.0.0/24から10.8.0.0/24に変更しました。
(異なるネットワークが原因で接続できていないと考えたので同じにしてみました)
結果は悪化しました。そもそも②と③のVPN接続が出来なくなってしまいました。
①のファイアウォール設定を無効化した
①のWindows側の設定に問題があるかと思い、ファイアウォール設定を無効化しました。
結果は変化なしです。期待する結果を得られなかった。
クライアント側OpenVPNを更新した
以下フォーラムで「OpenVPNクライアントを更新すると治った」と書かれていました。
https://forums.openvpn.net/viewtopic.php?t=24872
実際に私の環境でも更新してみました。
結果は変化なしです。期待する結果を得られなかった。
補足情報(FW/ツールのバージョンなど)
- Ubuntu 22.04 LTS
- OpenVPN Server 2.5.5
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/02/20 14:10 編集
2023/02/20 14:57
2023/02/21 09:36 編集