双网卡为什么容易乱
一台机器同时接入管理网与业务网,如果两张网卡都配了默认网关,出口选择就存在歧义:内核按度量值挑选,被选中的那条承担全部出站流量,另一个网段的服务可能出现能收到请求但回包走错网卡的情况,表现为连接建立成功却收不到响应。
比堆默认路由更稳的做法
可维护的方案是按源地址分流:把某张网卡的网段流量绑定到独立路由表,再为该表指定网关。这样入站请求从哪张网卡进来,回包就从同一张网卡出去,不依赖度量值的偶然结果,也便于后续调整。
基本信息
| 查看命令 | ip addr、ip route、ip rule list |
|---|---|
| 选路验证 | ip route get 目标地址 |
| 分流手段 | 按源地址的策略路由与独立路由表 |
| 持久化 | 写入发行版网络配置,避免重启丢失 |
典型使用场景
- 服务器同时接入内网管理与业务外网,出现回包不对称
- 从管理网可登录、业务访问却超时,需要验证选路
- 多出口场景下把不同业务流量指定到不同链路
- 调整默认网关前的预演与验证
- 排查容器或虚拟化环境内的路由转发异常
现状与验证
现状与验证
ip addr # 各网卡地址
ip route # 主路由表,重点看默认路由条数
ip route get 目标地址 # 模拟选路,看走哪张网卡与源地址
ip rule list # 策略路由规则
ss -tunap | head -20 # 观察连接的实际源地址修正(示例)
修正(示例)
# 指定源地址的流量走独立路由表
ip rule add from 10.0.0.2/32 table 100
ip route add default via 10.0.0.1 table 100
ip route show table 100 # 复核独立表内容
ip route get 10.0.0.2 # 再验证选路结果
# 持久化按发行版网络组件写入配置文件,避免重启后丢失现象与判断
| 现象 | 常见原因 | 验证方法 |
|---|---|---|
| 能登录不能访问业务 | 回包从错误网卡出去 | ip route get 目标地址 |
| 连接建立后无响应 | 源地址与出接口不匹配 | 抓包看回包出接口 |
| 重启后配置失效 | 规则未持久化 | 核对网络配置文件 |
| 部分网段不可达 | 缺少指向该网段的路由 | ip route 查看目标网段条目 |
| 改完直接断连 | 默认路由被覆盖 | 预置定时恢复任务 |
通过远程连接修改默认路由前,先用定时任务预置一条恢复命令,或确认带外管理通道可用。规则写错会立刻切断当前会话,没有后路时只能现场处理。