Over time docs were added or updated such that they were no longer in alphabetical order based on the index order or their title strings. Tried to fix it up a bit along with some capitalization. Trivialfix Change-Id: I948b2a1c86faaffed07adcf0198a3fba72401abe
16 KiB
External DNS Service Integration
Since the Mitaka release, neutron has an interface defined to interact with an external DNS service. This interface is based on an abstract driver that can be used as the base class to implement concrete drivers to interact with various DNS services. The reference implementation of such a driver integrates neutron with OpenStack Designate.
This integration allows users to publish dns_name and dns_domain attributes associated with floating IP addresses, ports, and networks in an external DNS service.
Changes to the neutron API
To support integration with an external DNS service, the dns_name and dns_domain attributes were added to floating ips, ports and networks. The dns_name specifies the name to be associated with a corresponding IP address, both of which will be published to an existing domain with the name dns_domain in the external DNS service.
Specifically, floating ips, ports and networks are extended as follows:
- Floating ips have a dns_name and a dns_domain attribute.
- Ports have a dns_name attribute.
- Networks have a dns_domain attributes.
Pre-configured domains for projects and users
ML2 plugin extension dns_domain_keywords
provides same
dns integration as dns_domain_ports
and
subnet_dns_publish_fixed_ip
and it also allows to configure
network's dns_domain with some specific keywords:
<project_id>
, <project_name>
,
<user_id>
, <user_name>
. Please see
example below for more details.
Create DNS zone.
0511951bd56e4a0aac27ac65e00bddd0
is ID of the project used in the example$ openstack zone create 0511951bd56e4a0aac27ac65e00bddd0.example.com. --email admin@0511951bd56e4a0aac27ac65e00bddd0.example.com +----------------+----------------------------------------------------+ | Field | Value | +----------------+----------------------------------------------------+ | action | CREATE | | attributes | | | created_at | 2021-02-19T14:48:06.000000 | | description | None | | email | admin@0511951bd56e4a0aac27ac65e00bddd0.example.com | | id | c14a8edc-d0b9-4cdd-93f1-1ab5a5f5ff9d | | masters | | | name | 0511951bd56e4a0aac27ac65e00bddd0.example.com. | | pool_id | 794ccc2c-d751-44fe-b57f-8894c9f5c842 | | project_id | 0511951bd56e4a0aac27ac65e00bddd0 | | serial | 1613746085 | | status | PENDING | | transferred_at | None | | ttl | 3600 | | type | PRIMARY | | updated_at | None | | version | 1 | +----------------+----------------------------------------------------+
Create network with dns_domain
$ openstack network create dns-test-network --dns-domain "<project_id>.demo.net." +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | UP | | availability_zone_hints | | | availability_zones | | | created_at | 2021-02-19T15:16:36Z | | description | | | dns_domain | <project_id>.demo.net. | | id | fb247287-43aa-4a83-b768-a3b34dc6735a | | ipv4_address_scope | None | | ipv6_address_scope | None | | is_default | False | | is_vlan_transparent | None | | mtu | 1450 | | name | dns-test-network | | port_security_enabled | True | | project_id | 0511951bd56e4a0aac27ac65e00bddd0 | | provider:network_type | vxlan | | provider:physical_network | None | | provider:segmentation_id | 1003 | | qos_policy_id | None | | revision_number | 1 | | router:external | Internal | | segments | None | | shared | False | | status | ACTIVE | | subnets | | | tags | | | updated_at | 2021-02-19T15:16:37Z | +---------------------------+--------------------------------------+ $ openstack subnet create --network dns-test-network --subnet-range 192.168.100.0/24 --dns-publish-fixed-ip dns-test-subnet +----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | allocation_pools | 192.168.100.2-192.168.100.254 | | cidr | 192.168.100.0/24 | | created_at | 2021-02-19T15:21:50Z | | description | | | dns_nameservers | | | dns_publish_fixed_ip | True | | enable_dhcp | True | | gateway_ip | 192.168.100.1 | | host_routes | | | id | 2547a3f2-374f-4262-aed5-3a69af73e732 | | ip_version | 4 | | ipv6_address_mode | None | | ipv6_ra_mode | None | | name | dns-test-subnet | | network_id | fb247287-43aa-4a83-b768-a3b34dc6735a | | prefix_length | None | | project_id | 0511951bd56e4a0aac27ac65e00bddd0 | | revision_number | 0 | | segment_id | None | | service_types | | | subnetpool_id | None | | tags | | | updated_at | 2021-02-19T15:21:50Z | +----------------------+--------------------------------------+
Create port in that network
$ openstack port create --network dns-test-network --dns-name dns-test-port test-port +-------------------------+---------------------------------------------------------------------------------------------------------------------------+ | Field | Value | +-------------------------+---------------------------------------------------------------------------------------------------------------------------+ | admin_state_up | UP | | allowed_address_pairs | | | binding_host_id | | | binding_profile | | | binding_vif_details | | | binding_vif_type | unbound | | binding_vnic_type | normal | | created_at | 2021-02-19T15:22:51Z | | data_plane_status | None | | description | | | device_id | | | device_owner | | | device_profile | None | | dns_assignment | fqdn='dns-test-port.0511951bd56e4a0aac27ac65e00bddd0.example.com.', hostname='dns-test-port', ip_address='192.168.100.17' | | dns_domain | | | dns_name | dns-test-port | | extra_dhcp_opts | | | fixed_ips | ip_address='192.168.100.17', subnet_id='2547a3f2-374f-4262-aed5-3a69af73e732' | | id | f30908a1-6ef5-4137-bff4-c1205c6660ee | | ip_allocation | None | | mac_address | fa:16:3e:e8:33:b8 | | name | test-port | | network_id | fb247287-43aa-4a83-b768-a3b34dc6735a | | numa_affinity_policy | None | | port_security_enabled | True | | project_id | 0511951bd56e4a0aac27ac65e00bddd0 | | propagate_uplink_status | None | | qos_network_policy_id | None | | qos_policy_id | None | | resource_request | None | | revision_number | 1 | | security_group_ids | 4425c3fd-6705-4134-9878-07b333d81314 | | status | DOWN | | tags | | | trunk_details | None | | updated_at | 2021-02-19T15:22:51Z | +-------------------------+---------------------------------------------------------------------------------------------------------------------------+
Test if recordset was created properly in the DNS zone
$ openstack recordset list c14a8edc-d0b9-4cdd-93f1-1ab5a5f5ff9d +--------------------------------------+-------------------------------------------------------------+------+------------------------------------------------------------------------------------------------------+--------+--------+ | id | name | type | records | status | action | +--------------------------------------+-------------------------------------------------------------+------+------------------------------------------------------------------------------------------------------+--------+--------+ | 1c302468-4e30-466e-9330-e4cd9191ff99 | 0511951bd56e4a0aac27ac65e00bddd0.example.com. | SOA | ns1.devstack.org. admin.0511951bd56e4a0aac27ac65e00bddd0.example.com. 1613748171 3549 600 86400 3600 | ACTIVE | NONE | | 99ce92d1-8c7a-4193-aeb2-44835048a6fa | 0511951bd56e4a0aac27ac65e00bddd0.example.com. | NS | ns1.devstack.org. | ACTIVE | NONE | | 01f0569d-ce81-4424-915f-c6fe6229256e | dns-test-port.0511951bd56e4a0aac27ac65e00bddd0.example.com. | A | 192.168.100.17 | ACTIVE | NONE | +--------------------------------------+-------------------------------------------------------------+------+------------------------------------------------------------------------------------------------------+--------+--------+