【问题标题】:How to set up flat network in openstack?如何在openstack中建立平面网络?
【发布时间】:2021-12-20 13:12:24
【问题描述】:

我通过 openstack-ansible 部署了 openstack,我正在尝试设置一个 openstack 网络,以便可以从物理网络 (192.168.10.0/20) 访问实例:

openstack network create --share --external \
--provider-physical-network flat \
--provider-network-type flat public

openstack subnet create --network public \
--allocation-pool start=192.168.14.241,end=192.168.14.249 \
--dns-nameserver 192.168.10.144 --gateway 192.168.10.1 \
--subnet-range 192.168.10.0/20 public-subnet

但实例没有收到 IP 地址,也没有 ping 任何东西。

这是我的 ml2_conf.ini:

cat /etc/neutron/plugins/ml2/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan,local
tenant_network_types = vxlan,flat,vlan
mechanism_drivers = linuxbridge
extension_drivers = port_security
# ML2 flat networks

[ml2_type_flat]
flat_networks = flat
# ML2 VLAN networks

[ml2_type_vlan]
network_vlan_ranges = vlan:101:200,vlan:301:400
# ML2 VXLAN networks

[ml2_type_vxlan]
vxlan_group = 239.1.1.1
vni_ranges = 1:1000

[ml2_type_geneve]
vni_ranges =
max_header_size = 38
# Security groups

[securitygroup]
enable_security_group = True
enable_ipset = True

有任何解决方法的想法吗?

【问题讨论】:

  • 您的平面网络是否提供 DHCP 服务?通常,对于扁平网络,您需要以不同的方式提供 ip 配置,例如通过配置驱动器。因此,它可能不是您的 neutron 配置,而只是配置实例 IP 和网关的缺失步骤。

标签: openstack openstack-neutron


【解决方案1】:
  • 1、检查network:dhcp端口是否存在,应该存在并表明在start=192.168.14.241,end=192.168.14.249范围内有一个或多个以ip为开头的端口>。像这样:
# openstack port list --device-owner network:dhcp
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+
| ID                                   | Name | MAC Address       | Fixed IP Addresses                                                         | Status |
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+
| 08db769d-7500-41c0-bc3a-086fdb75c65d |      | fa:16:3e:4f:76:75 | ip_address='192.168.1.2', subnet_id='83e0dea2-cee3-437b-94c7-d5650d94d921' | ACTIVE |
+--------------------------------------+------+-------------------+----------------------------------------------------------------------------+--------+

  • 2、检查是否正确生成了网桥(brqf775913d-8fNetwork的ID头部一致,还有一些tapXXX为应该附加到实例的端口),如下所示:
# openstack subnet list
+--------------------------------------+-----------+--------------------------------------+----------------+
| ID                                   | Name      | Network                              | Subnet         |
+--------------------------------------+-----------+--------------------------------------+----------------+
| 83e0dea2-cee3-437b-94c7-d5650d94d921 | flat_snet | f775913d-8f9d-4f46-9fe7-2a1bce710ec6 | 192.168.1.0/24 |
+--------------------------------------+-----------+--------------------------------------+----------------+

# brctl show
bridge name bridge id       STP enabled interfaces
brqf775913d-8f      8000.000ec6ade4f2   no      enx000ec6ade4f2
                            tap08db769d-75
                            tapd4d2a5e3-fd
docker0     8000.0242e6da798c   no
  • 3,通过登录实例控制台检查实例是否配置了正确的ip信息(ip aip r s或其他检查网络流量,如traceroute)。

  • 4,在我的情况下,我们应该将pvid的值设置为连接到管理程序的交换机端口中唯一的flat网络vlanID,因为我们还有其他配置的vlan网络作为vlan 在openstack 集群中输入。

【讨论】:

  • VictorLee,感谢您的回答!这真的很有帮助,这就是我所做的:1)在子网设置中启用 DHCP(而分配池保持不变)2)向网桥添加了一个物理网络接口,其名称类似于网络 ID
  • @AlexG 很高兴,但我不明白为什么要手动添加物理网络接口?在我的实践中,当我在 /etc/kolla/globals.yml 中配置 network_interface: "enp3s0";neutron_external_interface: "enx000ec6ade4f2" 时,它会自动生成 brctl show 的结果。您能否重新启动neutron-server(谨慎使用)并自动生成新接口?或者您可能需要在服务或管理程序重启后手动添加接口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多