4.4
CloudStack automatically configures each guest virtual machine’s networking and storage settings. But what about the physical switches(like Juniper EX, QFX)? This feature is about a Cloudstack network-element plugin(called Juniper NetworkGuru plugin) to orchestrate Juniper's switches when VMs are created and attached to Network. As a first-cut, we are purely focussing on L2 services. We will provide tenant isolation via VLAN.
This is functional specification of Juniper Network Plugin, which has Jira ID 5398
Date | Revision | Author | Description of the change |
---|---|---|---|
12/10/2013 | 0.1 | Pradeep H Krishnamurthy | Initial Draft |
Term | Definition |
---|---|
NDAPI | Network Director API Application - a JUNOS Space Application |
CS | CloudStack |
NETCONF | An IETF network management protocol |
There won't be any change to the existing CloudStack workflow. In a typical deployment, when an Isolated Network is created and the first VM is attached to it, the Network is allocated a VLAN ID. This VLAN will be configured on the switches as well.
A typical Cloudstack deployment will have hypervisor, L2/L3 switches, Routers, Storage devices etc. The Cloudstack Management server manages the resources like hypervisor hosts , storage devices etc. Also, Cloudstack has a plugin framework through which we can orchestrate the physical switches(like Juniper EX, QFX).
To provide a virtualized network in the cloud, traffic originating from the VMs of tenants must be isolated. The isolation of traffic can done using VLANs. These VLANs needs to be configured both at the hypervisor hosts and the physical switch. CloudStack automatically creates and destroys interfaces bridged to VLANs on the hypevisor hosts. Juniper NetworkGuru Plugin will be focused on providing guest traffic isolation via VLANs by propagating the same to the Juniper switches. Because of this configuration, the Juniper switches will know which ports to flood the packets tagged with specific VLAN
To orchestrate Juniper's switches, the plugin leverages Network-Director API which is a JUNOS space application for configuring juniper equipment. It uses NETCONF protocol to control the juniper device configuration and exposes REST APIs for integration with other application. The plugin also has the ability to directly orchestrate the Juniper's switches using NETCONF protocol.
The plugin introduces a new class called JuniperNetworkGuru which extends the GuestNetworkGuru (of Cloudstack) and extends the implement() method to orchestrate the Juniper's switches.
The plugin can also use lldp information on the switch to figure out the switch-ports that are connected to the hypervisor hosts and configure those switch-ports with the relevant VLAN membership.
None
We will include the Netconf.jar (a java library) developed by Juniper. We will take the Legal clearance from Juniper.
We will create a new table to maintain information, mapping the network created in Cloudstack to Network-Director API articats