The proposed CloudStack networking plugin will bring the Nuage VSP network virtualization technology to CloudStack.
This is a design document of the Nuage VSP Plugin, which has Jira ID CLOUDSTACK-6845
External link describing the Nuage SDN solution : http://www.nuagenetworks.net/solutions/
Description of the change
|07/22/2014||0.2||Suresh Ramamurhty||Added information about plugin client dependency and UserData support in VPC|
Virtualized Services Platform
Virtualized Services Directory
Virualized Services Controller
Virtualized Routing and Switching
For the Nuage VSP plugin, we plan to support the following network model / service combinations:
1. Advanced Isolated network mode:
2. VPC network mode:
Note: If User needs Password Reset funtionality, then they can choose UserData Service and select VirtualRouter for isolated networks or VPCVirtualRouter for VPC as the ServiceProvider. The initial implementation targets the Xen Server and ESXI hypervisor. Additional services will be supported in subsequent releases
All the network isolation and routing is handled by the Nuage SDN solution. Routing of the packets happen at hypervisor itself. Virtual Router is not used for routing the packets thus the current issue of the Virtual Router being the bottleneck is avoided. The Virtual Router VM is used only for Password reset functionality. The Nuage solution also helps significantly improve the agility and scale of a CS deployment as compared to a Virtual Router based deployment
The Nuage NetworksTM Virtualized Services Platform (VSP) is a Software-Defined Networking (SDN) solution that virtualizes any datacenter (DC) network infrastructure and automatically establishes connectivity between compute resources upon their creation. The Nuage Networks VSP enables the deployment of massively scalable cloud-based services with the agility and performance demanded by highly dynamic application environments. It deploys the full range of L2-L4 networking services on a per-tenant or per-application basis using overlay technologies.
Nuage VSP plugin depends on following components of Nuage SDN solution
a) Nuage VSD
b) Nuage VSC
c) Nuage VRS, this needs installed on the Hypervisor
All the above components needs to be provisioned for the plugin to function properly. Also, Nuage VSP plugin directly talks with Nuage VSD using Rest API. So, all the components needs to be running to test the plugin functionality. NuageVsp plugin depends on the plugin client library. This needs to be installed on the management server as part of CloudStack management server installation.
The following tests should be verified before declaring the feature complete:
a) Create a network offering with default egress deny rule and select services supported by Nuage VSP plugin. Choose NuageVsp as the service provider for DHCP, SourceNAT, StaticNAT, Firewall and Virtual Networking services.
Choose VirtualRouter as the service provider for UserData service.
b) Create an isolated Network with network offering created above
c) Spawn a 2 VMs. VMs should each get an IP address. They should ping each other. SSH to a box on the external network should fail
b) Create a Static NAT and associate it one of the VM
Add an Egress rule for the network with source CIDR as 0.0.0.0/0, protocol as TCP and ssh port number
d) SSH to box that is in the external network should work
e) Password reset for the VM should work
a) Create a network offering for VPC with default deny all rule and select services supported by Nuage VSP plugin for VPC. Choose NuageVsp as the service provider for DHCP, SourceNAT, StaticNAT, NetworkACL and Virtual Networking services.
Choose VPCVirtualRouter as the service provider for UserData service.
b) Create a VPC offering with the same services that were selected to create the network offering.
c) Create a VPC and select the VPC offering created above.
d) Create a tier and select the network offering created above
e) Spawn a 2 VMs. VMs should each get an IP address. They should ping each other. SSH to a box on the external network should fail
f) Create a Static NAT and associate it one of the VM
g) Add an Network ACL Egress rule for the network with source CIDR as 0.0.0.0/0, protocol as TCP and ssh port number
h) SSH to box that is in the external network should work
There is no change in the existing Cloudstack work flow to create an advanced isolated network
There is not change in the existing Cloudstack work flow to create a VPC.
When the first VM is spawned either in Isolated network or in a tier of VPC, NuageVSP plugin creates logical network topology in VSD and information is pushed down in VSC. Nuage SDN solution then takes care of providing network isolation, connectivity, routing, Static NAT.
A Nuage VSP plugin will be developed to add Nuage network virtualization into CloudStack
This network guru is implemented to
a) Create/Delete logical topology in VSP
b) Create/Delete VM
a) Create/Delete NetworkACL, Firewall and Egress rule in VSP
b) Create/Delete Static NAT
a) Handle sync to clean up the stale entities in VSP
The capability / Networking mode combinations to be supported by the NuageVsp plugin are listes in the Feature Summary section above
A new Isolation Method called VSP will be added(PhysicalNetwork.java)
A new BroadCastDomainType called Vsp will be added(Network.java)
Isolation type VSP should be chosen for Guest Network.
A new Service provider called NuageVsp will be added. This needs to be enabled for the physical network that has the Guest Network with VSP isolation. Nuage VSD information need to be configured for NuageVsp Service provider
Note: NuageVsp network plugin depends on a NuageVsp plugin client library. So, this client library needs to installed on management server as part of CloudStack management server installation. When a NuageVsp provider information is added for the guest network,
plugin loads the client library and then uses the library to make REST API calls to Nuage VSD to create logical topology, VMs etc..