不能同时启用两个网络接口吗?

不能同时启用两个网络接口吗?

Rocky Linux 8 X86-64 位于具有两个以太网接口的 PC 上,每个接口连接到隔离的交换集线器,然后连接到路由器。

LAN1: 192.168.1.2/24 <--> Hub1 <--> 192.168.1.1 (Router port #1)
LAN2: 192.168.2.2/24 <--> Hub2 <--> 192.168.2.1 (Router port #2) 
                           |
                           +------> Laptop (192.168.2.100/24, GW=192.168.2.1) 

(PS:我已经去掉了所有其他电缆,所以现实世界的环境就是上图所示的。而且我不认为有任何循环)

LAN1LAN2正确设置相应的网关。路由器也正确设置了静态路由规则(端口#1 <--> 端口#2)。有另一台笔记本电脑连接到 Hub2 并将 IP 设置为192.168.2.100/24, GW= 192.168.2.1

问题是:我无法192.168.1.2从笔记本电脑连接,除非我禁用LAN2Rockey Linux 上的网络接口。甚至PING不会回应。

更多细节:

  1. 如果我禁用LAN2,我就可以毫无问题地192.168.1.2从子网访问。192.168.2.0/24
  2. 只是从 Hub 上拔掉电缆是不行的。我必须使用nmcli/完全禁用网络接口nmtui才能LAN1响应。
  3. 如果我连续PING使用笔记本电脑,当我再次重新启用时,它将停止响应LAN2
  4. 所有 PC、笔记本电脑和路由器都可以PING在子网上互相访问192.168.2.0/24,不会出现问题,因此不可能是 ARP 相关问题。

操作系统似乎付出了过多的努力来通过LAN2(甚至不是默认网关)发送响应数据包,而不是使用最初接收数据包的接口。

默认路由表如下所示:

Destination  Gateway   Genmask        Flag  Metric  Iface 
default      _gateway  0.0.0.0        UG    102     ens18
192.168.2.0  0.0.0.0   255.255.255.0  U     101     en1sf31
192.168.1.0  0.0.0.0   255.255.255.0  U     102     ens18

我不知道发生了什么事。

由于某种原因,我需要192.168.1.2192.168.2.0/24子网进行访问,同时保持两个网络接口处于活动状态。

请帮忙。

答案1

简短回答:

sysctl -w net.ipv4.conf.all.rp_filter=2

为了使此更改在重启后仍然存在,请将其添加到/etc/sysctl.conf

完整答案:https://access.redhat.com/solutions/53031

简而言之,由于 RFC 3704 中推荐的“严格反向路径转发过滤”,该数据包被 Rocky Linux 丢弃。禁用它或将其设置为宽松可以解决问题。

也可以看看:https://serverfault.com/questions/967863/routing-from-one-server-to-another-with- different-interfaces

相关内容