在一台设备上配置两个路由器

在一台设备上配置两个路由器

我正在构建一个带有 RPi (Raspbian) 的路由器。它有3个网络接口:

  • 以太网0:连接到互联网(来自 DHCP 的 IP/网关)
  • 无线局域网0,无线局域网1:本地 WLAN 接口(每个接口将其自己的 SSID 作为 AP)

此外还有 VPN 连接屯0到连接到互联网本身的远程网络。

现在我想要:

  • 所有流量来自无线局域网0被路由通过屯0
  • 所有流量来自无线局域网1被路由通过以太网0

结果我想要两个 WLAN,一个可以直接访问互联网,另一个可以通过 VPN 连接访问互联网。

使用两个不同的设备这非常容易,但是如何仅使用一个默认网关来做到这一点呢?

答案1

您需要创建第二个路由表并使用基于策略的路由。适用于您的案例,您需要:

  1. 使用主路由表设置第一条默认路由。该表将用于本地生成的流量以及来自无线局域网1

    ip route add default via <gateway_reachable_by_eth0> table main
    
  2. 创建第二个路由表VPN

    echo 200 vpn >> /etc/iproute2/rt_tables
    
  3. 向新表添加默认路由:

    ip route add default via <gateway_reachable_by_tun0> table vpn
    
  4. 表明所有流量来自无线局域网0应该使用这个新表:

    ip rule add from <wlan0_subnet> lookup vpn
    

相关内容