| .. Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information# |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| http://www.apache.org/licenses/LICENSE-2.0 |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| |
| The MidoNet Plugin |
| ================== |
| |
| Introduction to the MidoNet Plugin |
| ---------------------------------- |
| |
| The MidoNet plugin allows CloudStack to use the MidoNet virtualized |
| networking solution as a provider for CloudStack networks and services. For |
| more information on MidoNet and how it works, see |
| http://www.midokura.com/midonet/. |
| |
| |
| Features of the MidoNet Plugin |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| .. note:: |
| In CloudStack 4.2.0 only the KVM hypervisor is supported for use in |
| combination with MidoNet. |
| |
| In CloudStack release 4.2.0 this plugin supports several services in the |
| Advanced Isolated network mode. |
| |
| When tenants create new isolated layer 3 networks, instead of spinning |
| up extra Virtual Router VMs, the relevant L3 elements (routers etc) are |
| created in the MidoNet virtual topology by making the appropriate calls |
| to the MidoNet API. Instead of using VLANs, isolation is provided by |
| MidoNet. |
| |
| Aside from the above service (Connectivity), several extra features are |
| supported in the 4.2.0 release: |
| |
| - DHCP |
| |
| - Firewall (ingress) |
| |
| - Source NAT |
| |
| - Static NAT |
| |
| - Port Forwarding |
| |
| The plugin has been tested with MidoNet version 12.12. (Caddo). |
| |
| |
| Using the MidoNet Plugin |
| ------------------------ |
| |
| Prerequisites |
| ~~~~~~~~~~~~~ |
| |
| In order to use the MidoNet plugin, the compute hosts must be running |
| the MidoNet Agent, and the MidoNet API server must be available. Please |
| consult the MidoNet User Guide for more information. The following |
| section describes the CloudStack side setup. |
| |
| #. CloudStack needs to have at least one physical network with the |
| isolation method set to "MIDO". This network should be enabled for |
| the Guest and Public traffic types. |
| |
| #. Next, we need to set the following CloudStack settings under "Global |
| Settings" in the UI: |
| |
| .. cssclass:: table-striped table-bordered table-hover |
| |
| +-----------------------------+------------------------------------------------------------------------+--------------------------------------------+ |
| | Setting Name | Description | Example | |
| +=============================+========================================================================+============================================+ |
| | midonet.apiserver.address | Specify the address at which the Midonet API server can be contacted | http://192.168.1.144:8081/midolmanj-mgmt | |
| +-----------------------------+------------------------------------------------------------------------+--------------------------------------------+ |
| | midonet.providerrouter.id | Specifies the UUID of the Midonet provider router | d7c5e6a3-e2f4-426b-b728-b7ce6a0448e5 | |
| +-----------------------------+------------------------------------------------------------------------+--------------------------------------------+ |
| |
| Table: CloudStack settings |
| |
| #. We also want MidoNet to take care of public traffic, so in |
| *componentContext.xml* we need to replace this line: |
| |
| :: |
| |
| <bean id="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru"> |
| |
| |
| With this: |
| |
| :: |
| |
| <bean id="PublicNetworkGuru" class="com.cloud.network.guru.MidoNetPublicNetworkGuru"> |
| |
| |
| .. note:: |
| On the compute host, MidoNet takes advantage of per-traffic type VIF |
| driver support in CloudStack KVM. |
| |
| In agent.properties, we set the following to make MidoNet take care |
| of Guest and Public traffic: |
| |
| :: |
| |
| libvirt.vif.driver.Guest=com.cloud.network.resource.MidoNetVifDriver |
| libvirt.vif.driver.Public=com.cloud.network.resource.MidoNetVifDriver |
| |
| This is explained further in MidoNet User Guide. |
| |
| |
| Enabling the MidoNet service provider via the UI |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| To allow CloudStack to use the MidoNet Plugin the network service provider |
| needs to be enabled on the physical network. |
| |
| The steps to enable via the UI are as follows: |
| |
| #. In the left navbar, click Infrastructure |
| |
| #. In Zones, click View All |
| |
| #. Click the name of the Zone on which you are setting up MidoNet |
| |
| #. Click the Physical Network tab |
| |
| #. Click the Name of the Network on which you are setting up MidoNet |
| |
| #. Click Configure on the Network Service Providers box |
| |
| #. Click on the name MidoNet |
| |
| #. Click the Enable Provider button in the Network tab |
| |
| |
| Enabling the MidoNet service provider via the API |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| To enable via the API, use the following API calls: |
| |
| *addNetworkServiceProvider* |
| |
| - name = "MidoNet" |
| |
| - physicalnetworkid = <the uuid of the physical network> |
| |
| *updateNetworkServiceProvider* |
| |
| - id = <the provider uuid returned by the previous call> |
| |
| - state = "Enabled" |
| |
| |
| Revision History |
| ---------------- |
| |
| 0-0 Wed Mar 13 2013 Dave Cahill dcahill@midokura.com Documentation |
| created for 4.2.0 version of the MidoNet Plugin |