我正在构建一个带有 RPi (Raspbian) 的路由器。它有3个网络接口:
- 以太网0:连接到互联网(来自 DHCP 的 IP/网关)
- 无线局域网0,无线局域网1:本地 WLAN 接口(每个接口将其自己的 SSID 作为 AP)
此外还有 VPN 连接屯0到连接到互联网本身的远程网络。
现在我想要:
- 所有流量来自无线局域网0被路由通过屯0和
- 所有流量来自无线局域网1被路由通过以太网0
结果我想要两个 WLAN,一个可以直接访问互联网,另一个可以通过 VPN 连接访问互联网。
使用两个不同的设备这非常容易,但是如何仅使用一个默认网关来做到这一点呢?
答案1
您需要创建第二个路由表并使用基于策略的路由。适用于您的案例,您需要:
使用主路由表设置第一条默认路由。该表将用于本地生成的流量以及来自无线局域网1:
ip route add default via <gateway_reachable_by_eth0> table main
创建第二个路由表VPN:
echo 200 vpn >> /etc/iproute2/rt_tables
向新表添加默认路由:
ip route add default via <gateway_reachable_by_tun0> table vpn
表明所有流量来自无线局域网0应该使用这个新表:
ip rule add from <wlan0_subnet> lookup vpn