我正在运行一个自定义路由器(Ubuntu 18.04),它使用“桥接模式”LTE/4G 调制解调器(通过以太网连接)。我的 ISP 使用 DHCP 并分发 10.x 地址,这些地址被分配给路由器的外部 NIC。
我还在路由器上设置了 StrongSwan,当我启动 VPN 时一切正常,配置如下:
conn ikev2-rw
right=my-vpn-server
rightid=@my-vpn-server
rightsubnet=0.0.0.0/0
rightauth=pubkey
leftsourceip=%config
leftid=centaurus
leftauth=psk
auto=start
首次启动时,它运行正常,但过了一段时间后,连接断开了,我认为这是因为路由器无法刷新 DHCP 租约。在初始 DHCP 租约几小时后,我在日志中看到了很多这样的信息:
Sep 07 20:54:05 centaurus dhclient[1378]: DHCPREQUEST of 10.3.22.61 on enp4s0 to 10.3.22.1 port 67 (xid=0x18dcd11)
Sep 07 20:54:15 centaurus dhclient[1378]: DHCPREQUEST of 10.3.22.61 on enp4s0 to 10.3.22.1 port 67 (xid=0x18dcd11)
Sep 07 20:54:26 centaurus dhclient[1378]: DHCPREQUEST of 10.3.22.61 on enp4s0 to 10.3.22.1 port 67 (xid=0x18dcd11)
我认为发生的事情是 VPN 干扰了 DCHP,因此无法与我的 ISP 续订租约。如果我关闭 VPN,然后 ifdown/ifup 外部接口,一切就会恢复正常。
有什么标准方法可以解决这个问题吗?
答案1
您将所有流量通过rightsubnet=0.0.0.0/0
隧道传输到 VPN 服务器。其中包括 DHCP 消息(从端口 68 到 67 的 UDP)。
要排除该流量,可以配置绕过/直通 IPsec 策略。可以排除整个本地网络或仅排除 DHCP 流量:
conn bypass-lan
left=127.0.0.1
leftsubnet=10.0.0.0/8
rightsubnet=10.0.0.0/8
type=passthrough
auto=route
这会将整个 10.x 范围从 VPN 中排除。若要仅排除 DHCP 流量,请将 添加[udp/68]
到leftsubnet
和[udp/67]
添加到rightsubnet
。
也可以通过以下方式自动安装本地连接网络的旁路策略旁路局域网插入。