Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Integration of Neutron, Nova
and Designate: How to Use
It and How to Configure It
Miguel Lavalle, Software Developer, mlav...
Agenda
• Workshop prep
• Neutron internal DNS resolution
• Configuring internal DNS resolution
• Integration with an exter...
Workshop prep / requirements
• Grab a USB key!
• A computer with:
• 2+ GB of RAM
• Virtualbox and Vagrant. Both included i...
Create a Nova instance
$ source openrc.user1
$ neutron net-list
$ nova flavor-list
$ nova image-list
$ nova boot my_vm --i...
Agenda
• Workshop prep
• Neutron internal DNS resolution
• Configuring internal DNS resolution
• Integration with an exter...
Neutron’s internal DNS with Nova in Mitaka
$ neutron port-create …
--dns-name instance.hostname
ReST API Neutron
Server
DH...
Let’s confirm...
$ nova list
$ neutron port-list --device-id <instance-uuid>
$ neutron port-show <port-uuid>
Configuring Neutron’s internal DNS resolution
• Edit the /etc/neutron.conf file and assign a value different to
‘openstack...
Agenda
• Workshop prep
• Neutron internal DNS resolution
• Configuring internal DNS resolution
• Integration with an exter...
Use case 1: Floating IPs are published with
associated port DNS attribute
$ neutron net-update
--dns-domain my-domain.org....
Let’s create a zone and update network
$ openstack zone create --email malavall@us.ibm.com
my-domain.org.
$ neutron net-li...
Use case 1: Floating IPs are published with
associated port DNS attribute
ReST API
Neutron Designate
ReST API
$ neutron fl...
Let’s do it...
$ neutron floatingip-create <net-uuid> --port-id <port-uuid>
$ openstack recordset list my-domain.org.
In a...
Use case 2: Floating IPs are published in the
external DNS service
ReST API
Neutron Designate
ReST API
$ neutron floatingi...
Let’s do it...
$ neutron floatingip-create <net-uuid> --dns-name my-fip
--dns-domain my-domain.org.
$ openstack recordset ...
Use case 3: Ports are published directly in the
external DNS service
$ neutron port-create …
--dns-name instance.hostname
...
Let’s do it...
$ source openrc.admin
$ neutron net-create --provider:network_type=vxlan
--provider:segmentation_id=2016 --...
Let’s do it...
In a second ssh session:
$ source openrc.admin
$ openstack zone list
$ openstack recordset list 251.32.172....
Configuring integration with an external DNS
service
• Edit the [default] section of /etc/neutron/neutron.conf and
specify...
Configuring integration with an external DNS
service
• For Designate, create a [designate] section in
/etc/neutron/neutron...
Agenda
• Workshop prep
• Neutron internal DNS resolution
• Configuring internal DNS resolution
• Integration with an exter...
Performance considerations
For use case 3, Ports are published directly in the external DNS,
if Port Binding extension is ...
Useful links
• DNS Integration in OpenStack Networking:
• http://docs.openstack.org/mitaka/networking-guide/adv-config-dns...
Thank You
Visit the IBM Booth in the Marketplace
Upcoming SlideShare
Loading in …5
×

Integration of neutron, nova and designate how to use it and how to configure it

1,060 views

Published on

OpenStack Design Summit, Austin April 2016

Published in: Software
  • Be the first to comment

  • Be the first to like this

Integration of neutron, nova and designate how to use it and how to configure it

  1. 1. Integration of Neutron, Nova and Designate: How to Use It and How to Configure It Miguel Lavalle, Software Developer, mlavalle @ irc.freenode.net James Anziano, Software Developer, janzian @ irc.freenode.net
  2. 2. Agenda • Workshop prep • Neutron internal DNS resolution • Configuring internal DNS resolution • Integration with an external DNS service • Use case 1: Floating IPs are published with associated port DNS attributes • Use case 2: Floating IPs are published in the external DNS service • Use case 3: Ports are published directly in the external DNS service • Configuring integration with an external DNS service • Performance considerations • Useful links
  3. 3. Workshop prep / requirements • Grab a USB key! • A computer with: • 2+ GB of RAM • Virtualbox and Vagrant. Both included in USB drive • Windows users need SSH client (putty, cygwin) • Copy * from USB drive • `vagrant up && vagrant ssh`
  4. 4. Create a Nova instance $ source openrc.user1 $ neutron net-list $ nova flavor-list $ nova image-list $ nova boot my_vm --image <image-uuid> --flavor <flavor-id> --nic net-id=<net-uuid>
  5. 5. Agenda • Workshop prep • Neutron internal DNS resolution • Configuring internal DNS resolution • Integration with an external DNS service • Use case 1: Floating IPs are published with associated port DNS attributes • Use case 2: Floating IPs are published in the external DNS service • Use case 3: Ports are published directly in the external DNS service • Configuring integration with an external DNS service • Performance considerations • Useful links
  6. 6. Neutron’s internal DNS with Nova in Mitaka $ neutron port-create … --dns-name instance.hostname ReST API Neutron Server DHCP Agent dnsmasq SIGHUP fa:16:3e:c9:cb:f0 172.31.252.4 my-vm my-vm.my-domain.org. dns_domain = my-domain.org. neutron.conf Nova compute manager creating instance my_vm RPC {“port”: “fixed_ips”: [ {“subnet_id”: ... “ip_address”: “172.31.252.4” } ], “dns_name”: “my-vm”, “dns_assignment”: [ { “hostname”: “my-vm”, “ip_address”: “172.31.252.4”, “fqdn”: “my-vm.my-domain.org.” } ] }
  7. 7. Let’s confirm... $ nova list $ neutron port-list --device-id <instance-uuid> $ neutron port-show <port-uuid>
  8. 8. Configuring Neutron’s internal DNS resolution • Edit the /etc/neutron.conf file and assign a value different to ‘openstacklocal’ (its default value) to the dns_domain parameter in the [default] section. As an example: dns_domain = my-domain.org. • Add ‘dns’ to extension_drivers in the [ml2] section of /etc/neutron/plugins/ml2/ml2_conf.ini. The following is an example: [ml2] extension_drivers = port_security,dns
  9. 9. Agenda • Workshop prep • Neutron internal DNS resolution • Configuring internal DNS resolution • Integration with an external DNS service • Use case 1: Floating IPs are published with associated port DNS attributes • Use case 2: Floating IPs are published in the external DNS service • Use case 3: Ports are published directly in the external DNS service • Configuring integration with an external DNS service • Performance considerations • Useful links
  10. 10. Use case 1: Floating IPs are published with associated port DNS attribute $ neutron net-update --dns-domain my-domain.org. ReST API Neutron Designate {“network”: ... “name”: “tenant1-network”, “dns_domain”: “my-domain.org.”, “id”: “b06b4967-ba73-4567-b060-cf6a9d7ecac6: ... } ReST API
  11. 11. Let’s create a zone and update network $ openstack zone create --email malavall@us.ibm.com my-domain.org. $ neutron net-list $ neutron net-update <net-uuid> --dns-domain my-domain.org. $ neutron net-show <net-uuid>
  12. 12. Use case 1: Floating IPs are published with associated port DNS attribute ReST API Neutron Designate ReST API $ neutron floatingip-create … --port-id b9a82377-a89f-4b02-93ec-3573333f70c6 {“floatingip”: “dns_domain”: “”, “dns_name”: “”, “fixed_ip_address”: “172.31.252.4”, “floating_ip_address”: “172.31.255.10”, ... } In zone nova-neutron.org.: record type: A name: my-vm.my-domain.org. records: 172.31.252.4 In zone 252.31.172.in-addr.arpa. record type: PTR name: 4.252.31.172.in-addr.arpa. records: my-vm.my-domain.org.
  13. 13. Let’s do it... $ neutron floatingip-create <net-uuid> --port-id <port-uuid> $ openstack recordset list my-domain.org. In a second ssh session: $ source openrc.admin $ openstack zone list $ openstack recordset list 255.32.172.in-addr.arpa.
  14. 14. Use case 2: Floating IPs are published in the external DNS service ReST API Neutron Designate ReST API $ neutron floatingip-create … --port_id b9a82377-a89f-4b02-93ec-3573333f70c6 --dns_name my-fip --dns_domain my-domain.org. {“floatingip”: “dns_domain”: “my-other-domain.org”, “dns_name”: “my-fip”, “fixed_ip_address”: “172.31.252.8”, “floating_ip_address”: “172.31.255.4”, ... } In zone my-other-domain.org.: record type: A name: my-fip.my-domain.org. records: 172.31.255.4 In zone 255.31.172.in-addr.arpa. record type: PTR name: 4.255.31.172.in-addr.arpa. records: my-fip.my-domain.org.
  15. 15. Let’s do it... $ neutron floatingip-create <net-uuid> --dns-name my-fip --dns-domain my-domain.org. $ openstack recordset list my-domain.org. In a second ssh session: $ source openrc.admin $ openstack zone list $ openstack recordset list 255.32.172.in-addr.arpa.
  16. 16. Use case 3: Ports are published directly in the external DNS service $ neutron port-create … --dns-name instance.hostname ReST API Neutron Server Nova compute manager creating instance my_vm_2 RPC Designate In zone my-other-domain.org.: record type: A name: my-vm-2.my-domain.org. records: 172.31.255.4 record type: AAAA name: my-vm-2.my-domain.org. records: fd5e:7a6b:1a62::6 In zone 251.31.172.in-addr.arpa. record type: PTR name: 6.251.31.172.in-addr.arpa. records: my-vm-2.my-domain.org. In zone ip6.arpa. record type: PTR name: .ip6.arpa records: my-vm-2.my-domain.org. {“port”: “dns_name”: “my-vm-2”, “dns_assignment”: [ { “hostname”: “my-vm-2”, “ip_address”: “172.31.251.6”, “fqdn”: “my-vm-2.my-domain.org.” }, { “hostname”: “my-vm-2”, “ip_address”: “fd5e:7a6b:1a62::6”, “fqdn”: “my-vm-2.my-domain.org.” }, ] }
  17. 17. Let’s do it... $ source openrc.admin $ neutron net-create --provider:network_type=vxlan --provider:segmentation_id=2016 --shared --dns-domain my-domain.org. public $ neutron subnet-create --ip_version 4 --name public-subnet <net-uuid> 172.31.251.0/24 $ neutron subnet-create --ip_version 6 --name ipv6-public-subnet <net-uuid> fd5e:7a6b:1a62::/64 $ source openrc.user1 $ nova boot my_vm_2 --image <image-uuid> --flavor <flavor-id> --nic net-id=<net-uuid> $ openstack recordset list my-domain.org.
  18. 18. Let’s do it... In a second ssh session: $ source openrc.admin $ openstack zone list $ openstack recordset list 251.32.172.in-addr.arpa. $ openstack recordset list 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.6.a.1.b.6.a.7.e.5.d.f.ip6.arpa
  19. 19. Configuring integration with an external DNS service • Edit the [default] section of /etc/neutron/neutron.conf and specify the external DNS service driver to be used in parameter external_dns_driver. Example for Designate: external_dns_driver = designate • Valid options are defined in the following namespace: neutron.services.external_dns_drivers
  20. 20. Configuring integration with an external DNS service • For Designate, create a [designate] section in /etc/neutron/neutron.conf with following parameters: [designate] url = http://127.0.0.1:9001/v2 admin_auth_url = http://127.0.0.1:35357/v2.0 admin_username = admin admin_password = password admin_tenant_name = admin allow_reverse_dns_lookup = True ipv4_ptr_zone_prefix_size = 24 ipv6_ptr_zone_prefix_size = 116
  21. 21. Agenda • Workshop prep • Neutron internal DNS resolution • Configuring internal DNS resolution • Integration with an external DNS service • Use case 1: Floating IPs are published with associated port DNS attributes • Use case 2: Floating IPs are published in the external DNS service • Use case 3: Ports are published directly in the external DNS service • Configuring integration with an external DNS service • Performance considerations • Useful links
  22. 22. Performance considerations For use case 3, Ports are published directly in the external DNS, if Port Binding extension is enabled in Neutron: • Nova will execute one additional port update operation when allocating a port for an instance during the boot process • This may have a noticeable effect on the performance of the boot process, that must be evaluated before adoption of this use case
  23. 23. Useful links • DNS Integration in OpenStack Networking: • http://docs.openstack.org/mitaka/networking-guide/adv-config-dns. html
  24. 24. Thank You Visit the IBM Booth in the Marketplace

×