Как запустить сетевой мост при загрузке

всякий раз, когда я начинаю свой компьютер мне нужно перезагрузить мою сетевую службу (с помощью службы сетевой перезагрузки), чтобы включить мой мост (br0). Как заставить Linux сделать это, когда я запускаю свой компьютер, чтобы мне не приходилось делать это вручную?

сеть запускается другие 2 адаптера ethernet работают, когда я загружаюсь.

19
задан happy_soil
13.02.2023 20:17 Количество просмотров материала 2594
Распечатать страницу

4 ответа

это, кажется, проблема с порядком, в котором интерфейсы воспитываются. Глядя в /etc/init.d/network init скрипт есть этот бит, который строит все интерфейсы:

# find all the interfaces besides loopback.
# ignore aliases, alternative configurations, and editor backup files
interfaces=$(ls ifcfg* | \
    LANG=C sed -e "$__sed_discard_ignored_files" \
           -e '/\(ifcfg-lo\|:\|ifcfg-.*-range\)/d' \
           -e '/ifcfg-[A-Za-z0-9\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ &/}' | \
    LANG=C sort -k 1,1 -k 2n | \
    LANG=C sed 's/ //')

вывод этой команды выдает следующий список:

br0
eth0

я не нашел решения этой проблемы, кроме как включить ifup br0 на /etc/rc.local скрипт для ручного форсирования br0 up послеeth0 прибор был принесен вверх.

редактировать

я только что создал /etc/sysconfig/network-scripts/ifcfg-br0 вот так и при перезагрузке был br0 start после eth0!

# ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
DELAY=0
NM_CONTROLLED=no
STP=off
IPADDR=192.168.1.200
GATEWAY=192.168.1.1
NETMASK=255.255.255.0

пример /etc/sysconfig/network-scripts/ifcfg-eth0

# ifcfg-eth0
DEVICE=eth0
#BOOTPROTO=dhcp
HWADDR=BC:AE:C5:34:C9:E8
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no

С файлами, как это теперь я вижу, сетевые устройства, например это:

Bringing up interface eth0           [  OK  ]
Bringing up interface br0            [  OK  ]
4
отвечен slm 2023-02-15 04:05

убедитесь, что служба" сеть " включена. вы можете использовать сервисы GUI (system-config-services) или chkconfig, если вы знакомы с этим. Это решило тот же вопрос для себя.

1
отвечен 2023-02-15 06:22

у меня была та же проблема на физическом блоке под управлением Centos 7.3 x86_64 и я смог ее решить, сначала переместив физический адаптер в другой слот PCI-X на материнской плате, а затем выполнив все следующие действия:

удалить файл типа Bridge конфиг:

rm -f /etc/sysconfig/network-scripts/ifcfg-br0

удалить файл slave-интерфейс конфига:

rm -f /etc/sysconfig/network-scripts/ifcfg-enp6s0f0

, где enp6s0f0 было оригинальным именем интерфейса ведомого и было единственным ведомым интерфейс, назначенный мосту br0

убедитесь, что полностью удалили исходный мост, убедившись, что все его следы исчезли (brctl show) не должен перечислять интерфейс моста br0.

выключение моста:

ifconfig br0 вниз

выключение раб:

ifdown enp6s0f0
ifconfig enp6s0f0 down

остановить сетевую службу:

systemctl stop network.service

вручную удалить мост если необходимо: (в моем случае это был.)

прежде чем мост может быть удален, все ведомые интерфейсы должны быть удалены из него. Вы можете использовать утилиту управления мостом, чтобы удалить их

brctl delif br0 enp6s0f0

как только все ведомые интерфейсы были удалены, сам мост может быть удален.

brctl delbr br0

убедитесь, что остальные файлы конфигурации не ссылаются br0:

grep -i br0 /etc/sysconfig/network-scripts/ifcfg-*

не должно возвращать результатов

в моем регистр новое имя интерфейса, основанное на перемещении карты один слот теперь enp5s0f0.

запустите интерфейс, а затем подтвердите с помощью ethtool или 'ip link', который должен сообщить, что ссылка обнаружена для интерфейса.

[root@phaser ~]# ifconfig enp5s0f0 up
[root@phaser ~]# ethtool enp5s0f0
Settings for enp5s0f0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: on (auto)
        Supports Wake-on: pumbg
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

используйте nmcli для создания нового моста.

nmcli запишет необходимые конфигурационные файлы интерфейса в /etc/sysconfig/network-scripts/

создать мост интерфейс:

nmcli conn add type bridge ifname br0 ip4 10.0.0.16/24 gw4 10.0.0.1

добавить slave-интерфейс к мосту:

nmcli conn add type bridge-slave ifname enp5s0f0 master bridge-br0

отключить протокол связующего дерева, если в Сети уже есть мастер связующего дерева:

nmcli con modify bridge-br0 bridge.stp no

убедитесь, что мост настроен на запуск при загрузке nmcli:

nmcli con mod br0 connection.autoconnect yes

на этом этапе я могу запустить и остановить сетевую службу успешно, и при перезагрузке запускается интерфейс моста правильно.

устранение неполадок Примечание:

я подозреваю, что ommiting строку:

TYPE=Bridge

из моего исходного файла конфигурации для br0, возможно, привели к этой проблеме. Я также подозреваю, что не использование nmcli и ручное создание файлов интерфейса моста также вызвало проблемы. Это может быть вызвано тем, что NetworkManager все еще пытается управлять интерфейсом. Это можно подтвердить с помощью:

nmcli dev status

эта команда покажет таблицу это перечисляет все сетевые интерфейсы вместе с их состоянием. Если Network Manager не управляет интерфейсом, его состояние будет указано как неуправляемое. Любое другое значение указывает, что интерфейс находится под управлением Network Manager.

если вы в конечном итоге вручную изменяете файл ifcfg в /etc/sysconfig / network-scripts, обязательно сообщите об изменениях network manager с перезагрузкой.

nmcli con reload

это скажет network manager, чтобы перечитать все файлы ifcfg и распознавать любые изменения.

я нашел следующий пост: Как запретить Network Manager управлять интерфейсом?

для тех, кто не хочет использовать NetworkManager в RHEL / CENTOS 7.x

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

ls-lZ показал, что автоматически сгенерированные ifcfg-файлы имели следующий контекст:

system_u:object_r:net_conf_t:С0

а файлы я создал у unconfined_u как пользователь.

я использовал chcon, чтобы установить пользователя system_u

chcon system_u:object_r:net_conf_t:s0 ifcfg-<filename>

другое замечание заключается в том, что при приведении нового интерфейса моста вверх или вниз, systemd теперь правильно сообщает, что интерфейс подключен и отключен. До делая эти изменения, при использовании моих собственных файлов конфигурации, systemd, казалось, не знал интерфейса. Это показало бы, что интерфейс был настроен, но не связан. Несмотря на обнаружение соединения отчетности ethtool.

1
отвечен Chris Smith 2023-02-15 08:39

У меня та же проблема, но я обнаружил, что написал имя интерфейса моста / etc/sysconfig/network-scripts/br0 вместо /etc/sysconfig/network-scripts/ifcfg-br0

Я приехал к нему, когда я открываю " / etc / init.d / сеть "и найти скрипт загрузки только файлов начинающихся с"ifcfg -"

0
отвечен Ahmad Kamal EL-Saman 2023-02-15 10:56

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх