Eucalyptus started to support AWS compatible VPC (Virtual Private Cloud) from v4.2 as a new networking mode VPCMIDO. Eucalyptus still supports the EC2 classic networking in EDGE networking mode. Eucalyptus VPC exposes the same AWS VPC APIs to support the existing application that were built for AWS. Eucalyptus uses MidoNet as a backend for VPC and supports both open source MidoNet and Midokura Enterprise MidoNet (MEM). The current Eucalyptus release v4.3 supports MidoNet v1.9 and has gone through a huge improvements in terms of performance and stability from Eucalyptus v4.2.2.
Eucalyptus v4.4 is under heavy development and supports current stable release of MidoNet v5.2!
A basic deployment of MidoNet (v5.2) for Eucalyptus VPC consists of following components:
- MidoNet Cluster – installed on Cloud Controller (CLC)
- Gateway Node (MidoNet Gateway)
- Network State Database (NSDB) – Zookeeper and Cassandra
- MidoNet Agents (Midolman) – Cloud Controller (CLC) and Node Controllers (NC)
Steps to install Eucalyptus 4.4 VPC
Even though Eucalyptus 4.4 is still under development, nightly packages are already available here.
Installation of the MidoNet components are pretty straight forward and are well explained in MidoNet documentation.
- Repository configuration for opensource MidoNet
- Network State Database installation
- Install and configure MidoNet Cluster on CLC
# install packages yum install midonet-cluster python-midonetclient # file: /etc/midonet/midonet.conf [zookeeper] zookeeper_hosts = 10.111.5.209:2181
- Run the following command on MidoNet Cluster, configure access to NSDB
$ cat << EOF | mn-conf set -t default zookeeper { zookeeper_hosts = "10.111.5.209:2181" } cassandra { servers = "10.111.5.209" } EOF
- Start midonet-cluster.service
- Install and configure Midolman on CLC and NCs
yum install java-1.8.0-openjdk-headless midolman # file: /etc/midolman/midolman.conf [zookeeper] zookeeper_hosts = 10.111.5.209:2181
- Set Midolman resource template
mn-conf template-set -h local -t default
- Start midolman.service on all the hosts.
- Install and configure Eucalyptus with VPCMIDO as networking mode. Eucalyptus 4.4 installation is identical to v4.3.
Create MidoNet Resource for VPC
- Launch MidoNet CLI on MidoNet Cluster
midonet-cli -A --midonet-url=http://localhost:8080/midonet-api
- Create a tunnel-zone with type ‘gre’ (Generic Routing Encapsulation)
midonet> create tunnel-zone name mido-tz type gre tzone0
- Add hosts e.g CLC, NCs to tunnel-zone. If midolman services are running on the hosts with correct configuration, we should see a list hosts with the following command
midonet> host list host host0 name h-03.qa1.eucalyptus-systems.com alive true addresses 169.254.123.1,fe80:0:0:0:0:11ff:fe00:1101,fe80:0:0:0:0:11ff:fe00:1102,10.111.5.3,fe80:0:0:0:eeb1:d7ff:fe7f:53bc,127.0.0.1,0:0:0:0:0:0:0:1,10.107.105.3,fe80:0:0:0:eeb1:d7ff:fe7f:53bc,fe80:0:0:0:eeb1:d7ff:fe7f:53bc flooding-proxy-weight 1 container-weight 1 container-limit no-limit enforce-container-limit false host host1 name g-19-11.qa1.eucalyptus-systems.com alive true addresses fe80:0:0:0:ea9a:8fff:fe74:12ca,fe80:0:0:0:0:11ff:fe00:1102,10.111.1.135,fe80:0:0:0:ea9a:8fff:fe74:12ca,127.0.0.1,0:0:0:0:0:0:0:1,fe80:0:0:0:ea9a:8fff:fe74:12cb,10.113.1.135,fe80:0:0:0:ea9a:8fff:fe74:12ca,10.107.101.135,fe80:0:0:0:0:11ff:fe00:1101,169.254.123.1 flooding-proxy-weight 1 container-weight 1 container-limit no-limit enforce-container-limit false host host2 name a-27-r.qa1.eucalyptus-systems.com alive true addresses 127.0.0.1,0:0:0:0:0:0:0:1,fe80:0:0:0:0:11ff:fe00:1102,fe80:0:0:0:ea39:35ff:fec5:7098,10.107.105.209,fe80:0:0:0:ea39:35ff:fec5:7098,fe80:0:0:0:0:11ff:fe00:1101,169.254.123.1,10.111.5.209,fe80:0:0:0:ea39:35ff:fec5:7098 flooding-proxy-weight 1 container-weight 1 container-limit no-limit enforce-container-limit false # Add the hosts to tunnel zone midonet> tunnel-zone list tzone tzone0 name mido-tz type gre midonet> tunnel-zone tzone0 add member host host0 address 10.111.5.3 zone tzone0 host host0 address 10.111.5.3 midonet> tunnel-zone tzone0 add member host host1 address 10.111.1.135 zone tzone0 host host1 address 10.111.1.135 midonet> tunnel-zone tzone0 add member host host2 address 10.111.5.209 zone tzone0 host host2 address 10.111.5.209
- Set up local ASN for router
# list router midonet> router list router router0 name eucart state up asn 0 midonet> router router0 set asn 65996
- Set BGP Peer (may change in future EUCA-12890)
midonet> router router0 add bgp-peer asn 65000 address 10.116.133.173 router0:peer0
- Set BGP Network
midonet> router router0 add bgp-network net 10.116.131.0/24 router0:net0
Install an image using and following command and start running instances with VPC!
python <(curl -sL https://git.io/vXZzY) or python <(curl -sL https://raw.githubusercontent.com/eucalyptus/eucalyptus-cookbook/master/faststart/install-emis/install-emis.py)