CentOS7 网桥启动失败,直到拔下并重新插入电缆

CentOS7 网桥启动失败,直到拔下并重新插入电缆

我在尝试设置全新的 CentOS 7 服务器时遇到了问题。我已按照 redhat 文档网站上的说明设置了网桥,一切正常,直到我重新启动。重新启动后,它就不起作用了,我需要拔下电缆,然后重新插入,大约 15 秒后一切正常。如果有帮助的话,它被插入一个简单的 5 端口交换机,我尝试在两个配置文件中设置 STP=no,但无济于事。

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

我的 br0 配置文件:

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

我的网络接口配置(enp0s25)

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

我曾在 CentOS7 论坛上问过这个问题,但没有什么收获。任何帮助或指导都非常感谢。

答案1

我找到了一个解决方法,虽然不理想,但确实有效。基本上,在系统启动后运行一个脚本,关闭网络接口,然后再次启动。

脚本如下:

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

然后我创建了一个 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在控制台上收到一条好消息,让我知道一切都正常。

正如我最初所说,这不是一个理想的解决方案,但它确实有效

答案2

我通过添加以下内容解决了该问题/etc/rc.d/rc.local

service network restart

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

相关内容