Hyper-V Neutron Agent NVGRE implementation
This blueprint targets Windows Hyper-V / Server 2012 R2 or Windows 8.1.
Hyper-V Network Virtualization (HNV) was first introduced in Windows Hyper-V / Server 2012 and has the purpose of enabling the virtualization of Layer 2 and Layer 3 networking models. One of the HNV configuration approches is called NVGRE (Network Virtualization through GRE).
NVGRE is currently used between Windows Hyper-V / Server 2012 and Windows Hyper-V / Server 2012 R2 VMs, but the usage can be extended to other hypervisors which support GRE by using OpenVSwitch.
NVGRE can be utilized by Neutron by creating a GRE network and deploying instances on it. The Hyper-V Neutron Agent can then proceed to set the network's segmentation_id on the instance's port as VirtualSubnetId. The Agent will then proceed to create the proper ProviderAddress, ProviderRoute, CustomerRoute and LookupRecord WMI objects needed in order for this feature to function properly.
Additional information is needed from Neutron in order to create objects mentioned above. In order to retrieve the information, admin Neutron credentials are necessary. They should be added in the neutron_
[neutron]
url=http://<neutron_ip>:9696
auth_
admin_
admin_
admin_
admin_auth_url=http://<keystone_
To enable this feature, add the config option enable_
Limitations:
1. Segmentation ID should be higher than 4095. Hyper-V cannot create Customer Routes or Lookup Records if the SegmentationId is lower or equal to 4095.
2. Cannot have network gateway ending with '.1'. This will cause WMI exceptions, as ending with '.1' are reserved by Hyper-V. Any other gateway (including networks without a gateway) is acceptable.
3. Only one subnet per network. The reason is that it cannot be created more Customer Routes for the same VirtualSubnetID. Adding new routes for the same VirtualSubnetId will cause exceptions. For a given network, the customer routes that will be created will be:
Get-NetVirtuali
RoutingDomainID : {6AC1D964-
VirtualSubnetID : 5000
Destination
NextHop : 0.0.0.0
Metric : 255
RoutingDomainID : {6AC1D964-
VirtualSubnetID : 5000
Destination
NextHop : 10.0.1.2
Metric : 255
Notes:
- WNV (Windows Network Virtualization) is enabled by default for Windows Hyper-V / Server 2012 R2.
- Lookup Records should be added for the metadata address (169.254.169.254) in order for instances to properly fetch their metadata.
- Lookup Records should be added for 0.0.0.0. One reason why they're necessary is that they are required in order to receive DHCP offers.
- ProviderAddress, ProviderRoute, CustomerRoute and LookupRecord WMI objects are not persistent. Which means they will not exist after the host restarts.
Blueprint information
- Status:
- Complete
- Approver:
- Claudiu Belu
- Priority:
- Medium
- Drafter:
- Claudiu Belu
- Direction:
- Approved
- Assignee:
- Claudiu Belu
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Claudiu Belu
- Completed by
- Claudiu Belu
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Adds Hyper-V NVGRE support
Gerrit topic: https:/
Addressed by: https:/
Adds Hyper-V Neutron Agent NVGRE tunnel type spec