SlideShare a Scribd company logo
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
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
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`
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>
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
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.”
}
]
}
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
‘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
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
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
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>
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.
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.
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.
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.
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.”
},
]
}
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.
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
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
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
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
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
Useful links
• DNS Integration in OpenStack Networking:
• http://docs.openstack.org/mitaka/networking-guide/adv-config-dns.
html
Thank You
Visit the IBM Booth in the Marketplace

More Related Content

What's hot

Prometheus Multi Tenancy
Prometheus Multi TenancyPrometheus Multi Tenancy
Prometheus Multi Tenancy
Natan Yellin
 
Sobanski odl summit_2015
Sobanski odl summit_2015Sobanski odl summit_2015
Sobanski odl summit_2015
John Sobanski
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
Winton Winton
 
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Vietnam Open Infrastructure User Group
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
OpenStack Korea Community
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
Nguyen Van Vuong
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
Masaya Aoyama
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
Lorenzo Fontana
 
Introduction to OpenStack
Introduction to OpenStackIntroduction to OpenStack
Introduction to OpenStack
Edureka!
 
Openstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-ServiceOpenstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-Service
Chhavi Agarwal
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
DuckDuckGo
 
Docker Online Meetup #22: Docker Networking
Docker Online Meetup #22: Docker NetworkingDocker Online Meetup #22: Docker Networking
Docker Online Meetup #22: Docker Networking
Docker, Inc.
 
Kubernetes
KubernetesKubernetes
Kubernetes
erialc_w
 
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatMultiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
OpenStack
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
OpenStack Korea Community
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uring
ShapeBlue
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
Varun Talwar
 
Introduction To OpenStack
Introduction To OpenStackIntroduction To OpenStack
Introduction To OpenStack
Haim Ateya
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Peng Xiao
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
Akihiro Suda
 

What's hot (20)

Prometheus Multi Tenancy
Prometheus Multi TenancyPrometheus Multi Tenancy
Prometheus Multi Tenancy
 
Sobanski odl summit_2015
Sobanski odl summit_2015Sobanski odl summit_2015
Sobanski odl summit_2015
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
Room 3 - 1 - Nguyễn Xuân Trường Lâm - Zero touch on-premise storage infrastru...
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
 
Introduction to OpenStack
Introduction to OpenStackIntroduction to OpenStack
Introduction to OpenStack
 
Openstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-ServiceOpenstack Magnum: Container-as-a-Service
Openstack Magnum: Container-as-a-Service
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Docker Online Meetup #22: Docker Networking
Docker Online Meetup #22: Docker NetworkingDocker Online Meetup #22: Docker Networking
Docker Online Meetup #22: Docker Networking
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red HatMultiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
Multiple Sites and Disaster Recovery with Ceph: Andrew Hatfield, Red Hat
 
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 
Boosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uringBoosting I/O Performance with KVM io_uring
Boosting I/O Performance with KVM io_uring
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
 
Introduction To OpenStack
Introduction To OpenStackIntroduction To OpenStack
Introduction To OpenStack
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
[Paris Container Day 2021] nerdctl: yet another Docker & Docker Compose imple...
 

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

Get your instance by name integration of nova, neutron and designate
Get your instance by name  integration of nova, neutron and designateGet your instance by name  integration of nova, neutron and designate
Get your instance by name integration of nova, neutron and designate
Miguel Lavalle
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support Engineer
Jeff Anderson
 
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, DockerTroubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
Docker, Inc.
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newYiwei Ma
 
Designate - Operators Deep Dive
Designate - Operators Deep DiveDesignate - Operators Deep Dive
Designate - Operators Deep Dive
Graham Hayes
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
Kyle Rames
 
Openstack 101
Openstack 101Openstack 101
Openstack 101
POSSCON
 
Designate Installation Workshop
Designate Installation WorkshopDesignate Installation Workshop
Designate Installation Workshop
Graham Hayes
 
Mens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practiceMens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practicekuchinskaya
 
DNS_Tutorial 2.pptx
DNS_Tutorial 2.pptxDNS_Tutorial 2.pptx
DNS_Tutorial 2.pptx
viditsir
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014
Puppet
 
Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...
Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...
Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...
Nagios
 
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
raccoony
 
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios
 
[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR
OpenStack Korea Community
 
Install nagios
Install nagiosInstall nagios
Install nagioshassandb
 
Install nagios
Install nagiosInstall nagios
Install nagioshassandb
 
Install nagios
Install nagiosInstall nagios
Install nagioshassandb
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
Ben Hall
 
Lksn2017 itnsa modul2
Lksn2017 itnsa modul2Lksn2017 itnsa modul2
Lksn2017 itnsa modul2
Verry Hendroprasetyo
 

Similar to Integration of neutron, nova and designate how to use it and how to configure it (20)

Get your instance by name integration of nova, neutron and designate
Get your instance by name  integration of nova, neutron and designateGet your instance by name  integration of nova, neutron and designate
Get your instance by name integration of nova, neutron and designate
 
Troubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support EngineerTroubleshooting Tips from a Docker Support Engineer
Troubleshooting Tips from a Docker Support Engineer
 
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, DockerTroubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
Troubleshooting Tips from a Docker Support Engineer - Jeff Anderson, Docker
 
X64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 newX64服务器 lnmp服务器部署标准 new
X64服务器 lnmp服务器部署标准 new
 
Designate - Operators Deep Dive
Designate - Operators Deep DiveDesignate - Operators Deep Dive
Designate - Operators Deep Dive
 
Cutting through the fog of cloud
Cutting through the fog of cloudCutting through the fog of cloud
Cutting through the fog of cloud
 
Openstack 101
Openstack 101Openstack 101
Openstack 101
 
Designate Installation Workshop
Designate Installation WorkshopDesignate Installation Workshop
Designate Installation Workshop
 
Mens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practiceMens jan piet_dnssec-in-practice
Mens jan piet_dnssec-in-practice
 
DNS_Tutorial 2.pptx
DNS_Tutorial 2.pptxDNS_Tutorial 2.pptx
DNS_Tutorial 2.pptx
 
Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014Razor, the Provisioning Toolbox - PuppetConf 2014
Razor, the Provisioning Toolbox - PuppetConf 2014
 
Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...
Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...
Nagios Conference 2014 - Mike Weber - Expanding NRDS Capabilities on Linux Sy...
 
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
파이썬 개발환경 구성하기의 끝판왕 - Docker Compose
 
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
 
[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR[OpenStack 하반기 스터디] HA using DVR
[OpenStack 하반기 스터디] HA using DVR
 
Install nagios
Install nagiosInstall nagios
Install nagios
 
Install nagios
Install nagiosInstall nagios
Install nagios
 
Install nagios
Install nagiosInstall nagios
Install nagios
 
Scaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container ServiceScaling Docker Containers using Kubernetes and Azure Container Service
Scaling Docker Containers using Kubernetes and Azure Container Service
 
Lksn2017 itnsa modul2
Lksn2017 itnsa modul2Lksn2017 itnsa modul2
Lksn2017 itnsa modul2
 

Recently uploaded

Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 

Recently uploaded (20)

Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 

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

  • 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. 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. 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. 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. 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. 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. Let’s confirm... $ nova list $ neutron port-list --device-id <instance-uuid> $ neutron port-show <port-uuid>
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Useful links • DNS Integration in OpenStack Networking: • http://docs.openstack.org/mitaka/networking-guide/adv-config-dns. html
  • 24. Thank You Visit the IBM Booth in the Marketplace