作者: 赵怡
一、VLAN aware VMs简介
"VLAN aware VMs"有时也叫做"VM trunk ports", 主要是让虚拟机收发的vlan tagged报文, 能够被虚拟网络所识别和处理。
二、VLAN aware VMs应用场景
该功能的主要使用场景有:
1. 有些应用程序, 需要连接很多neutron网络。传统的方法是虚拟机上连接很多neutron网络, 但是这样做显然不好维护, 并不实用。比较好的办法是在虚拟机上使用1个VIF网卡接口,创建多个VLAN接口, 并通过收发不同VLAN报文来区分不同网络。
2. 云计算网络中的负载较为动态, 有时需要动态的增删虚拟机上的网络接口。通过增删vlan相对来说更加简单和快捷。
3. 通过配置VLAN, 可以不用增删VIF, 把VM从一个网络挪到另一个网络
4. 一个VM可能跑多个容器, 通过给容器分配VLAN来连接到不同的neutron网络, 比给每个容器分配一个VM的VIF, 更加有效和更好的可扩展性。
5. 有些老的应用程序以及部分NFV, 要求能够通过VLAN来连接网络, 本功能能够满足这个需求。
三、VLAN aware VMs配置和使用方法
配置
需要在网络节点的neutron.conf里配置service_plugins为: "trunk"。
service_plugins=...., trunk |
使用
例如, 我们将要创建一个虚拟机trunk-vm1, 虚拟机上希望有3个网络接口: eth0, VLAN接口: eth0.1, VLAN接口: eth0.2。 其中:
nova创建虚拟机时创建的eth0, 主要用来收发VLANuntagged报文, 所属net0网络(子网为:10.0.4.0/24)。 对应的neutron port被称为parent_port, 取名为: trunkparent。
手动在VM里创建的VLAN接口: eth0.1, 用来收发VLAN tag=1的报文, 所属net1网络(子网为: 10.0.5.0/24)。对应的neutron port被称为subport, 取名为: subport1。
手动在VM里创建的VLAN接口: eth0.2, 用来收发VLAN tag=2的报文, 所属net2网络(子网为: 10.0.6.0/24)。对应的neutron port被称为subport, 取名为: subport2。
1. 创建网络net0, net1, net2, 以及对应的子网: subnet0 (10.0.4.0/24),subnet1 (10.0.5.0/24), subnet2 (10.0.6.0/24)
# openstack network create net0 # openstack network create net1 # openstack network create net2 # openstack subnet create --network net0 --subnet-range 10.0.4.0/24 subnet0 # openstack subnet create --network net1 --subnet-range 10.0.5.0/24 subnet1 # openstack subnet create --network net2 --subnet-range 10.0.6.0/24 subnet2 |
2. 在net0上创建trunkparentport, 在net1上创建subport1, 在net2上创建subport2
# openstack port create --network net0 trunkparent # openstack port create --network net1 subport1 # openstack port create --network net2 subport2 |
3. 创建mytrunk, 并设置parent-port为: trunkparent。subport 1的vlan_id=1。 subport2的vlan_id=2。
# openstack network trunk create --parent-port trunkparent \ --subport port=subport1,segmentation-type=vlan,segmentation-id=1 \ --subport port=subport2,segmentation-type=vlan,segmentation-id=2 mytrunk
+-----------------+-----------------------------------------------------------------------------------------------+ | Field | Value | +-----------------+-----------------------------------------------------------------------------------------------+ | admin_state_up | UP | | created_at | 2016-11-15T01:58:13Z | |