Neutron - Недопустимый ввод для операции: Physical_network 'physnet_em1' неизвестен для сети провайдера VLAN

Я установил Openstack с помощью Devstack на виртуальную машину VirtualBox под управлением Ubuntu 18.04. Я пытаюсь создать сеть провайдера с помощью следующей команды:

neutron net-create mgmt --provider:network_type=vlan --provider:physical_network=physnet_em1 --provider:segmentation_id=500 --shared

Эта команда возвращает следующую ошибку:

neutronclient.common.exceptions.BadRequest: Invalid input for operation:
physical_network 'physnet_em1' unknown for VLAN provider network.
Neutron server returns request_ids: ['req-7a0bfe13-b4c3-4408-bc60-8d36e8bc3f9a']

Я хотел бы знать, как действовать дальше.


person Dalton Cézane    schedule 15.05.2020    source источник


Ответы (1)


  1. Вы должны использовать клиентские команды openstack, такие как openstack network create ..., потому что клиентские команды отдельных библиотек, таких как ваша neutron net-create, устарели. Есть несколько действительно особых случаев, которые возможны только с клиентской библиотекой отдельных компонентов, но больше всего покрывается openstack-клиентом. К сожалению, в документации часто используются старые команды, так как многие документы устарели.

  2. Чтобы избежать ошибки, которую вы имели, вам нужно только удалить --provider:physical_network=physnet_em1 и --provider:segmentation_id=500 из вашей команды. Физическая сеть и vlan-диапазон должны быть определены в ml2_conf.ini нейтронного сервера, например, так:

    [ml2]
    type_drivers = flat,vlan,vxlan
    ...
    
    [ml2_type_vlan]
    network_vlan_ranges = physnet_em1:171:280
    ...
    

    Так что с neutron net-create mgmt --provider:network_type=vlan --shared он работает в моем тестовом развертывании (по крайней мере, в терминале нет ошибок, сейчас не проверял сетевое подключение). Команда openstack для этой задачи будет openstack network create --provider-network-type vlan mgmt --share --external.

  3. Обычно, насколько мне известно, для сети провайдера используется тип сети flat вместо vlan, потому что сеть провайдера обычно не должна напрямую подключаться к какой-либо виртуальной машине. Другие сети без провайдера могут быть vlan или vxlan, а затем подключаться с помощью нейтронного маршрутизатора к сети провайдера. Команда openstack для этого может быть: openstack network create --provider-network-type flat --provider-physical-network physnet_em1 mgmt --share --external. Для плоских сетей у вас есть возможность определить provider-physical-network через командную строку. В некоторых документах вроде этого: https://docs.openstack.org/newton/install-guide-ubuntu/launch-instance-networks-provider.html они также используют flat-сеть в качестве типа сети провайдера.

person Tobias    schedule 15.05.2020
comment
Спасибо, @Тобиас. Можете ли вы сказать, что означают эти числа (171:280) после physnet_em1? - person Dalton Cézane; 16.05.2020
comment
@DaltonCézane Да, извините. Я должен был написать это в приведенном ниже примере. Эти числа представляют собой диапазон vlan, который вы указываете openstack как доступный диапазон. В этом примере он будет использовать теги vlan от 171 до 280 для тегирования всех созданных сетей vlan в вашем развертывании openstack. Так что это также определяет ограничение. Вы можете создать столько сетей, сколько позволяет размер этого диапазона. - person Tobias; 16.05.2020
comment
Таким образом, вы можете свободно решать в этом конфигурационном файле, какой диапазон вам нужен, если значения находятся в разрешенном диапазоне vlan 0-4095. - person Tobias; 16.05.2020
comment
Спасибо, @Тобиас. Я настроил без этого диапазона, и это не сработало. Когда я перезагрузил машину, когда я снова проверил, это сработало. Это указывает на то, что диапазон vlan не является обязательным. - person Dalton Cézane; 21.05.2020
comment
@DaltonCézane Спасибо за отзыв. Я использовал тип vlan только один или два раза, прежде чем переключился на сети vxlan, поэтому я никогда не тестировал его без диапазона. ;) - person Tobias; 21.05.2020