核心是管理流量走内网卡、业务流量走外网卡且避免默认路由冲突;linux通过禁用管理网卡默认网关、配置专用静态路由实现物理隔离,仅在需源ip策略分流时才启用多路由表。

核心是让管理流量走内网卡、业务流量走外网卡,同时避免默认路由冲突。关键不在“权重”,而在路由策略隔离——Linux不靠权重分流,而是靠源地址匹配+独立路由表实现物理分离。
一、明确角色与禁用冗余网关
先确认两块网卡用途(例如):
- ens33:业务网卡,接DMZ或公网,配IP 202.100.100.5/24,设默认网关 202.100.100.1
- ens37:管理网卡,接内网,配IP 192.168.10.5/24,不配网关,且必须显式禁止成为默认路由
执行命令:
nmcli connection modify ens33 ipv4.gateway 202.100.100.1<br>nmcli connection modify ens37 ipv4.gateway ""<br>nmcli connection modify ens37 ipv4.never-default yes
二、为管理网卡配置专用静态路由
仅当需访问其他内网段(如10.0.0.0/8、172.16.0.0/12)时才添加。这些路由只走ens37,不干扰业务流。
例如,访问10.0.0.0/8网段,下一跳是内网网关192.168.10.1:
nmcli connection modify ens37 +ipv4.routes "10.0.0.0/8 192.168.10.1"
注意:不用加dev ens37,nmcli会自动绑定到该连接所用接口。
三、验证路由表与实际路径
重启连接使配置生效:
nmcli connection down ens33 ens37 && nmcli connection up ens33 && nmcli connection up ens37
检查主路由表是否只有一个默认路由:
ip route show | grep default
测试路径是否符合预期:
- 从管理IP(192.168.10.5)ping内网设备 → 应走ens37,
ip route get 192.168.10.100显示 via 192.168.10.1 dev ens37 - 从业务IP(202.100.100.5)curl公网地址 → 应走ens33,
ip route get 8.8.8.8显示 via 202.100.100.1 dev ens33
四、进阶:需要严格策略路由时再启多表
如果业务系统本身会主动绑定不同源IP(比如某服务固定用192.168.10.5对外通信),而你仍希望它走业务网卡——这时才需策略路由:
- 编辑
/etc/iproute2/rt_tables,追加:200 mgmt_table201 biz_table - 为管理IP添加规则:
ip rule add from 192.168.10.5 table mgmt_tableip route add default via 192.168.10.1 dev ens37 table mgmt_table - 用nmcli的
ipv4.routing-rules持久化上述规则(Rocky 9/Kylin V10支持)
日常管理/业务分离场景,前三步已完全满足物理隔离需求,无需复杂策略表。











