OpenVPN 配置客户端使用子网拓扑会导致“需要 inet 前缀,而不是 10.66.10.6/-1”

OpenVPN 配置客户端使用子网拓扑会导致“需要 inet 前缀,而不是 10.66.10.6/-1”

现在,每当我连接到(商业)VPN 服务器时,一个tun接口就会启动,并inet分配给它一个地址以及一个peer地址(无论这意味着什么)。

root@mininet-vm:/etc/openvpn# ip -4 a show dev tun0
33: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
    inet 10.9.10.6 peer 10.9.10.5/32 scope global tun0
       valid_lft forever preferred_lft forever

我有两个虚拟接口,我想让它们的所有流量都通过 VPN。我可以通过将流量从这些接口路由到tun0并执行SNATto 来使其工作10.9.10.6。我尝试为它们分配 ip10.9.10.7和ip,但我只在ip时10.9.10.8收到响应流量(这就是 SNAT 起作用的原因)。tun0src10.9.10.6

我想知道是否有可能变成tun0一个常规子网,以便我可以在该子网上分配多个客户端,并且无需借助 NAT 即可完成此操作。

我在 openvpn 手册页上找到了拓扑选项,但该选项似乎是由服务器推送的

subnet -- Use a subnet rather than a point-to-point topology by 
          configuring the tun interface with a local IP address and 
          subnet mask, similar to the topology used in --dev tap and 
          ethernet bridging mode.

我尝试用以下命令覆盖它,/usr/sbin/openvpn --topology subnet --pull-filter ignore "topology" ...但添加 IP 时失败:

Fri Dec 28 01:52:47 2018 /sbin/ip addr add dev tun0 10.66.10.6/-1 broadcast 255.255.255.254
Error: an inet prefix is expected rather than "10.66.10.6/-1".

还有其他方法可以让它发挥作用吗? (不幸的是我无法控制这个商业VPN的服务器)

答案1

如果您无法控制服务器,则无法执行此操作。

TUN 接口处理第三层数据包(与处理第二层的 TAP 接口相反)。服务器将具有静态路由规则,您将无法仅使用客户端配置来更改此规则。

相关内容