错误:给定前缀长度的前缀无效

错误:给定前缀长度的前缀无效

我在 Netgear 无线路由器设置 (192.168.8.1) 上有一个 OpenVPN 服务器。Netgear 路由器设置在另一个连接到互联网的路由器 (192.168.7.1) 后面。我已向面向互联网的路由器添加了端口转发规则。它将 VPN 端口转发到 Netgear 路由器。

我尝试使用以下命令启动 OpenVPN 客户端:

sudo openvpn --config "client2.conf"

但我收到有关路线的错误消息。

Sun Sep 30 10:58:42 2018 us=603862 /sbin/ip route add 192.168.8.1/24 via 192.168.8.1 Error: Invalid prefix for given prefix length

我需要指定另一条路线吗?如果是的话。我该如何指定路线?

我的client2.conf样子

client dev tap proto udp remote [MY_EXTERNAL_IP] [MY_VPN_PORT] resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key cipher AES-128-CBC comp-lzo verb 5

Netgear 路由器的设置。

在此处输入图片描述 在此处输入图片描述

面向互联网的路由器的设置。

在此处输入图片描述

答案1

192.168.8.1/24

您的 OpenVPN 服务器正在发送一条无意义的路由 - 它指定该路由用于 24 位前缀,但地址的位设置超出了该限制(实际上它似乎是一个完整的 32 位主机地址)。

您收到错误消息是因为这些参数相互矛盾。有效目标要么是192.168.8.1/32单个主机,要么192.168.8.0/24是整个网络。

192.168.8.1/24 通过 192.168.8.1

此外,它是一条循环路径,可以自行完成;例如,“为了到达 192.168.8.1,您必须先到达 192.168.8.1”。(听说过这个术语吗?第22条军规?)

在某些情况下这是有效的 - 在 tun 模式 OpenVPN 连接(点对点链接)中是可以接受的如果还指定了一个接口,因为网关将被忽略,但在这个例子中,接口不是指定,并且 VPN 无论如何都是分接模式。

如果系统已经有专门针对 192.168.8.1/32 的链接路由,它也将是有效的,但不知道在您的环境中是否有这样的路由。

但在正常情况下,路线的网关不是同一路线目的地的一部分。根据您真正想要的,更可能的路线是192.168.8.0/24 via 192.168.7.1或相反192.168.7.0/24 via 192.168.8.1(我必须在这里猜测)。

我需要指定另一条路线吗?

取决于您要路由什么以及路由到哪里... 假设您首先手动添加了此路由。如果它来自 Netgear 的固件,您最好的选择可能是忽略它(或尝试固件升级)。

  • 如果希望 VPN 客户端能够访问主局域网中的设备,Netgear 的 VPN 服务器需要分发的路由是192.168.7.0/24 via 192.168.8.1

    (请注意,分发给客户端的路由是不是一回事作为 Netgear 路由器本身使用的路由。)

相关内容