比如我们有个 eth0
,上面同时有 192.0.2.2/25
(网关 192.0.2.1
)和 192.0.2.130/25
(网关 192.0.2.129
)两个段。这时候就要用到 SADR(source-address dependent routing),即查询路由表时同时匹配源地址和目标地址功能。Linux 下,这个功能可以用策略路由实现。
首先我们创建一个新的路由表:
|
echo "500 table1" >> /etc/iproute2/rt_tables |
(不写名字也行,下面表名用数字替代即可)
然后配置策略路由:
|
auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.0.2.2/25 gateway 192.0.2.1 up ip addr add 192.0.2.130/25 dev eth0 || true up ip route add 192.0.2.128/25 dev eth0 table table1 || true up ip route add default via 192.0.2.129 dev eth0 table table1 || true up ip rule add from 192.0.2.130/32 lookup table1 || true |
最后应用一下配置:
|
ifup -v --ignore-errors --force eth0 |
参考: