У меня проблема с новым сервером 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