每日Linux学习:为什么网口加入到br后就Ping不通了呢?

B站影视 电影资讯 2025-04-17 14:11 1

摘要:两网口enp6s0f0,enp6s0f1 分别加入br0,br1两个网桥中,正常设置是在网桥中设置ip地址,而不是在网口中设置ip。如上图所示:enp6s0f0 加入br0,br0设置有ip地址10.50.80.7。

刚刚开始接触Linux虚拟化的同学们在配置网桥时可能会被一种情况迷惑吧?

enp6s0f0 加入br0,br0设置有ip地址10.50.80.7

两网口enp6s0f0,enp6s0f1 分别加入br0,br1两个网桥中,正常设置是在网桥中设置ip地址,而不是在网口中设置ip。如上图所示:enp6s0f0 加入br0,br0设置有ip地址10.50.80.7。

为什么呢?

先测试下,当物理接口(enp6s0f0)被加入Linux网桥(br0)后,若给该物理接口(enp6s0f0)配置IP地址(10.50.80.7/24),会发现无法ping通。

譬如设置成这样:

将br0的ip地址去掉,在enp6s0f0网口上设置IP地址10.50.80.7

缘由分析

先说结论:网桥接口(br0)会接管所有ARP请求/响应,物理接口的IP地址相关的ARP无法响应

1. 正常ARP请求/响应流程

在非桥接场景中,ARP工作流程如下:

ARP请求:当主机A(IP_A)需要与主机B(IP_B)通信时,若ARP表中无IP_B的MAC地址,会广播ARP请求报文,询问“谁有IP_B?”。

ARP响应:主机B收到请求后,单播回复“IP_B的MAC是MAC_B”。

ARP表更新:主机A将IP_B与MAC_B的映射存入ARP表,后续数据包通过二层MAC地址直接发送。

2. 网桥(br0)对ARP流程的影响

当物理接口(enp6s0f0)被加入网桥(br0)时:

物理接口成为二层端口:enp6s0f0不再直接处理三层协议(如IP和ARP),而是作为网桥的从属端口(slave),仅负责二层帧的转发。

网桥接管三层功能:所有三层协议由网桥接口(br0)处理。若网桥未配置IP地址,则系统无法响应任何ARP请求。

来源:肖潇科技天地

相关推荐