Назад | Перейти на главную страницу

Сетевой мост CentOS7 не работает при загрузке, пока кабель не отключен и не подключен обратно

У меня проблема с новым сервером CentOS 7, который я пытаюсь настроить. Я настроил сетевой мост в соответствии с инструкциями на веб-сайте документации redhat, и все работает отлично, пока я не перезагружусь. После перезагрузки он просто не работает, и мне нужно отключить кабель, а затем снова подключить, и примерно через 15 секунд все работает. Он подключается к простому 5-портовому коммутатору, если это помогает, и я попытался установить STP = no в обоих файлах конфигурации, но безрезультатно.

Вот мой журнал сообщений [messages] [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, но мне не повезло. Любая помощь или руководство очень ценится.

Я нашел обходной путь, не идеальный, но он работает. Обычно после загрузки системы запускается сценарий, который отключает сетевой интерфейс, а затем снова запускает его.

Вот сценарий:

#!/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 сообщение на консоли, которое позволяет мне знать, что все работает, как должно быть.

Как я сказал изначально, не идеальное решение, но оно работает

Я решаю эту проблему, добавляя /etc/rc.d/rc.local:

service network restart

также не забывай chmod +x /etc/rc.d/rc.local