Linux双网卡默认路由优先级设置不正确,导致网络不通问题定位

问题描述

RHEL9 双网卡环境,两个网卡配置如下:(eth0 走内网,eth1 走外网)

eth0  192.168.10.20/24     网关: 192.168.10.254
eth1  10.206.216.92/24     网关: 10.206.216.254

配置完成后,curl https://www.baidu.com访问百度失败,发现网络不通。

定位步骤

使用route命令查路由表,发现eth0的默认路由Metric值为100,小于eth1的Metric(101),这说明eth0默认路由优先级更高,curl https://www.baidu.com 匹配的是eth0的默认路由,但我们需要通过eth1访问外网,所以网络不通。
在这里插入图片描述

解决方法

有两种方法,任选其一即可

方法1: 手动修改eth0默认路由的metric值,需大于eth1

以下命令设置eth0的默认路由metric值为200,大于eth1的默认路由metric(101)

nmcli connection modify eth0 ipv4.route-metric 200
nmcli c up eth0
nmcli c reload

修改重启后仍有效 (配置写在/etc/NetworkManager/system-connections/eth0.nmconnection)

方法2:删除eth0的默认路由,只保留eth1的默认路由

通过配置ipv4.never-default=no,删除eth0网卡的默认路由,参考如下命令:

nmcli c mod eth0 ipv4.never-default no gw4 192.168.10.254
nmcli c up eth0
nmcli c reload

修改重启后仍有效 (配置写在/etc/NetworkManager/system-connections/eth0.nmconnection)

参考

Red Hat Customer Portal – Chapter 23. Managing the default gateway setting

<think>嗯,用户想在Linux环境下配置双路由,我需要详细解释步骤。首先,我得回忆一下Linux路由配置的基本命令,比如route和ip route。可能需要先检查现有路由表,用ip route show或者route -n命令。然后,确定用户的需求是同时使用两个同的网络接口,比如eth0和eth1,每个接口连接到同的子网。 接下来,配置静态路由是关键。用户可能需要通过两个网关发送同目的地的流量。例如,通过eth0发送到192.168.1.0/24的流量,而通过eth1处理10.0.0.0/24的流量。这时候需要用ip route add命令分别添加这两条路由,或者修改配置文件如/etc/network/interfaces,在Debian系系统里,或者/etc/sysconfig/network-scripts/在RHEL系里。 还要考虑默认路由问题。如果系统已经有默认网关,可能需要添加额外的默认路由,但Linux默认支持多默认网关,所以需要策略路由。这时候要用到ip rule和ip route add table,创建同的路由表,基于源IP或其他策略来选择路由。比如,来自eth0的流量走表1,eth1的走表2。 另外,要确保网络接口的配置正确,IP地址和子网掩码设置无误。可能需要用ifconfig或ip addr来检查。持久化配置也很重要,否则重启后路由会丢失。在Debian中可以在/etc/network/interfaces里添加post-up命令,在RHEL中则是在对应的ifcfg文件里。 用户可能遇到的问题包括路由冲突、网关可达或者策略路由配置错误。需要指导他们如何用ip route get测试特定流量的路径,用traceroute检查路由路径,以及查看日志排查错误。 最后,生成相关问题时要涵盖基本配置、默认路由处理、策略路由、持久化配置和测试方法,这样用户能全面了解双路由设置和维护。</think>### Linux路由配置教程 在Linux系统中配置双路由主要用于实现多网络接口流量分流,例如同时连接内网和外网。以下是具体步骤和原理说明: #### 一、查看当前路由表 使用命令查看当前路由规则: ```bash ip route show # 或 route -n ``` 输出示例: ``` default via 192.168.1.1 dev eth0 10.0.0.0/24 via 10.0.0.1 dev eth1 ``` #### 二、配置双路由规则 假设需要为两个网卡(eth0和eth1)配置路由: 1. **添加静态路由** ```bash # 通过eth0访问192.168.1.0/24网段 sudo ip route add 192.168.1.0/24 dev eth0 # 通过eth1访问10.0.0.0/24网段,网关为10.0.0.1 sudo ip route add 10.0.0.0/24 via 10.0.0.1 dev eth1 ``` 注:使用`ip route`命令优于旧版`route`命令[^3][^4]。 2. **策略路由(高级场景)** 当需要基于源IP选择路由时,需创建多路由表: ```bash # 创建新路由表(如编号100) echo "100 custom_rt" >> /etc/iproute2/rt_tables # 添加路由规则 ip rule add from 192.168.1.10 lookup custom_rt ip route add default via 192.168.1.1 dev eth0 table custom_rt ``` #### 三、持久化配置 1. **Debian/Ubuntu** 在`/etc/network/interfaces`中添加: ```bash post-up ip route add 10.0.0.0/24 via 10.0.0.1 dev eth1 ``` 2. **RHEL/CentOS** 在`/etc/sysconfig/network-scripts/route-eth1`中写入: ``` 10.0.0.0/24 via 10.0.0.1 dev eth1 ``` #### 四、验证与排错 1. **检查路由优先级** ```bash ip route get 10.0.0.5 ``` 2. **查看策略路由** ```bash ip rule list ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pcj_888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值