![lede 开放 vpn vlan 路由](https://linux22.com/image/714398/lede%20%E5%BC%80%E6%94%BE%20vpn%20vlan%20%E8%B7%AF%E7%94%B1.png)
希望有人能帮助我,我有一台 LinkSys WRT1900 ACS v2 路由器,我已在上面安装了 LEDE。我有 2 个 vlan(192.165.5.1/24、192.168.10.1/24),我还设置了 OpenVPN,我的目标是让来自 1 个 vlan(.10.1)的流量通过 VPN 路由,而来自另一个 vlan(.5.1)的流量不通过 VPN。
我已经用很多文字实现了这个功能,但是为了使非 vpn vlan 能够连接到互联网,我必须添加以下内容作为启动脚本
ip route add default via 192.168.0.1 table 10
ip rule add from 192.168.5.2 table 10
ip rule add from 192.168.5.3 table 10
ip....
上述方法工作正常,一个 vlan 通过 VPN 连接,另一个不通过 VPN,唯一的问题是,当我为每个 ip 地址输入上述代码并重新启动路由器以使更改生效时,我无法再在 vlan 之间 ping 通,而我真的很想在任一 vlan 上本地连接到设备。
如果我取出上面的表格,我将无法在非 VPN VLAN 上访问互联网,但可以在本地 ping 两个 VLAN 上的设备。
如果有帮助的话,我在下面为您添加了一些进一步的信息。
OpenVPN 配置文件
client
dev tun
proto udp
remote *****OMITTED*****
resolv-retry infinite
remote-random
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ping 15
ping-restart 0
ping-timer-rem
reneg-sec 0
explicit-exit-notify 3
remote-cert-tls server
#mute 10000
auth-user-pass secret
comp-lzo
verb 3
pull
fast-io
cipher AES-256-CBC
auth SHA512
<ca>
*****OMITTED*****
</ca>
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
*****OMITTED*****
</tls-auth>
路由器 IP 路由表
root@LEDE:~# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
default 192.168.0.1 0.0.0.0 UG 0 0 0 eth1.2
10.8.0.0 * 255.255.0.0 U 0 0 0 tun0
89.34.98.194 192.168.0.1 255.255.255.255 UGH 0 0 0 eth1.2
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1.2
192.168.0.1 * 255.255.255.255 UH 0 0 0 eth1.2
192.168.5.0 * 255.255.255.0 U 0 0 0 br-VLAN5
192.168.10.0 * 255.255.255.0 U 0 0 0 br-VLAN10
root@LEDE:~#
任何帮助都将不胜感激,而且请对我宽容一点,因为我对这一切还很陌生。
非常感谢
答案1
问题在于路由,而不是使用 VPN 或 VLAN(但与 VPN 的集成肯定会增加难度)。
- 关于主要问题:局域网之间的通信
表 10 正在用于来自 的 IP 192.168.5.0/24
,因此当此类 IP 获取默认路由时,此路由将用于任何目的地,包括其他 LAN 的 IP,即使不是故意的。因此必须手动填充到其他 LAN 的路由,与主表相反,这些路由不会自动添加。
前:
# ip route get 192.168.10.3 from 192.168.5.2 iif br-VLAN5
192.168.10.3 from 192.168.5.2 via 192.168.0.1 dev eth1.2 table 10
cache iif br-VLAN5
使固定:
# ip route add 192.168.10.0/24 dev br-VLAN10 table 10
后:
# ip route get 192.168.10.3 from 192.168.5.2 iif br-VLAN5
192.168.10.3 from 192.168.5.2 dev br-VLAN10 table 10
cache iif br-VLAN5
- 第一个小问题:必须为 VLAN5 中使用的每个 IP 添加一条 IP 规则
通常,没有理由对 VLAN5 中的每个单个 IP 使用一条规则,这应该足够了:
ip rule add from 192.168.5.0/24 table 10
但是因为 OP 发表了评论说包含时它不起作用192.168.5.1
,我只能说也许是其他东西在干扰(未显示其他网络配置,包括 iptables)。仍然可以简化(命令netmask 192.168.5.2:192.168.5.255
给出“only” 192.168.5.2/31 192.168.5.4/30 192.168.5.8/29 192.168.5.16/28 192.168.5.32/27 192.168.5.64/26 192.168.5.128/25
:)。