無法 ping OpenVPN 伺服器後面的子網

無法 ping OpenVPN 伺服器後面的子網

這是我的基礎建設:

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

問題是,從我的客戶端我可以 ping 通我所連接的 OpenVPN 伺服器,但無法 ping 通 10.90.90.0/24 子網路中的其他伺服器。

tcpdump顯示 ICMP 請求在同一台伺服器上從 發送到 ,ifvpnifprivICMP 請求封包永遠不會繼續前進。

將日誌記錄新增至 iptables 還顯示 ICMP 請求封包進入 POSTROUTING 狀態而沒有被丟棄,但封包從未到達目的地,我不知道這裡發生了什麼,我沒有解決方案。

我知道我可以偽裝我的資料包,但我不想這樣做,因為不建議這樣做(https://community.openvpn.net/openvpn/wiki/NatHack),否則這將是我最後的解決方案。

答案1

如果遠端伺服器“公開子網路”,則您必須有一個ccd包含帶有指令的檔案的目錄iroute,如 OpenVPN 文件中詳細描述的那樣。您還必須route向客戶推播指令。

當一切正常運作時:

  • 客戶端發送 ping。
  • 用戶端的作業系統有一個路由命令,可將此流量傳送到本機 OpenVPN 伺服器。
  • 訊息ccd告訴OpenVPN連接到哪個遙控器發送流量進行交付。
  • 交通出現在這個遠端並繼續前往目的地。
  • 對於回程,遠端系統必須有一個作業系統路由將流量傳回它是OpenVPN 伺服器。

相關內容