22.03 LTS版本,网卡口不会自动切换路由

1、在服务器上安装X710-DA2网卡,配备2个光转电千兆模块,在系统下配置固定IP(同网段,IP1:192.168.28.72/24 IP2:192.168.28.73/24 网关:192.168.28.1),用RJ-45链接IP1口,可以上网,将网线插入到IP2口,发现网络不通了(网关都不通)。
2、更换内核为3.10的centos,发现不存在该问题。请大佬帮忙解决一下。

可以先找台设备直连,配置ip地址,检查IP2口是否能ping通。用ethtool检查IP2口状态,是否link 协商速率是否正常,和IP1口或者centos进行对比。

1 Like

您好,可能是我没说明白,,这个帖子也是和我一样的问题,网口不能同时使用 - #3,来自 erun

这是一个典型的静态路由问题啊,如果网卡都激活的,路由是正常的,
那么线连接 IP2 口上,谁都不正常访问网络啊。

centos 说可以,必然是一个监视管理,网络断线了,会把相应的网口失效(DOWN),
本质上,没有配置IP,虽然你在设置中填写,但没有生效。可以使用命令 ip addr, 或 ifconfig 查看一下。

如果要在同网断使用多网卡,要设置链路聚合,让多个链路共同发送数据,要求交换机侧也做相应设置。

您好,对于您说的这个,我们做了更进一步的测试,测试一,双网卡激活,只联接一根网线,插eno1口,可以ping通网关,将eno1口的网线拔掉,接到eno2上,网关就ping不通了。
目前的解决方案是,在系统下做BAND 6来解决该问题。

您可以先使用 nmcli 来查询自动连接属性的当前值:
$ nmcli -f name,autoconnect connection
NAME AUTOCONNECT
enp1s0f0 no
enp1s0f1 no

要更改网络连接的属性值,例如,要将 enp1s0f0 连接配置文件中的 autoconnect 属性值从 no 改为 yes,输入:

$ sudo nmcli connection modify enp1s0f0 autoconnect yes
设置好后,连接网线就可以自动激活网络配置

您好,该种方式已经试验过了,不能生效,eno1,eno2都已设置固定IP,并且都自动连接了,还是不生效。目前看到问题是路由表的问题。和系统 不会自动断开默认路由相关。

请试一下修改:/usr/lib/NetworkManager/conf.d/00-server.conf
注释掉或者删除这一行:
ignore-carrier=*

这个尝试了,故障依旧。我们手里的样本大概有15种服务器,全部尝试了,都是不行,15种机器来自不同的厂家生产。

您能提供在问题重现时的网络信息吗?
使用root用户运行下面的命令:
获取X710-DA2端口的connection name
# nmcli connection show
connection详情

# nmcli connection show <X710-DA2 port0 connection name>
# nmcli connection show <X710-DA2 port1 connection name>

NetworkManager配置
# NetworkManager --print-config
IP地址和路由

# ip link show
# ip addr show
# ip route show

图片太大,没法上传。

问题描述:

EG520-G30 两台机器有一台“2个网口配置相同网段的不同IP地址,上面的网口不通,下面的网口通;更换光转电模块上下位置,问题依然存在”。

复现方法:

测试步骤:

1、网卡双网口同时接入同一网段并设置相应静态IP,保证系统可以ping通网关;

2、拔出网口1网线,检查网关是否可以ping通;

3、插回网口1网线,拔出网口2网线,检查网关是否可以ping通,。

预期结果:

无论拔出网口1或网口2网线,系统都可以ping通网关。

实际结果:

拔出网口1网线后,系统无法ping通网关。

复现结果:

系统版本 结果
openEuler release 22.03 (LTS) FAIL
openEuler release 20.03 (LTS-SP3) FAIL
openEuler release 20.03 (LTS) FAIL
CentOS Linux release 7.6.1810 (Core) PASS

原因分析:

分析过程:

将eno1和eno2接入同一网段:

双网口接入同一网段后,系统下查看网段内有2条路由信息:

因为出接口eno1的Metric(100)低于eno2(101)的Metric,所有默认走出接口eno1。

此时ping网关可以ping通:

拔出eno1网线,使eno1 down掉:

5、系统ping网关无法再ping通:

6、检查路由表,发现eno1路由还在并且优先级仍高于eno2:

分析结果:

网口eno1断开后,但系统路由表没有及时切换,仍然默认从eno1发送网络数据,但因为eno1已经断开导致网络无法通信。

原因分析为:在网口切换过程中,操作系统无法实时监控网口链接状态,并且无法及时切换路由,导致无法联网。

解决方法:

对于双网口接入同一网络的场景,推荐使用bond6来实现自动网络切换。

设置方法如下:

创建bond mode 6 并设置静态ip与网关地址:

nmcli connection add con-name bond6 ifname bond6 type bond mode 6 ipv4.method static ipv4.addresses 172.168.3.5/24 ipv4.gateway 172.168.3.254

将eno1、eno2添加到bond6:

nmcli connection add type bond-slave ifname eno1 master bond6

nmcli connection add type bond-slave ifname eno2 master bond6

关闭bond对应网口开机自启动:

nmcli connection modify eno1 connection.autoconnect no

nmcli connection modify eno2 connection.autoconnect no

reboot重启系统,进入系统后检查:

检查路由表,发现出接口为bond6:

结果复测,任意切换网口网线,网关都可以ping通: