nix*_*win 2 static-routes routing iproute2
我有一个运行 Ubuntu 10.04 的 Linux 机器,具有三个接口:eth0
、eth1
和eth2
。我计划将其用作由两个不同 ISP 分配的 4 个公共子网的 WAN 路由器。以下是子网(我已将 ISP 分配的子网转换为 C 类私有子网):
ISP 1
WAN 192.168.0.176/30 gateway 192.168.0.177
LAN 192.168.3.192/29
ISP 2
WAN 192.168.6.208/30 gateway 192.168.6.209
LAN 192.168.9.216/29
Run Code Online (Sandbox Code Playgroud)
/30
子网面向各自的 ISP,/29
子网面向我的 LAN 交换机。
这是将 IP 分配给接口的方式:
LAN interface
eth0 192.168.3.193/29
eth0:0 192.168.9.217/29
ISP 1 interface
eth1 192.168.0.178/30
ISP 2 interface
eth2 192.168.6.210/30
Run Code Online (Sandbox Code Playgroud)
我想在各自分配的 ISP/30
和/29
子网之间分别路由流量。如果流量来自一个 ISP 的/30
网络,则应将其路由到该 ISP 的/29
网络,反之亦然。我不介意源自一个 ISP /29
网络、发往另一 ISP/29
网络的流量是否在我的路由器中路由(不会将其发送到一个 ISP 并返回其他 ISP 的链路)。
我的目标是不为两个 ISP 购买两个路由器。如何使用 iproute2 表和策略路由来实现此目的?
首先,为每个 ISP 创建路由表(只需完成一次):
echo "11 isp1" >> /etc/iproute2/rt_tables
echo "12 isp2" >> /etc/iproute2/rt_tables
Run Code Online (Sandbox Code Playgroud)
然后给每个表添加一条指向对应网关的默认路由:
ip route add default via 192.168.0.177 table isp1
ip route add default via 192.168.6.209 table isp2
Run Code Online (Sandbox Code Playgroud)
然后添加规则以根据源地址将流量发送到这些表:
ip rule add from 192.168.3.192/29 table isp1
ip rule add from 192.168.0.176/30 table isp1
ip rule add from 192.168.9.216/29 table isp2
ip rule add from 192.168.6.208/30 table isp2
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7753 次 |
最近记录: |