openVPN - 通过 openVPN 服务器路由流量,该服务器也是另一个 openVPN 服务器的客户端

openVPN - 通过 openVPN 服务器路由流量,该服务器也是另一个 openVPN 服务器的客户端

我有一个 openVPN 客户端连接到一个具有一组特定路由表的 openVPN 服务器。该 openVPN 服务器也是一个客户端,连接到另一个具有一组不同路由表的 openVPN 服务器。我无法让我的客户端将特定子网路由到第二个 openVPN 服务器。

下面是我使用上述路由表进行的设置的快速说明(希望有帮助):

draw.io 图表

客户端的 openvpn 客户端配置:

    client
    dev tun0
    proto udp
    remote some-domain.com 1195
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    comp-lzo
    verb 3
    key keys/vpn192-168-128-0.key
    cert keys/vpn192-168-128-0.crt
    ca keys/ca.crt
    log /var/log/openvpn.log
    verb 4        

    route 10.100.0.0 255.255.255.0
    route 10.55.128.0 255.255.255.0

服务器1的openvpn服务器配置:

    mode server
    tls-server
    port 1195
    proto udp
    dev tun1
    ca server/keys/ca.crt
    cert server/keys/server.crt
    key server/keys/server.key
    dh server/keys/dh1024.pem
    server 10.100.1.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    topology p2p        

    # route these networks
    route 192.168.128.0 255.255.240.0
    route 10.55.128.0 255.255.255.0      

    client-to-client        

    # client specific configs in here
    client-config-dir ccd
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    status openvpn-status-vpn100.log
    log /var/log/openvpn-server.log
    verb 4

服务器1的客户端配置到服务器2:

    client
    dev tun0
    proto udp
    remote some-domain2.com 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    comp-lzo
    verb 3
    key /etc/openvpn/client/vpc10-100-0-0.key
    cert /etc/openvpn/client/vpc10-100-0-0.crt
    ca /etc/openvpn/client/ca.crt
    log /var/log/openvpn-client.log
    verb 4
    route 10.55.128.0 255.255.255.128

服务器2的openvpn服务器配置:

    mode server
    tls-server
    port 1194
    proto udp
    dev tun1
    ca keys-vpc/ca.crt
    cert keys-vpc/server.crt
    key keys-vpc/server.key
    dh keys-vpc/dh1024.pem
    server 10.41.88.0 255.255.255.0
    ifconfig-pool-persist ipp.txt
    topology p2p        

    # push 10.45.0.0 route to all connecting clients.
    push "route 10.45.0.0 255.255.128.0"
    push "route 10.39.88.0 255.255.255.0"
    route 10.44.0.0 255.255.128.0 #core-west
    route 10.55.128.0 255.255.128.0 #us-east-1 galaxy
    route 10.100.0.0 255.255.255.0 #gcp-us-east-1
    route 192.168.128.0 255.255.240.0 #gcp-zing-preview        

    client-to-client        

    # client specific configs in here
    client-config-dir ccd-vpc
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    status openvpn-status-vpc.log
    log  /var/log/openvpn-vpc.log
    verb 4
    duplicate-cn

客户端的路由表:

    default via 192.168.128.1 dev ens4 proto dhcp metric 100
    10.55.128.0/24 via 10.100.1.1 dev tun0
    10.100.0.0/24 via 10.100.1.1 dev tun0
    10.100.1.1 dev tun0 proto kernel scope link src 10.100.1.4
    192.168.128.1 dev ens4 proto dhcp scope link metric 100

服务器1的路由表:

    default via 10.100.0.1 dev ens4 proto dhcp metric 100
    10.39.88.0/24 via 10.41.88.1 dev tun0
    10.41.88.0/24 via 10.41.88.1 dev tun0
    10.41.88.1 dev tun0 proto kernel scope link src 10.41.88.6
    10.55.128.0/24 via 10.41.88.1 dev tun0
    10.100.0.1 dev ens4 proto dhcp scope link metric 100
    10.100.1.0/24 via 10.100.1.2 dev tun1
    10.100.1.2 dev tun1 proto kernel scope link src 10.100.1.1
    192.168.128.0/20 via 10.100.1.2 dev tun1

服务器2的路由表:

    default via 10.45.0.1 dev eth0
    10.39.88.0/24 dev tun0  proto kernel  scope link  src 10.39.88.1
    10.41.88.0/24 via 10.41.88.2 dev tun1
    10.41.88.2 dev tun1  proto kernel  scope link  src 10.41.88.1
    10.45.0.0/27 dev eth0  proto kernel  scope link  src 10.45.0.10
    10.55.128.0/17 via 10.41.88.2 dev tun1
    10.100.0.0/24 via 10.41.88.2 dev tun1
    192.168.128.0/20 via 10.41.88.2 dev tun1

截至目前,所有三个盒子上的 Iptables 都是干净的。

我正在尝试 ping10.55.128.18从客户端发送并让它一直路由到服务器 2。它会直接到达服务器 1,而不会路由到服务器 2。我10.55.128.18直接在服务器 1 上(而不是从客户端)。

我已经在所有地方启用了 IP 转发,并且所有三个设备之间的防火墙规则都对 ICMP 开放。

您提供的任何见解都将非常有帮助!

谢谢。

答案1

我已经解决了这个问题。需要添加其他路由(不存在的 VPN 路由),并且该连接的 ccd 目录中的 iroute 配置错误。

相关内容