VLAN aware VMs Guide¶
VLAN aware VM is a VM that sends and receives VLAN tagged frames over its vNIC. The main point of that is to overcome the limitations of the current one vNIC per network model. A VLAN (or other encapsulation) aware VM can differentiate between traffic of many networks by different encapsulation types and IDs, instead of using many vNICs. This approach scales to higher number of networks and enables dynamic handling of network attachments (without hotplugging vNICs).
Installation¶
No additional installation required, Please refer to the Tricircle installation guide to install Tricircle then configure Neutron server to enable trunk extension.
Configuration¶
1 Configure central Neutron server
Edit neutron.conf, add the following configuration then restart central Neutron server
Option Description Example [DEFAULT] service_plugins service plugin central Neutron server uses tricircle.network.central_trunk_plugin. TricircleTrunkPlugin
2 Configure local Neutron server
Edit neutron.conf, add the following configuration then restart local Neutron server
Option Description Example [DEFAULT] service_plugins service plugin central Neutron server uses trunk
How to play¶
1 Create pods via Tricircle Admin API
2 Create necessary resources in central Neutron server
neutron --os-region-name=CentralRegion net-create --provider:network_type vlan net1 neutron --os-region-name=CentralRegion subnet-create net1 10.0.1.0/24 neutron --os-region-name=CentralRegion port-create net1 --name p1 neutron --os-region-name=CentralRegion net-create --provider:network_type vlan net2 neutron --os-region-name=CentralRegion subnet-create net2 10.0.2.0/24 neutron --os-region-name=CentralRegion port-create net2 --name p2
Please note that network type must be vlan, the port p1, p2 and net2’s provider segmentation_id will be used in later step to create trunk and boot vm.
3 Create trunk in central Neutron server
openstack --os-region-name=CentralRegion network trunk create trunk1 --parent-port p1 --subport port=p2,segmentation-type=vlan,segmentation-id=$net2_segment_id
4 Get image ID and flavor ID which will be used in VM booting. In the following step, the trunk is to be used in the VM in RegionOne, you can replace RegionOne to other region’s name if you want to boot VLAN aware VM in other region.
glance --os-region-name=RegionOne image-list nova --os-region-name=RegionOne flavor-list
5 Boot virtual machines
nova --os-region-name=RegionOne boot --flavor 1 --image $image1_id --nic port-id=$p1_id vm1
6 Show result on CentralRegion and RegionOne
openstack --os-region-name=CentralRegion network trunk show trunk1 openstack --os-region-name=RegionOne network trunk show trunk1
The result will be the same, except for the trunk id.