我在运行Ubuntu 18.04的VirtualBox VM上使用Devstack安装了Openstack。我正在尝试使用以下命令创建提供商网络:
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']
我想知道如何进行。
您应该使用openstack-client命令,例如openstack network create ...
,因为不赞成使用单个库的客户机命令,例如neutron net-create
。有一些非常特殊的情况,只有单个组件的客户端库才有可能,但是大多数情况由openstack-client覆盖。不幸的是,文档中经常使用旧命令,因为许多文档不是最新的。
为了避免出现错误,只需要从命令中删除--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
。
据我所知,通常,对于提供商网络,使用flat
网络类型代替vlan
,因为提供商网络通常不应直接连接到任何VM。其他非提供商网络可以是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
-网络作为provider-network-type。