• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
OpenStack Folsom Summit: Melange overview
 

OpenStack Folsom Summit: Melange overview

on

  • 1,719 views

This is the slide deck from the Melange overview presentation given during the OpenStack Folsom Summit in San Francisco.

This is the slide deck from the Melange overview presentation given during the OpenStack Folsom Summit in San Francisco.

Statistics

Views

Total Views
1,719
Views on SlideShare
1,719
Embed Views
0

Actions

Likes
1
Downloads
115
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

OpenStack Folsom Summit: Melange overview OpenStack Folsom Summit: Melange overview Presentation Transcript

  • Melange Overview Troy Toman Folsom Summit April 2012
  • Melange• mélange: noun, a mixture; medley.• melange or mélange • 1. a mixture; confusion • 2. geology  a totally disordered mixture of rocks of different shapes, sizes, ages, and origins 
  • History• Spun out of NetStack work at Diablo summit• Initial proposal to integrate directly into Nova• Shifted to incubated project after Essex summit• Merging into Quantum going forward• API Doc: http://melange.readthedocs.org
  • Original Melange Blueprint✓across OpenStack services. network information services for use Melange is intended to provide✓The initial focus will be on IP address management (IPAM)- and address discovery (DHCP/dnsmasq) functionality.✓Melange is intended to be a standalone service with its own API. NOTE: Melange is just a data store - it doesn’t DO anything!
  • Melange Elements• IP Blocks• IP Addresses• Static Routes• Interfaces• NAT’ing• Policies• MAC address ranges
  • IP Blocks • Public or private IP space tracking • { "ip_block": { "broadcast": "10.1.1.255", "cidr": "10.1.1.0/24", "created_at": "2011-12-01T09:46:22", "dns1": "8.8.8.8", "dns2": "8.8.4.4", "gateway": "10.1.1.1", "id": "af19f87a-d6a9-4ce5-b30f-4cc9878ec292", "netmask": "255.255.255.0", "network_id": "quantum_net_id4", "parent_id": null, "policy_id": "2f730874-2088-4f91-87fb-63792c753971", "tenant_id": "RAX", "type": "private", "updated_at": "2011-12-01T09:46:22" }}
  • IP Addresses{ "ip_address": { "address": "10.1.1.6", "created_at": "2011-12-01T10:02:53", "id": "94fa249b-0626-49fc-b420-cce13dabed4f", "interface_id": "interface_id", "ip_block_id": "af19f87a-d6a9-4ce5-b30f-4cc9878ec292", "updated_at": "2011-12-01T10:02:53", "used_by_device": "instance_id", "used_by_tenant": "lessee_tenant", "version": 4 }}Supports both IPv6 and IPv6 addresses
  • Static Routes• GET /ipam/tenants/{tenant_id}/ip_blocks/{ip_block_id}/ip_routes{ "ip_routes": [ { "created_at": "2011-12-01T10:19:12", "destination": "192.168.0.0", "gateway": "10.1.1.1", "id": "364c555d-4e35-43d4-9807-59535df082a5", "netmask": "255.255.255.0", "updated_at": "2011-12-01T10:19:12" }, { "created_at": "2011-12-01T10:20:47", "destination": "192.168.0.0", "gateway": "10.1.1.1", "id": "7ebffbd6-3640-4061-b8f1-7878463e651f", "netmask": "255.255.255.0", "updated_at": "2011-12-01T10:20:47" } ]}
  • Interface Creation• Orchestrated creation of interface, MAC and IP assignment• POST /ipam/interfaces/ • Creates a vif record, allocates a mac and optionally allocates ip address from a network{ "interface": { "id": "virt_iface", "device_id": "instance", "tenant_id": "tnt", "network": { "id": "net1", "addresses": ["10.0.0.2"], "tenant_id": "network_owner_tenant_id" } }}
  • Interfaces { "interface": { "created_at": "2011-12-01T13:18:37", "device_id": "instance", "id": "virt_iface", "ip_addresses": [ { "address": "10.0.0.2", "id": "7615ca4a-787d-46b0-8a8c-3a90e3e6cf2c", "interface_id": "virt_iface", "ip_block": { "broadcast": "10.0.0.255", "cidr": "10.0.0.0/24", "dns1": "8.8.8.8", "dns2": "8.8.4.4", "gateway": "10.0.0.1", "id": "9c4c3dfd-c707-45bd-8626-9c369b1b9460", "ip_routes": [], "netmask": "255.255.255.0" }, "version": 4 } ], "mac_address": null, "tenant_id": "tnt_id", "updated_at": "2011-12-01T13:18:37" }}
  • Instance Interfaces• Batch interface for interface creation• PUT /ipam/instances/{instance_id}/interfaces/ • Create interfaces, allocate macs and ips on all networks provided.{ "instance": { "tenant_id": "tnt", "interfaces": [ {"network": {"id": "public_net1", "tenant_id": "RAX"}, "mac_address": null}, {"network": {"id": "public_net2", "tenant_id": "RAX"}, "mac_address": null}, ] }}
  • NAT’ing• Intended for tracking floating IPs or NAT relationships• Globals - public IPs• Locals - private IPs• POST /ipam/ip_blocks/{ip_block_id}/ip_addresses/{address}/inside_globals • Finds local IpAddress from given ip_block_id and address and creates IpAddresses passed in params as its inside global. • {‘ip_addresses’:’[ { “ip_block_id” : “some_global_ip_block_id”, “ip_address” : “some_global_ip_address” }, ..., {....} }
  • Policies• Create policy (essentially a policy group)• Create policy elements • Unusable ranges • Unusable octets• Assign policy to block
  • Policy Example• `melange policy create -t {tenant} name={block_name} desc={policy_name}` • `melange unusable_ip_octet create -t {tenant} policy_id={policy_id} octet=0`• `melange unusable_ip_octet create -t {tenant} policy_id={policy_id} octet=1`• `melange ip_block update -t {tenant} id={block_id} policy_id={policy_id}`
  • MAC Address Ranges• Ability to control the range of MAC addresses melange --host <melangeIP> --port 9898 mac_address_range create cidr=404040000000/24 mac_address_range:     cidr: 404040000000/24     created_at: 2012-01-25T17:21:46     id: ad4e7f30-4e11-45b9-b204-c58d194fe5a9     updated_at: 2012-01-25T17:21:46
  • Known Issues/Limitations• Woefully behind on user/admin documentation (Sorry!)• Early integration has focused around Quantum• DHCP scenario has not been broadly tested (vs. injection)• Needs more participation/input from broader community