CentOS7网桥在启动之前会失效,直到拔下电缆并重新插入

我正在尝试设置一个全新的CentOS 7服务器。 我已经按照redhat文档网站上的说明设置了一个网桥,并且在重新启动之前它一切正常。 重新启动后,它只是不工作,我需要拔掉电缆,然后插回来,大约15秒后,一切正常。 它被插入一个简单的5端口交换机,如果有帮助,我已经尝试在两个configuration文件中设置STP = no无济于事。

这是我的消息日志[消息] [2],显示networking接口无法启动。

我的configuration文件为br0:

DEVICE=br0 TYPE=Bridge IPADDR=192.168.1.1 PREFIX=24 BOOTPROTO=none ONBOOT=yes DELAY=0 

我的networking接口configuration(enp0s25)

 DEVICE=ethX TYPE=Ethernet HWADDR=d0:50:**:**:**:** BOOTPROTO=none ONBOOT=yes BRIDGE=br0 

我在CentOS7论坛上问过这个问题,但没有太多的运气。 任何帮助或指导非常感谢。

我find了一个解决方法,不理想,但它的工作原理。 基本上在系统引导之后运行一个脚本,将networking接口closures,然后再次备份。

这是脚本:

 #!/bin/bash ifdown enp0s25 sleep 3 ifup enp0s25 

然后,我创build了一个systemd服务和一个定时器来完成剩下的工作,我使用一个定时器在系统启动45秒后运行服务。 我认为我可以下降到25秒,但开机时间对我来说并不重要,我想等待界面自然地提出,大约需要15秒。

这个服务叫做internet.service:

 [Unit] Description=Actually enable the Network Interfaces Wants=network-online.target After=network-online.target [Service] Type=oneshot User=root ExecStart=-/bin/bash /media/data1/MyScripts/network.sh [Install] WantedBy=multi-user.target 

这个计时器叫做internet.timer:

 [Unit] Description=Runs the script on boot [Timer] #Time to wait after boot before activating OnBootSec=45 Unit=internet.service [Install] WantedBy=multi-user.target 

然后,所有需要做的是设置定时器启用systemctl enable internet.timer

然后,当我的系统启动45秒后,我得到一个不错的br0: port(enp0s25) entered forwarding state消息在控制台,让我知道一切正常,因为它应该是。

正如我最初所说,不是一个理想的解决scheme,但它的工作

我通过在/etc/rc.d/rc.local添加来解决这个问题:

 service network restart 

也不要忘记chmod +x /etc/rc.d/rc.local