我的 Linux 桥接系统 (CentOS 7.6.1810) 面临一个奇怪的问题。我有两个配置了桥接网络的接口(桥接的IP是192.168.42.253)。当我重新启动系统时,看起来一切正常:
> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.42.254 0.0.0.0 UG 0 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 br0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
一段时间后,dhclient 开始干扰网络配置:
> route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.42.254 0.0.0.0 UG 0 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 br0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.42.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0
然后,它从我的 DHCP 服务器中提取第二个 IP 地址并将其分配给enp1s0
.它还会更改路由表,以便网桥将外部流量从网桥本身路由回网桥的网络站点,而不是网桥的网关端。这非常烦人,因为我必须重新启动系统(或手动修改路由表)才能使“yum update”之类的东西在网桥上再次工作。
以下是我为网桥创建的配置文件:
> sudo cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
IPADDR=192.168.42.253
NETMASK=255.255.255.0
ONBOOT=yes
BOOTPROTO=none
NM_CONTROLLED=no
DELAY=0
ZONE=public
> sudo cat ifcfg-enp1s0
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="no"
PEERDNS="no"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="no"
IPV6_DEFROUTE="no"
IPV6_PEERDNS="no"
IPV6_PEERROUTES="no"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp1s0"
UUID="510ed878-4443-4252-9b96-860d4f045b2e"
DEVICE="enp1s0"
ONBOOT="yes"
NM_CONTROLLED=no
BRIDGE=br0
> sudo cat ifcfg-enp0s20u3
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="no"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="no"
IPV6_DEFROUTE="no"
IPV6_PEERDNS="no"
IPV6_PEERROUTES="no"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s20u3"
UUID="510ed878-4443-4252-9b96-860d4f045b2e"
DEVICE="enp0s20u3"
ONBOOT="yes"
NM_CONTROLLED=no
BRIDGE=br0
NetworkManager 似乎没有激活:
> sudo nmtui
NetworkManager is not running.
我看过BOOTPROTO=无 |静态| dhcp 和 /etc/resolv.conf,但根据它,我的配置应该没问题,并且 dhclient 不应该处于活动状态。
更新:系统重新启动后,我看到 dhclient 出现在该界面上。我必须手动终止它以确保路由表未被修改并且正在分配额外的 IP。根据/proc,dhclient进程的父进程PID为1。
有人可以阐明我在这种配置中做错了什么吗?谢谢!