我有以下拓扑:
- 路由器(192.168.10.1、192.168.11.1)
- 广域网 - eth1 (1.2.3.4)
- VLAN1(br-lan)-eth0(PC1,192.168.10.2,PC2,192.168.10.3)
- VLAN2(br-lantv)-eth2(智能电视,192.168.11.2)
我在路由器上运行了 OpenVPN 客户端。我只想通过 VPN 隧道路由来自智能电视 (VLAN2) 的流量,其余流量(路由器、VLAN1)应直接进入 WAN,电视甚至不会察觉到(这很愚蠢,我无法在其上配置 VPN 客户端)。
路由器正在运行 OpenWRT(turris omnia)。
我最终得到以下结果:
/etc/config/防火墙
config zone
option name 'lan'
list network 'lan'
config zone
option name 'lantv'
list network 'lantv'
config zone
option name 'vpn'
list network 'vpntun0'
config forwarding
option src 'lantv'
option dest 'vpn'
config forwarding
option src 'lan'
option dest 'wan'
/etc/config/网络
config interface 'lan'
option ifname 'eth0'
option force_link '1'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.10.1'
config interface 'lantv'
option ifname 'eth2'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '192.168.11.1'
config interface 'nordvpntun'
option proto 'none'
option ifname 'tun0'
option delegate '0'
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
最终得到以下路由表:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.7.7.1 128.0.0.0 UG 0 0 0 tun0
default 1.2.3.4 0.0.0.0 UG 0 0 0 eth1
10.7.7.0 * 255.255.255.0 U 0 0 0 tun0
78.45.252.0 * 255.255.255.0 U 0 0 0 eth1
78.45.252.1 * 255.255.255.255 UH 0 0 0 eth1
128.0.0.0 10.7.7.1 128.0.0.0 UG 0 0 0 tun0
173.209.60.43 1.2.3.4 255.255.255.255 UGH 0 0 0 eth1
192.168.10.0 * 255.255.255.0 U 0 0 0 br-lan
192.168.11.0 * 255.255.255.0 U 0 0 0 br-lantv
来自 LAN 的流量无法到达互联网。
我尝试了以下方法:
config forwarding
option src 'lan'
option dest 'vpn'
它通过 VPN 路由从 PC 到路由器的所有内容,这是不可取的。
或者
--route-nopull
到 VPN 配置,结果没有路由,并且lantv
被转发到vpn
,但它在那里结束,并且无法访问互联网。
我可能不知道如何定义route default gw
特定 VLAN,并lantv
以此方式进行配置。还是我完全做错了?是否需要单独的 VLAN?我只想重新路由单个设备。谢谢!
答案1
luci 配置中的“转发”语句与防火墙相关(似乎您需要补充条目才能使其工作)。看一看这里(OpenWRT WiKi)。
你真正需要做的是实现基于策略的路由,可以使用规则和不同的路由表进行配置。你需要 iproute2 来实现这一点,这里有一个简短的 HowTo 文档这里(OpenWrt WiKi)。