OpenVPNサーバーの背後にあるサブネットにpingできない


1

これが私のインフラストラクチャです。

dns of mydomain.com:
  vpn A 90.90.90.1
  vpn A 90.90.90.2

client vpn config:
  client
  dev tun
  proto udp
  nobind
  remote vpn.mydomain.com 1394

server1
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.1.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.1/24
    ifpriv: 10.90.90.1/24
    ifvpn: 10.10.1.1/24
  routes:
    10.10.1.0/24 src 10.10.1.1 dev ifvpn
    10.10.2.0/24 via 10.90.90.2 dev ifpriv

server2
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.2.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.2/24
    ifpriv: 10.90.90.2/24
    ifvpn: 10.10.2.1/24
  routes:
    10.10.1.0/24 via 10.90.90.1 dev ifpriv
    10.10.2.0/24 src 10.10.2.1 dev ifvpn

問題は、クライアントから、接続しているOpenVPNサーバーにpingできるが、10.90.90.0 / 24サブネットの他のサーバーにはpingできないことです。

tcpdumpICMP要求は同じサーバーでからifvpnにifpriv送信されますが、ICMP要求パケットはそれ以上送信されないことを示しています。

iptablesにログを追加すると、ICMP要求パケットがドロップされずにPOSTROUTING状態になるが、その後パケットが宛先に到達しなかったことがわかります。ここで何が起こるかわかりません。

私は自分のパケットをマスカレードできることは知っていましたが、それが推奨されていないので(https://community.openvpn.net/openvpn/wiki/NatHack)、またはそれが私の非常に最後のソリューションになるので、私はしたくありません。


マスカレードハックを試してみましたが、うまくいきます。iptables -t nat -A POSTROUTING -s 10.10.1.0/24 -o ifpriv -j MASQUERADEたとえば、サーバー1で、クライアントからサーバー2のプライベートIPにpingを実行できます。しかし、NatHackページで説明されているようにThe authorities would see all the telephone calls as coming from you. It would be better if everyone got their own phone, so the calls could be routed directly.。したがって、問題はまだここにあります...
— ビクター

IIRC OpenVPNは、完全なサブネットにアクセスするために、ルーティングに加えて特別な構成が必要です。詳細を確認できるかどうかを確認します。
— dirkt

pingがserver2に到達するには、server2のiptables INPUTを許可する必要があると思います。
— Gohu

server2にPREROUTINGログを追加することをテストしましたが、何も表示されません。この画像i.stack.imgur.com/4wdkF.pngで説明されているように、パケットが入力する最初のチェーンはPREROUTINGであると想定しましたか?
— ビクター

掘り下げてください:いくつかのトポロジーでirouteが必要ですが、それはここでは当てはまらないようです。正しく理解できればifpriv、両方のサーバーのインターフェースはLANで接続されておりifpriv、サーバー1で送信パケットが表示されますがifpriv、サーバー2で送信されません。愚かな質問:サーバー1からサーバー2に直接pingできますか?
— -dirkt

回答:


0

リモートサーバーが「サブネットを公開する」場合、OpenVPNのドキュメントで慎重に説明されているように、ディレクティブccdを含むファイルを含むディレクトリが必要irouteです。routeクライアントにプッシュされるディレクティブも必要です。

すべてが正常に機能している場合:

  • クライアントはpingを送信します。
  • クライアントのOSには、このトラフィックをローカルOpenVPNサーバーに送信するルーティングコマンドがあります。
  • このccd情報は、OpenVPNに、どの接続リモートに配信用のトラフィックを送信するかを伝えます。
  • トラフィックはこのリモートで発生し、宛先に進みます。
  • 往復のために、リモートシステムには、 OpenVPNサーバーにトラフィックを送り返すオペレーティングシステムルートも必要です。

わかりました、ありがとう、私はそれを試みます。説明したドキュメントはどこにありますか?私はこれを使用していました:openvpn.net/index.php/open-source/documentation/…–
— ビクター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.