Вопрос или проблема
Моя операционная система – Debian 12.
Я развернул кластер OpenStack с двумя узлами: controller34 – управляющий узел, worker35 – рабочий узел, без дополнительного сетевого узла. Мое сетевое планирование – повторное использование рабочего узла и сетевого узла. Я развернул сети самослуживания Neutron в соответствии с документом на официальном сайте и нашел следующую ошибку в журнале управляющего узла
вот моя конфигурация ip
root@controller34:/home/dky# cat /etc/network/interfaces
## Этот файл описывает сетевые интерфейсы, доступные в вашей системе
## и как их активировать. Для получения дополнительной информации см. interfaces(5).
#
source /etc/network/interfaces.d/*
# Интерфейс сетевого цикла
auto lo
iface lo inet loopback
# Основной сетевой интерфейс
allow-hotplug enp125s0f0
iface enp125s0f0 inet static
address 192.168.203.34/24
gateway 192.168.203.254
# параметры dns-* реализованы пакетом resolvconf, если установлен
dns-nameservers 192.168.203.11
вот мой журнал ошибок
tail -100f /var/log/neutron/neutron-openvswitch-agent.log
2024-01-23 10:54:52.946 241411 ERROR neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent [-] Мост enp125s0f0 для физического сетевого провайдера не существует. Агент завершил работу!
2024-01-23 10:54:56.939 241421 INFO neutron.common.config [-] Ведение журнала включено!
вот мой конфигурационный файл
/etc/neutron/plugins/ml2/ml2_conf.ini
cat /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
# ...
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security
[ml2_type_flat]
# ...
flat_networks = provider
[ml2_type_vxlan]
# ...
vni_ranges = 1:1000
/etc/neutron/plugins/ml2/openvswitch_agent.ini
root@controller34:/etc/neutron/plugins/ml2# cat /etc/neutron/plugins/ml2/openvswitch_agent.ini
[ovs]
bridge_mappings = provider:enp125s0f0
[vxlan]
local_ip = 192.168.203.34
l2_population = true
[securitygroup]
# ...
enable_security_group = true
firewall_driver = openvswitch
#firewall_driver = iptables_hybrid
Я не нашел ошибок в журнале рабочего узла.
вот моя конфигурация ip:
root@controller34:/etc/neutron/plugins/ml2# ip addr show
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
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp1s0f0np0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 70:8c:b6:16:27:fb brd ff:ff:ff:ff:ff:ff
3: enp125s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a4:16:e7:95:13:0b brd ff:ff:ff:ff:ff:ff
inet 192.168.203.34/24 brd 192.168.203.255 scope global enp125s0f0
valid_lft forever preferred_lft forever
inet6 fe80::a616:e7ff:fe95:130b/64 scope link
valid_lft forever preferred_lft forever
Я пытался создать мост вручную, но это не сработало. В настоящее время мы все еще находимся в стадии тестирования, поэтому я планирую использовать один сетевой интерфейс для построения внешней сети, сети управления и сети арендатора.
Соответствие моста требует моста, а не интерфейса, но из документов это не совсем ясно. Но параметр конфигурации bridge_mappings
довольно ясен. У меня еще нет настройки OVN, поэтому это для развертывания OVS, как это также требуется:
# создайте провайдерский мост на управляющем узле
ovs-vsctl add-br br-provider
# добавьте порт в провайдерский мост (physnet, вероятно, enp125s0f0 в вашем случае)
ovs-vsctl add-port br-provider {{ physnet }}
# отредактируйте /etc/neutron/plugins/ml2/openvswitch_agent.ini
[ovs]
bridge_mappings = provider:br-provider
После редактирования конфигурационного файла перезапустите neutron-openvswitch-agent.service
, возможно, даже все службы Neutron на управляющем узле. Затем сделайте то же самое на вычислительном узле, так как он также требует соответствия моста. Если вы планируете использовать внешнюю (провайдерскую) сеть, вам понадобится другой интерфейс без сконфигурированного IP.
Какой вариант сетевой интеграции OpenStack вы используете?
Ответ или решение
Проблема с OpenStack Neutron: Ошибка "Bridge enp125s0f0 for physical network provider does not exist"
Ваша проблема связана с ошибкой в настройках OpenStack, когда агент Neutron не может найти указанный мост для виртуальной сети. Давайте рассмотрим, как это исправить и какие шаги предпринять.
Суть проблемы
Согласно вашему лог-файлу:
Bridge enp125s0f0 for physical network provider does not exist. Agent terminated!
Это указывает на то, что в конфигурации указано имя интерфейса (enp125s0f0
), но для работы сетевой виртуализации необходимо создать мост, связывающий этот интерфейс с виртуальными сетями.
Шаги для решения проблемы
-
Создание моста:
Вам необходимо создать мост для предоставления сети, так как OpenStack использует мосты для управления соединениями между виртуальными сетями и физическим сетевым оборудованием. Выполните следующие команды:ovs-vsctl add-br br-provider ovs-vsctl add-port br-provider enp125s0f0
Это создаст мост
br-provider
и добавит в него физический интерфейсenp125s0f0
. -
Изменение конфигурации Neutron:
После создания моста необходимо внести изменения в конфигурационный файлopenvswitch_agent.ini
. Откройте файл:nano /etc/neutron/plugins/ml2/openvswitch_agent.ini
Измените секцию
[ovs]
, чтобы она выглядела следующим образом:[ovs] bridge_mappings = provider:br-provider
-
Перезапуск сервисов Neutron:
После внесения изменений в конфигурацию, вам необходимо перезапустить агентов OpenStack, чтобы изменения вступили в силу. Используйте следующие команды:systemctl restart neutron-openvswitch-agent.service
Желательно также перезапустить остальные сервисы Neutron, если они активны на контроллере:
systemctl restart neutron-server.service
-
Проверка состояния:
После выполнения всех шагов, проверьте логи и состояние агентов Neutron, чтобы убедиться, что проблема устранена. Вы можете использовать команду:tail -f /var/log/neutron/neutron-openvswitch-agent.log
-
Дополнительные рекомендации:
Если вы планируете использовать внешние (поставляемые) сети, рассмотрите возможность настройки дополнительного интерфейса, который не должен иметь IP-адрес. Это может упростить управление сетевой инфраструктурой.
Заключение
Тщательное создание и связывание мостов с физическими интерфейсами является критически важным для корректной работы сети в OpenStack. Надеюсь, данный ответ помог вам в решении проблемы. Если у вас возникнут дополнительные вопросы или необходимо дальнейшее руководство, не стесняйтесь обращаться за помощью.