Сетевой мост NetworkManager не работает.

Вопрос или проблема

У меня та же проблема на двух разных машинах: CentOS 8.1 и openSUSE Leap 15.2.
Я хочу создать мост на каждом хосте, который будет использоваться libvirt для мостовой сети.
На обоих серверах я использую NetworkManager и создал мосты следующим образом:

nmcli connection add type bridge bridge.stp no autoconnect yes con-name suse_virt ifname peter_virt ipv4.addresses 192.168.0.3/24 ipv4.gateway 192.168.0.254 ipv4.dns "192.168.0.1,8.8.8.8"  ipv4.method manual
nmcli connection add type bridge-slave master suse_virt autoconnect yes ifname eth0 con-name suse_virt-slave

Единственные различия между CentOS и openSUSE — это имена соединений и интерфейсов, а также IP-адреса.

Когда я запускаю мост с помощью nmcli con up suse_virt, я вижу следующее:

ip a 

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master peter_virt state UP group default qlen 1000
    link/ether d0:50:99:17:3f:e6 brd ff:ff:ff:ff:ff:ff
3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 00:0a:f7:09:a2:1d brd ff:ff:ff:ff:ff:ff
7: suse_virt: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether d0:50:99:17:3f:e6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.3/24 brd 192.168.0.255 scope global noprefixroute peter_virt
       valid_lft forever preferred_lft forever
    inet6 fe80::af0c:23de:5e0c:ded8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Всё выглядит нормально, но всего через несколько секунд вся сеть перестаёт работать! Я подозревал Spanning Tree, но STP отключён, а мой коммутатор неуправляемый. Единственное решение для меня — остановить мост и включить простое соединение на каждой машине.

Перезапуск Network Manager приводит к ещё более странным проблемам, таким как следующая:

ping 192.168.0.6
PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.
64 bytes from 192.168.0.6: icmp_seq=1 ttl=64 time=1.84 ms
^C
--- 192.168.0.6 ping statistics ---
5 packets transmitted, 1 received, 80% packet loss, time 4039ms
rtt min/avg/max/mdev = 1.846/1.846/1.846/0.000 ms

ping -c4 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
From 192.168.0.3 icmp_seq=1 Destination Host Unreachable
From 192.168.0.3 icmp_seq=2 Destination Host Unreachable
From 192.168.0.3 icmp_seq=3 Destination Host Unreachable
From 192.168.0.3 icmp_seq=4 Destination Host Unreachable

--- 192.168.0.254 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3071ms

Конфигурация, как показано NM, следующая:

nmcli con show suse_virt
connection.id:                          suse_virt
connection.uuid:                        45bc9ba8-8120-4bc5-93f4-168f28687f88
connection.stable-id:                   --
connection.type:                        bridge
connection.interface-name:              suse_virt
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1600532118
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
ipv4.method:                            manual
ipv4.dns:                               192.168.0.1,8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       --
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.0.3/24
ipv4.gateway:                           192.168.0.254
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.route-table:                       0 (unspec)
ipv4.routing-rules:                     --
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-iaid:                         --
ipv4.dhcp-timeout:                      0 (default)
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.dhcp-hostname-flags:               0x0 (none)
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       --
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.route-table:                       0 (unspec)
ipv6.routing-rules:                     --
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.ra-timeout:                        0 (default)
ipv6.dhcp-duid:                         --
ipv6.dhcp-iaid:                         --
ipv6.dhcp-timeout:                      0 (default)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.dhcp-hostname-flags:               0x0 (none)
ipv6.token:                             --
bridge.mac-address:                     D0:50:99:17:3F:E6
bridge.stp:                             no
bridge.priority:                        128
bridge.forward-delay:                   15
bridge.hello-time:                      2
bridge.max-age:                         20
bridge.ageing-time:                     300
bridge.group-forward-mask:              0
bridge.multicast-snooping:              yes
bridge.vlan-filtering:                  no
bridge.vlan-default-pvid:               1
bridge.vlans:                           --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           suse_virt
GENERAL.UUID:                           45bc9ba8-8120-4bc5-93f4-168f28687f88
GENERAL.DEVICES:                        suse_virt
GENERAL.IP-IFACE:                       suse_virt
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        yes
GENERAL.DEFAULT6:                       no
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            no
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/7
bridge.priority:                        128
bridge.forward-delay:                   15
bridge.hello-time:                      2
bridge.max-age:                         20
bridge.ageing-time:                     300
bridge.group-forward-mask:              0
bridge.multicast-snooping:              yes
bridge.vlan-filtering:                  no
bridge.vlan-default-pvid:               1
bridge.vlans:                           --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.NAME:                           suse_virt
GENERAL.UUID:                           45bc9ba8-8120-4bc5-93f4-168f28687f88
GENERAL.DEVICES:                        suse_virt
GENERAL.IP-IFACE:                       suse_virt
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        yes
GENERAL.DEFAULT6:                       no
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            no
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/3
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/7
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    --
IP4.ADDRESS[1]:                         192.168.0.3/24
IP4.GATEWAY:                            192.168.0.254
IP4.ROUTE[1]:                           dst = 192.168.0.0/24, nh = 0.0.0.0, mt = 425
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 192.168.0.254, mt = 20425
IP4.DNS[1]:                             192.168.0.1
IP4.DNS[2]:                             8.8.8.8
nmcli con show suse_virt-slave
connection.id:                          suse_virt-slave
connection.uuid:                        8a6be03b-debc-472d-a44d-eac7145b6ae0
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              eth0
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (default)
connection.multi-connect:               0 (default)
connection.auth-retries:                -1
connection.timestamp:                   1600532164
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      suse_virt
connection.slave-type:                  bridge
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        default
connection.mdns:                        -1 (default)
connection.llmnr:                       -1 (default)
connection.wait-device-timeout:         -1
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          no
802-3-ethernet.mac-address:             --
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             default
802-3-ethernet.wake-on-lan-password:    --
bridge-port.priority:                   32
bridge-port.path-cost:                  100
bridge-port.hairpin-mode:               yes
bridge-port.vlans:                      --
GENERAL.NAME:                           suse_virt-slave
GENERAL.UUID:                           8a6be03b-debc-472d-a44d-eac7145b6ae0
GENERAL.DEVICES:                        eth0
GENERAL.IP-IFACE:                       eth0
GENERAL.STATE:                          activated
GENERAL.DEFAULT:                        no
GENERAL.DEFAULT6:                       no
GENERAL.SPEC-OBJECT:                    --
GENERAL.VPN:                            no
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/4
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/2
GENERAL.ZONE:                           --
GENERAL.MASTER-PATH:                    /org/freedesktop/NetworkManager/Devices/5
IP4.GATEWAY:                            --
IP6.GATEWAY:                            --

ip route:

default via 192.168.0.254 dev peter_virt proto static metric 425 
192.168.0.0/24 dev peter_virt proto kernel scope link src 192.168.0.3 metric 425 

ip -ts -4 monitor

[2020-09-20T07:17:55.876194] 192.168.0.1 dev suse_virt lladdr a8:a1:59:00:35:88 STALE
       valid_lft forever preferred_lft forever
[2020-09-20T07:18:01.252200] 192.168.0.1 dev suse_virt lladdr a8:a1:59:00:35:88 PROBE
[2020-09-20T07:18:04.324192] 192.168.0.1 dev suse_virt  FAILED
       valid_lft forever preferred_lft forever
[2020-09-20T07:18:06.180909] 192.168.0.1 dev suse_virt lladdr a8:a1:59:00:35:88 REACHABLE
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
[2020-09-20T07:18:45.032169] 192.168.0.1 dev suse_virt lladdr a8:a1:59:00:35:88 STALE
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
       valid_lft forever preferred_lft forever
[2020-09-20T07:18:56.292191] 192.168.0.1 dev suse_virt lladdr a8:a1:59:00:35:88 PROBE
       valid_lft forever preferred_lft forever
[2020-09-20T07:18:59.364174] 192.168.0.1 dev suse_virt  FAILED
[2020-09-20T07:19:01.224802] 192.168.0.1 dev suse_virt lladdr a8:a1:59:00:35:88 REACHABLE
[2020-09-20T07:19:07.556221] 192.168.0.254 dev suse_virt lladdr 04:bf:6d:7f:35:14 STALE
       valid_lft forever preferred_lft forever

У меня была такая же проблема, я следовал этому руководству

, которое объясняет, как создать сеть libvirt с использованием интерфейса моста, а затем использовать эту сеть как обычную сеть в домене. Это сработало для меня. У меня были некоторые проблемы, когда мост отключал всю сеть, хотя не должен был, но, когда всё наладилось, всё заработало.

У вас случайно нет двух подключений на eth0? Вы можете проверить, используя nmcli con show, чтобы увидеть список подключений. Единственным подключением на eth0 должно быть ваше подключение suse_virt-slave.

Ip 192.168.0.6
Нет. Соединение. Запуск. Ошибка. Icmp. Консоль. Система. Ui. Вирус. Вредоносное ПО. Шпионское ПО. Нет. Подключение. Wifi. Сеть. Роутер. Модем. интернет. Консоль. Устройство. Вредоносное ПО. <icmp.error.wifi.internet.network.not.permission.>
<Вредоносное ПО.вирус входит в консоль.ip.последовательно/#изменения.!по методу.устройства.уже.вирус.вредоносное ПО.network.wifi.internet.wps.отключено.роутер.модем.ошибка.админ.ложный.владелец.роутер.wifi.сеть.интернет.попеременно.в сети.wifi.интернет.шпионский ПО работает.вирус.вредоносные.apps через серверы.ip.! #numbers загружаются в сеть. Wifi.через.wps.включен.ошибка. последовательные.полоса.данные.сигнал.интернет.шпионское ПО.пытка работа.устанавливается падения.миров.wifi.интернет.аппы.оригинальные.>
<НЕТ Разрешений.Код.icmp.ЗАПУСК объявление.console. ошибок.последовательно.пытаться подключение.wifi.network.internet.ip.#смены.с.bad.intentions. кража.данных.нет.чётко.system. ui.icmp.network.wifi.admin.ошибка.rooter.moden>
{Doctype}

(тело отключение интернета на устройствах, которые не являются их собственностью.)

.

Ответ или решение

Теория

Настройка мостовых соединений через NetworkManager на серверах, использующих разные дистрибутивы Linux, такие как CentOS и openSUSE, часто вызывает трудности, особенно когда требуется интеграция с libvirt для обеспечения бриджированного доступа виртуальных машин к сети. Основная задача в настройке мостов заключается в правильной конфигурации сетевых интерфейсов и их последующей проверке на корректную работу. Несмотря на то, что NetworkManager упрощает управление сетевыми соединениями, возникающие проблемы нередко связаны с конфликтами настроек, отсутствием связи или сбоями, возникающими при создании мостов.

Пример

В рассматриваемой ситуации проблема повторяется на двух устройствах: CentOS 8.1 и openSUSE Leap 15.2. Конфигурация мостов на обоих серверах была выполнена с помощью команды nmcli:

nmcli connection add type bridge bridge.stp no autoconnect yes con-name suse_virt ifname peter_virt ipv4.addresses 192.168.0.3/24 ipv4.gateway 192.168.0.254 ipv4.dns "192.168.0.1,8.8.8.8" ipv4.method manual
nmcli connection add type bridge-slave master suse_virt autoconnect yes ifname eth0 con-name suse_virt-slave

Однако, несмотря на то, что параметры подключения выглядят корректно, сеть перестаёт работать спустя несколько секунд после активации моста с помощью команды nmcli con up suse_virt. Проблемы варьируются от высокой потери пакетов до полной недоступности сети, как видно из вывода команды ping.

Применение

  1. Проверка текущих подключений:
    Первое, на что следует обратить внимание, это отсутствие дублирующихся подключений для интерфейса eth0. Команда nmcli con show поможет выявить все активные подключения. Убедитесь, что на eth0 не осталось других подключений, помимо suse_virt-slave.

  2. Конфигурация шлюза и маршрутов:
    Убедитесь, что конфигурация шлюза и маршрутов настроена без конфликтов. Обратите внимание на вывод команды ip route:

    default via 192.168.0.254 dev peter_virt proto static metric 425 
    192.168.0.0/24 dev peter_virt proto kernel scope link src 192.168.0.3 metric 425 

    Некорректный маршрут может сбивать работу сети.

  3. Настройка MAC-адресов:
    Проверьте, не происходит ли конфликтов MAC-адресов. Одинаковые MAC-адреса в сети могут вызывать нестабильную работу.

  4. Проверка замены настроек вручную:
    Попробуйте снизить приоритет моста, вручную установив значение:

    nmcli con modify suse_virt bridge.priority 4096
  5. Временная диагностика:
    Используйте команду ip monitor для динамического наблюдения за изменением состояния сети, чтобы быстрее выявить момент сбоя и попытаться определить его причину.

  6. Логи и отладка:
    Изучите системные логи с помощью journalctl -xe и dmesg, чтобы выявить ошибки, связанные с работой NetworkManager или сетевыми драйверами.

  7. Сетевые изменения и обновления:
    Иногда проблемы могут быть связаны с обновлениями. Проверьте, все ли пакеты последние версии, и внимательно отнеситесь к изменениям в конфигурации после обновления систем.

Когда возможные конфликты и ошибки выявлены и устранены, убедитесь, что настройки сохранены и активированы. Эффективная диагностика и исправление конфигурационных ошибок приведёт к стабильной работе сетевой инфраструктуры, поддерживаемой мостами, что, в свою очередь, обеспечит корректный сетевой доступ для виртуальных машин, работающих под управлением libvirt.

Оцените материал
Добавить комментарий

Капча загружается...