Linux多网卡路由异常_路由表分析与修复

linux多网卡路由异常主因是路由表冲突、冗余或策略规则优先级错乱;需用ip rule show和ip route show table查多表,ip route get模拟路径,识别重复默认路由、主机路由覆盖、规则顺序错误三类问题,再删旧、调序、加准修复,并通过nm dispatcher或systemd-networkd配置持久化。

linux多网卡路由异常_路由表分析与修复

Linux多网卡环境下路由异常,通常不是网卡本身故障,而是内核路由表中存在冲突、冗余或优先级错乱的路由条目。关键不在“加”路由,而在“理”路由——看清当前实际生效的路径,再针对性删、改、加。

查清真实路由走向:别只看ip route默认表

执行 ip route 显示的是主路由表(table main),但多网卡场景下,系统常启用策略路由(policy routing):不同源IP、不同接口流量可能被送入不同路由表。只看主表会漏掉真正起作用的规则。

用 ip rule show 查所有路由策略规则,重点关注 match src、from、to、lookup 等字段,确认哪些源地址/接口对应哪个路由表

对每个非默认路由表(如 table 100、table 200),运行 ip route show table 查其完整内容

用 ip route get from iif 模拟真实报文路径,验证实际走哪条路由

识别典型冲突模式:三类高频问题

多网卡路由异常往往表现为:能ping通网关但上不了外网、SSH连得上却无法curl、某网卡完全不响应等。常见根源有:重复默认路由:多个网卡都配置了 default via X.X.X.X,而 metric 值未区分,内核按字典序选第一条,导致部分流量“误入”低优先级网关

主机路由覆盖:例如 eth0 配了 192.168.1.0/24,eth1 又配了 192.168.1.100/32 主机路由,后者会劫持所有发往该IP的包,绕过原网络路由

策略规则顺序错误:rule 中的优先级(pref)数值越小越先匹配,若一条 catch-all 规则(如 from all lookup main)排在具体规则之前,就会吞掉本该进自定义表的流量

安全清理与精准修复:删旧、调序、加准

修复不是盲目添加新路由,而是先归零再重建。操作前建议备份:ip rule save > /tmp/rule.bak && ip route save table main > /tmp/main.bak

删除冗余默认路由:ip route del default via dev (逐条删,勿用 flush)

重排策略规则:用 ip rule del pref 删除旧规则,再用 ip rule add pref ... 按期望优先级重建,确保具体规则(如 from 10.0.2.100)在通用规则(from all)之前

为每张网卡设独立路由表:例如为 eth1 创建 table 101,写入其子网和默认路由,再通过 rule 绑定源IP → table 101,避免跨表干扰

持久化需绕过NetworkManager或systemd-networkd陷阱

临时命令修好后重启即失效,但直接写入 /etc/network/interfaces 或 systemd-networkd 的 .network 文件,可能被NM自动覆盖。可靠做法是:

ccwx-11fml.patekcn.com

ccwx-11lq.patekcn.com

ccwx-11dd.patekcn.com

ccwx-11tghy.patekcn.com

ccwx-11ld.patekcn.com

ccwx-11wbl.patekcn.com

ccwx-11md.patekcn.com

ccwx-11ts.patekcn.com

ccwx-11jg.patekcn.com

ccwx-11xtc.patekcn.com

ccwx-11mh.patekcn.com

ccwx-11yng.patekcn.com

ccwx-11zh.patekcn.com

tswx.watchrfr.cn

tswx-11pp.watchrfr.cn

tswx-11jsdd.watchrfr.cn

tswx-11yd.watchrfr.cn

tswx-11baopo.watchrfr.cn

tswx-11baoji.watchrfr.cn

tswx-11licha.watchrfr.cn

tswx-11jjia.watchrfr.cn

tswx-11bojue.watchrfr.cn

tswx-11glsd.watchrfr.cn

tswx-11lg.watchrfr.cn

tswx-11pmqn.watchrfr.cn

tswx-11ykdl.watchrfr.cn

tswx-11fkyb.watchrfr.cn

tswx-11ljdb.watchrfr.cn

tswx-11lls.watchrfr.cn

tswx-11omj.watchrfr.cn

tswx-11wg.watchrfr.cn

tswx-11bnl.watchrfr.cn

tswx-11yubo2.watchrfr.cn

tswx-11xb.watchrfr.cn

tswx-11zls.watchrfr.cn

tswx-11xne.watchrfr.cn

tswx-11pnh.watchrfr.cn

tswx-11gp.watchrfr.cn

tswx-11bql.watchrfr.cn

tswx-11fml.watchrfr.cn

tswx-11lq.watchrfr.cn

tswx-11dd.watchrfr.cn

tswx-11tghy.watchrfr.cn

tswx-11ld.watchrfr.cn

tswx-11wbl.watchrfr.cn

tswx-11md.watchrfr.cn

tswx-11ts.watchrfr.cn

tswx-11jg.watchrfr.cn

若用 NetworkManager:禁用其托管对应接口(nmcli connection modify ipv4.ignore-auto-routes yes),改用 dispatcher 脚本在 up/down 时执行 ip rule/route

若用 systemd-networkd:在对应 .network 文件中启用 [Route] 和 [RoutingPolicyRule] 小节,明确指定 table=xxx 和 priority=xxx,避免依赖默认行为

通用兜底:将修复命令写入 /etc/network/if-up.d/ 自定义脚本,chmod +x,并确保执行权限和执行时机正确

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容