OpenStack Quantum

26
What is Quantum?

Transcript of OpenStack Quantum

Page 1: OpenStack Quantum

 What is Quantum?

Page 2: OpenStack Quantum

The Quantum project was created to provide a rich and tenant-facing API for defining network connectivity and addressing in the cloud. NetworkSubnetPort

Page 3: OpenStack Quantum

 

Flexibility to Choose Different Network TechnologiesOpen vSwitchCiscoLinux BridgeNicira NVPRyuNEC OpenFlow

Page 4: OpenStack Quantum
Page 5: OpenStack Quantum

Different Components

• quantum-server• plugin agent (quantum-*-agent)• dhcp agent (quantum-dhcp-agent)• l3 agent (quantum-l3-agent)

Page 6: OpenStack Quantum

Use Case: Single Flat Network

Page 7: OpenStack Quantum

• This is a "shared" network, meaning it is visible to all tenants via the Quantum API. Tenant VMs have a single NIC, and receive a fixed IP address from the subnet(s) associated with that network. This essentially maps to the FlatManager and FlatDHCPManager models provided by Nova. Floating IPs are not supported.

Page 8: OpenStack Quantum

 Use Case: Multiple Flat Network

Page 9: OpenStack Quantum

• This use case is very similar to the above Single Flat Network use case, except that tenants see multiple shared networks

Page 10: OpenStack Quantum

 Use Case: Mixed Flat and Private Network

Page 11: OpenStack Quantum

in which tenants also optionally have access to private per-tenant networks. In addition to seeing one or more shared networks via the quantum API, tenants can create additional networks that are only visible to users of that tenant. When creating VMs, those VMs can have NICs on any of the shared networks and/or any of the private networks belonging to the tenant. This enables the creation of "multi-tier" topologies using VMs with multiple NICs. It also supports a model where a VM acting as a gateway can provide services such as routing, NAT, or load balancing.

Page 12: OpenStack Quantum

Provider Router with Private Networks

Page 13: OpenStack Quantum

This use provides each tenant with one or more private networks, which connect to the outside world via a Quantum router. The case where each tenant gets exactly one network in this form maps to the same logical topology as the VlanManager in Nova. Using the Quantum API, the tenant would only see a network for each private network assigned to that tenant. The router object in the API is created and owned by the cloud admin.

Page 14: OpenStack Quantum

Per-tenant Routers with Private Networks

Page 15: OpenStack Quantum

A more advanced router scenario in which each tenant gets at least one router, and potentially has access to the Quantum API to create additional routers. The tenant can create their own networks, potentially unlinking those networks to a router. This model enables tenant-defined multi-tier applications, with each tier being a separate network behind the router. Since there are multiple routers, tenant subnets can be overlapping without conflicting, since access to external networks all happens via SNAT or Floating IPs. Each router uplink and floating IP is allocated from the external network subnet.

Page 16: OpenStack Quantum
Page 17: OpenStack Quantum

• 3 ServersServer 1 = > running network controller and nova-computeServer 2 = > running nova-compute, Cinder, rabbit-mq, mysql, keystone, glance, swiftServer 3 = > running nova-compute

• All servers are having 4 lan card, eth0 is connected to public switch and rest are connected to private switch.eth3 of Server 1 is also connected to public switch for br-ex. all node eth2 is for br-int

• 10.10.x.x is for public access• 172.24.0.x is for private network• 172.24.x.x is reserved for tenant Network

Page 18: OpenStack Quantum

Network Node Setup• vi /etc/network/interfacesauto eth0iface eth0 inet staticaddress 10.10.1.2netmask 255.255.255.0gateway 10.10.1.254dns-nameservers 10.10.2.2

###### VMs Networks with OVS in tunnel modeauto eth1iface eth1 inet manualup ifconfig $IFACE 0.0.0.0 upup ip link set $IFACE promisc ondown ip link set $IFACE promisc offdown ifconfig $IFACE down

############ Public Bridgeauto eth3iface eth3 inet manualup ifconfig $IFACE 0.0.0.0 upup ip link set $IFACE promisc ondown ip link set $IFACE promisc offdown ifconfig $IFACE down

Page 19: OpenStack Quantum

#virsh net-destroy default

#virsh net-undefine default

#vi /etc/libvirt/libvirtd.conflisten_tls = 0listen_tcp = 1auth_tcp = “none”

#vi /etc/init/libvirt-bin.confenv libvirtd_opts=”-d -l”

# vi /etc/default/libvirt-binlibvirtd_opts=”-d -l”

# service libvirt-bin restart

#vi /etc/default/openvswitch-switchBRCOMPAT=yes

#aptitude purge ebtables

#apt-get install -y openvswitch-datapath-source

#apt-get install -y quantum-server quantum-plugin-openvswitch

#module-assistant auto-install openvswitch-datapath

#service openvswitch-switch start

#lsmod |grep br

#rmmod bridge

#service openvswitch-switch restart

#service openvswitch-controller restart

#lsmod |grep br

#init 6

Page 20: OpenStack Quantum

Network setup for Compute Nodes• #vi /etc/network/interfaces## Management Networkauto eth0iface eth0 inet staticaddress 10.10.1.1netmask 255.255.255.0gateway 10.10.1.254dns-nameservers 10.10.2.2

## VMs Networks with OVS in tunnel modeauto eth1iface eth1 inet manualup ifconfig $IFACE 0.0.0.0 upup ip link set $IFACE promisc ondown ip link set $IFACE promisc offdown ifconfig $IFACE down

Page 21: OpenStack Quantum

How to create Quantum Network

• Internal Network• Internal Subnet• Router• External Network• External Subnet• Floating IP

Page 22: OpenStack Quantum

Internal Network

# quantum net-create pvt_net1 --tenant_id 6415b015581c4506a46e97170395a598 --provider:network_type gre --provider:segmentation_id 1 --shared True# quantum net-create pvt_net2 --tenant_id 6415b015581c4506a46e97170395a598 --provider:network_type gre --provider:segmentation_id 2 --shared True

Page 23: OpenStack Quantum

Internal Subnet

• quantum subnet-create --tenant_id 6415b015581c4506a46e97170395a598 --ip_version 4 c92921e3-64a7-468c-8b96-e3acdfc469c0 172.24.1.0/24

• quantum subnet-create --tenant_id 6415b015581c4506a46e97170395a598 --ip_version 4 1b61152f-f611-4817-9980-79636392ab8b 172.24.2.0/24

Page 24: OpenStack Quantum

Router

# quantum router-create --tenant_id 566b4109018540c3b41d8b7f3acc96f2 oss_router # quantum router-interface-add a08467a3-6688-4810-8fee-86ad695cfd43 8bf56636-fe18-4386-8018-de86cfa4cec8

Page 25: OpenStack Quantum

External Router

# quantum net-create ext_net -- --router:external=True# quantum subnet-create --ip_version 4 --allocation-pool start=10.83.192.11,end=10.83.192.125 --gateway 10.83.192.254 6377fc4c-9d0c-4690-976b-09a9ddac9ef6 10.83.192.0/24 -- --enable_dhcp=False

Page 26: OpenStack Quantum

FLOATING IP

# quantum floatingip-create ext_net# nova list# quantum port-list -- --device_id 1cdc671d-a296-4476-9a75-f9ca1d92fd26# quantum floatingip-associate $FLOATING_ID $PORT_ID# quantum floatingip-show $FLOATING_ID