職場と自宅の間にOpenVPNをセットアップします。証明書(事前共有キーではない)を使用しており、tunモードであり、うまく機能します。ネットワークは次のようになります。
トラフィックを送受信するための適切なルートが設定されており、クライアントは192.168.80.1(サーバーのトンネルIP)または192.168.5.0/24(作業)ネットワーク上の何かと問題なく通信できます。これはすばらしいことです。
私が抱えている問題の1つは、クライアントが192.168.5.10(作業ネットワーク上のサーバーのIP)と通信できない、またはpingできないことです。
iptablesは何もブロックしていません。 OpenVPNのセキュリティ設定、またはLinuxの設定がありませんか?
ついに私の問題を理解した。それはOpenVPN自体とは何の関係もなく、上記の情報を考えると解決できませんでした。他の誰かがこれに遭遇した場合、これは最終的に次のようになります。
私のOpenVPNサーバーは2つの異なるネットワークに接続されており、2つの異なるOpenVPNインスタンスを実行しています。1つは一方のインターフェイスでリッスンし、もう1つはもう一方のインターフェイスでリッスンしています。インターフェイスの1つは私の図(192.168.5.10)にありますが、もう1つはありません-192.168.4.10と呼びましょう。
これを機能させるために、「パケットの送信元IPが192.168.5.10の場合、ルーター192.168.5.1に送信する」および「パケットの送信元IPが192.168.4.10の場合、ルーターに送信する」というポリシーベースのルーティングルールがあります。 192.168.4.1 "。これは、OpenVPN接続が確立されているとき、それらが正しく機能することを意味します。
問題は、トンネル内から192.168.5.10にpingを実行すると、戻りパケットが同じPBRルールにヒットし、トンネルをバックアウトする代わりに192.168.5.1に送信されることです。私のPBRルールへの変更はこれを修正しました。
答えはおそらく、pingがICMPパケットに間違った送信元IPを使用したためです。デフォルトでは、パケットの発信インターフェイスのIPを選択します。あなたの場合、職場では192.168.80.1、自宅では192.168.80.10になります。
代わりに次を試してください。
ping -I eth0 <address>