Learning Openstack Part 11 Neutron(3) - linux - brdge -flat网络类型

what?

  • flat network是不带tag的网络类型,要求宿主机的网卡直接与linux bridge相连。
  • 每个flat network都会独占一个物理网卡
Learning Openstack Part 11 Neutron(3) - linux - brdge -flat网络类型_第1张图片
flat_network

how?

  1. 配置网络类型为flat;
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types flat
  1. 配置flat network的物理网卡标签;
openstack-config --set /etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_flat flat_networks physnet1
  1. 这个“physnet1”是在linuxbridge_agent.ini中定义的
[linux_bridge]
physical_interface_mappings = physnet1:eth1 # 这里定义了标签和物理网卡的隐射关系
[vxlan]
enable_vxlan = False
[agent]
[securitygroup]
enable_security_group = True
firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

标签(label)是flat网络的标识,label可以使任意字符串。如果想要配置多个flat网络,配置格式如下:

[ml2_type_flat]
flat_networks = flat1,flat2
[linux_bridge]
physical_interface_mappings = flat1:eth1,flat2:eth2

  1. 重启neutron网络服务使配置生效;
  2. 创建一个flat network:
neutron net-create --shared --provider:network_type flat --provider:physical_network physnet1 first-flat
  1. 为network创建一个subnet:
neutron subnet-create --name subnet_192.168.1 --gateway 192.168.1.1 --enable-dhcp --allocation-pool start=192.168.1.100,end=192.168.1.200  first-flat 192.168.1.0/24

这时我们可以看到在宿主机上起了一个网桥连接到物理网卡eth1上,同时启动动了一个虚拟的tap接口用以提供dhcp服务以及metadata服务:

[root@openstack-controller ~]# brctl show 
bridge name bridge id       STP enabled interfaces
brq84987443-44      8000.000c2927f89e   no      eth1
                                                    tapcfae36f3-7c
  1. 在flat-network上创建两个实例
nova boot --flavor cirros --image cirros --key-name mykey --security-groups default --nic net-id=84987443-447d-4e7f-83c6-fa279aae9b33 instance-flat-1
nova boot --flavor cirros --image cirros --key-name mykey --security-groups default --nic net-id=84987443-447d-4e7f-83c6-fa279aae9b33 instance-flat-2

这时在计算节点可以看到创建了一个网桥桥接到物理网卡eth1上,并且创建了连个虚拟的tap设备分别供两个虚拟机实例使用:
Learning Openstack Part 11 Neutron(3) - linux - brdge -flat网络类型_第2张图片
flat-subnet
  1. 查看虚拟机实例是否有获取到ip
[root@openstack-controller ~]# nova list
+--------------------------------------+-----------------+--------+------------+-------------+--------------------------+
| ID                                   | Name            | Status | Task State | Power State | Networks                 |
+--------------------------------------+-----------------+--------+------------+-------------+--------------------------+
| d72bae0d-8655-4db8-b0a3-5aa280fe3325 | instance-flat-1 | ACTIVE | -          | Running     | first-flat=192.168.1.101 |
| 9de23ea1-56da-40e1-9e0c-139521950844 | instance-flat-2 | ACTIVE | -          | Running     | first-flat=192.168.1.102 |
+--------------------------------------+-----------------+--------+------------+-------------+--------------------------+

由于我们的subnet网段和物理网段不在同一个网络里,所以我们需要在namespace中才能访问虚拟机,当然您可以通过openstack提供的vnc控制台登录:

Learning Openstack Part 11 Neutron(3) - linux - brdge -flat网络类型_第3张图片
flat_check.png

通过上图我们可以知道,由于网桥直连到物理网卡上,所以在同一个network中的不同宿主机的中的tag设备可以相互通讯,自然instance可以顺利的获取到控制节点dhcp服务分配的ip地址

你可能感兴趣的:(Learning Openstack Part 11 Neutron(3) - linux - brdge -flat网络类型)