Linux策略路由配置的多种实现方式

Linux策略路由配置的多种实现方式

示例环境:
普通宽带访问互联网(默认):eth0,10.0.0.2/24 网关10.0.0.1
企业专线:eth1,20.0.0.2/24 网关 20.0.0.1
重要业务(要走专线):
目标网段 192.168.10.0/24(ERP)
目标网段 192.168.20.0/24(OA)

1. 使用 iproute2

1.1 添加自定义路由表

echo "100 corp" >> /etc/iproute2/rt_tables
ip route add default via 20.0.0.1 dev eth1 table corp

1.2 添加策略规则(可根据需要设置优先级,默认会添加在较低优先级,如32765左右)

ip rule add to 192.168.10.0/24 table corp
ip rule add to 192.168.20.0/24 table corp

1.3 查看规则和路由表

ip rule show
ip route show table corp

持久化配置:可将其写入启动脚本(如 /etc/rc.local)或使用 ifup 钩子。对于基于 systemd 的系统,可创建服务单元。更推荐在网卡配置脚本中设置,例如在 /etc/sysconfig/network-scripts/route-eth1/etc/sysconfig/network-scripts/rule-eth1 中定义。

2. 使用 iptables

2.1 添加自定义路由表

echo "100 corp" >> /etc/iproute2/rt_tables
ip route add default via 20.0.0.1 dev eth1 table corp

2.2 添加 iptables 规则打标记

iptables -t mangle -A PREROUTING -d 192.168.10.0/24 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -d 192.168.20.0/24 -j MARK --set-mark 1

2.3 添加策略规则匹配 fwmark

ip rule add fwmark 1 table corp

2.4 查看iptables策略规则

iptables -t mangle -L -n -v

持久化配置:iptables 规则需保存(如 iptables-save > /etc/iptables/rules.v4),路由表和规则同上持久化。

3. 使用 nmcli

3.1 修改 eth1 连接,添加自定义路由表

nmcli connection modify eth1 ipv4.route-table 100
nmcli connection modify eth1 ipv4.routes "0.0.0.0/0 20.0.0.1"

3.2 添加策略路由规则(priority 可选,默认自动分配)

nmcli connection modify eth1 ipv4.routing-rules "priority 100 from all to 192.168.10.0/24 table 100"
nmcli connection modify eth1 ipv4.routing-rules "priority 101 from all to 192.168.20.0/24 table 100"
nmcli connection down eth1 && nmcli connection up eth1

3.3 查看规则和路由表

nmcli -f ipv4.routing-rules connection show eth1
ip rule show
ip route show table 100

总结

方法 核心原理 持久化方式
iproute2 多路由表 + 策略规则 系统启动脚本或接口配置文件
iptables 包标记 + 策略规则匹配标记 iptables 规则保存 + 启动脚本
nmcli NetworkManager 原生支持 NetworkManager 配置自动保存
posted @ 2026-02-26 13:33  wanghongwei-dev  阅读(5)  评论(0)    收藏  举报