![LEDE | 两个 VLAN - 当一个连接到 OpenVPN 时,另一个没有互联网连接](https://linux22.com/image/716844/LEDE%20%7C%20%E4%B8%A4%E4%B8%AA%20VLAN%20-%20%E5%BD%93%E4%B8%80%E4%B8%AA%E8%BF%9E%E6%8E%A5%E5%88%B0%20OpenVPN%20%E6%97%B6%EF%BC%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E6%B2%A1%E6%9C%89%E4%BA%92%E8%81%94%E7%BD%91%E8%BF%9E%E6%8E%A5.png)
我们有两个 VLAN。第一个 VLAN 应该使用 OpenVPN (NordVPN) 运行,有两个 WiFi 网络 (5G、2.4G) 并占用两个交换机端口。第二个 VLAN 应该是正常的,有一个 WiFi (2.4G) 并占用另外两个交换机端口。问题是,当我启动 OpenVPN 服务时,第一个 VLAN 连接到它,但第二个 VLAN 上的互联网完全消失。如果我关闭它,它就会回来。看起来 OpenVPN 阻止了所有流量,但我不知道为什么两个 VLAN 都会发生这种情况,而只有第一个 VLAN 链接到 OpenVPN 防火墙。以下是一些详细信息:
config interface 'lan'
option type 'bridge'
option ifname 'eth1.1'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
option dns '208.67.222.222 208.67.220.220'
config interface 'lan2'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.2.1'
option netmask '255.255.255.0'
option ip6assign '60'
option dns '208.67.222.222 208.67.220.220'
option ifname 'eth1.2'
config switch_vlan 'eth1_1'
option device 'switch0'
option vlan '1'
option vid '1'
option ports '3 4 6t'
config switch_vlan 'eth1_2'
option device 'switch0'
option vlan '2'
option ports '1 2 6t'
option vid '2'
config switch_vlan
option device 'switch0'
option vlan '3'
option ports '0 5'
option vid '3'
config interface 'nordvpntun'
option proto 'none'
option ifname 'tun0'
我这样设置防火墙转发:
config zone
option name 'vpnfirewall'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
option network 'nordvpntun'
config forwarding
option src 'lan'
option dest 'wan'
config forwarding
option src 'lan'
option dest 'vpnfirewall'
config forwarding
option src 'lan2'
option dest 'wan'
以下是 GUI 的一些屏幕截图:
答案1
如路由表图像所示,VPN 连接正在破坏路由器的默认网关,强制所有出站流量通过 VPN,而不管它来自哪个内部子网。“lan2”失去连接是因为它试图使用 VPN,但防火墙规则阻止它这样做。
解决这个问题的最佳方法可能是修改路由策略,以便根据流量来源获得不同的路由表。
让我们尝试一下这个策略路由(来源), 强制来自 'lan2' 的流量使用默认网关:
# ip rule add from 192.168.2.0/24 table lan2
# ip route add default via 192.168.1.254 dev eth0 table lan2
(实际上,由于这192.168.1.0/24
是您的 WAN 子网,因此可能会爆炸。您可以通过在src br-lan
地址后的第一行添加内容来解决这个问题,或者通过在接口配置和此处更改 LAN 的地址范围来解决这个问题)。
确认输出:
# ip rule list
# ip route show table lan2
启动您的 VPN 客户端并测试两个网络。
请注意,上述命令不会保留重新配置或重新启动。您需要将它们提交到某个地方,以便在接口启动时执行它们。
编辑:@Haruspik 的评论表明上述方法有效。以下是如何使其持久化:
在 的底部/etc/iproute2/rt_tables
创建一个新表:
10 lan2
在中/etc/config/network
,添加新的规则和路线,使它们持久存在(来源):
config rule
option src '192.168.2.0/24'
option lookup 'lan2'
config route
option 'interface' 'wan'
option 'target' '0.0.0.0'
option 'netmask' '0.0.0.0'
option 'gateway' '192.168.1.254'
option 'table' 'lan2'
最后,应用service network restart
并确认输出:
# ip rule list
# ip route show table lan2