DNS 与外部服务的集成¶
此页面作为使用网络服务中的 DNS 集成功能与外部 DNSaaS(DNS-as-a-Service)的指南。
作为先决条件,需要启用网络服务提供的内部 DNS 功能,请参阅 DNS 集成。
配置 OpenStack Networking 以与外部 DNS 服务集成¶
配置与外部 DNS 服务集成的第一步是启用 网络服务内部 DNS 解析 中描述的功能。完成此操作后,用户必须执行以下步骤并重启 neutron-server。
编辑
/etc/neutron/neutron.conf的[default]部分,并在参数external_dns_driver中指定要使用的外部 DNS 服务驱动程序。有效的选项在命名空间neutron.services.external_dns_drivers中定义。以下示例显示了如何为 OpenStack DNS 服务设置驱动程序external_dns_driver = designate如果 OpenStack DNS 服务是目标外部 DNS,则
/etc/neutron/neutron.conf的[designate]部分必须定义以下参数url:OpenStack DNS 服务的公共端点 URL。请注意,这必须始终是当前版本化的端点。auth_type:要使用的授权插件。通常,这应该是password,请参阅 https://docs.openstack.org/keystoneauth/2025.2/authentication-plugins.html 以获取其他选项。auth_url:身份服务授权端点 URL。网络服务将使用此端点以用户身份进行身份验证,以创建和更新反向查找(PTR)区域。username:网络服务用于创建和更新反向查找(PTR)区域的用户名。password:用于创建和更新反向查找(PTR)区域的网络服务的用户的密码。project_name:网络服务用于创建和更新反向查找(PTR)区域的项目名称。project_domain_name:网络服务用于创建和更新反向查找(PTR)区域的项目域名称。user_domain_name:网络服务用于创建和更新反向查找(PTR)区域的用户的域名称。region_name:网络服务用于创建和更新反向查找(PTR)区域的区域名称。allow_reverse_dns_lookup:一个布尔值,指定是否启用反向查找(PTR)记录的创建。ipv4_ptr_zone_prefix_size:IPv4 反向查找(PTR)区域前缀的大小(以位为单位)。ipv6_ptr_zone_prefix_size:IPv6 反向查找(PTR)区域前缀的大小(以位为单位)。ptr_zone_email:创建新的反向查找(PTR)区域时使用的电子邮件地址。默认值为admin@<dns_domain>,其中<dns_domain>是该区域中第一个记录的域。insecure:是否禁用 SSL 证书验证。默认情况下,证书是经过验证的。cafile:有效证书颁发机构(CA)证书的路径。可选,默认使用系统 CA。
以下是一个示例
[designate] url = http://192.0.2.240:9001/v2 auth_type = password auth_url = http://192.0.2.240:5000 username = neutron password = PASSWORD project_name = service project_domain_name = Default user_domain_name = Default allow_reverse_dns_lookup = True ipv4_ptr_zone_prefix_size = 24 ipv6_ptr_zone_prefix_size = 116 ptr_zone_email = admin@example.org cafile = /etc/ssl/certs/my_ca_cert
一旦 neutron-server 已配置并重启,用户将拥有涵盖以下部分中描述的三个用例的功能。在下面描述的每个用例中
示例假定 OpenStack DNS 服务作为外部 DNS。
将在 DNS 服务中创建 A、AAAA 和 PTR 记录。
在执行任何用例之前,用户必须在 DNS 服务下创建其项目中的 DNS 区域,在该区域中将创建 A 和 AAAA 记录。对于以下用例的描述,假定之前已创建区域
example.org.。PTR 记录将在由
project_name上面指定的项目拥有的区域中创建。
用例 1:浮动 IP 与关联端口 DNS 属性一起发布¶
在此用例中,浮动 IP 的地址与关联端口的 dns_name 和端口网络的 dns_domain 一起在外部 DNS 服务中发布。要在此用例中执行的步骤如下
将有效域名分配给网络的
dns_domain属性。此名称必须以句点 (.) 结尾。启动实例,或者,创建一个端口,为其
dns_name属性指定一个有效值。如果端口将用于实例启动,则分配给dns_name的值必须等于 Compute 服务将分配给实例的hostname。否则,启动将失败。创建一个浮动 IP 并将其关联到端口。
以下是这些步骤的示例
$ openstack network set --dns-domain example.org. 38c5e950-b450-4c30-83d4-ee181c28aad3
$ openstack network show 38c5e950-b450-4c30-83d4-ee181c28aad3
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2016-05-04T19:27:34Z |
| description | |
| dns_domain | example.org. |
| id | 38c5e950-b450-4c30-83d4-ee181c28aad3 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| mtu | 1450 |
| name | private |
| port_security_enabled | True |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| provider:network_type | vlan |
| provider:physical_network | None |
| provider:segmentation_id | 24 |
| qos_policy_id | None |
| revision_number | 1 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | 43414c53-62ae-49bc-aa6c-c9dd7705818a |
| | 5b9282a1-0be1-4ade-b478-7868ad2a16ff |
| tags | |
| updated_at | 2016-05-04T19:27:34Z |
+---------------------------+--------------------------------------+
$ openstack server create --image cirros --flavor 42 \
--nic net-id=38c5e950-b450-4c30-83d4-ee181c28aad3 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Field | Value |
+--------------------------------------+----------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | oTLQLR3Kezmt |
| config_drive | |
| created | 2016-02-15T19:27:34Z |
| flavor | m1.nano (42) |
| hostId | |
| id | 43f328bb-b2d1-4cf1-a36f-3b2593397cb1 |
| image | cirros-0.3.5-x86_64-uec (b9d981eb-d21c-4ce2-9dbc-dd38f3d9015f) |
| key_name | - |
| locked | False |
| metadata | {} |
| name | my_vm |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | d5660cb1e6934612a01b4fb2fb630725 |
| updated | 2016-02-15T19:27:34Z |
| user_id | 8bb6e578cba24e7db9d3810633124525 |
+--------------------------------------+----------------------------------------------------------------+
$ openstack server list
+--------------------------------------+-------+--------+----------------------------------------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------+--------+----------------------------------------------------------+--------+---------+
| 43f328bb-b2d1-4cf1-a36f-3b2593397cb1 | my_vm | ACTIVE | private=fda4:653e:71b0:0:f816:3eff:fe16:b5f2, 192.0.2.15 | cirros | m1.nano |
+--------------------------------------+-------+--------+----------------------------------------------------------+--------+---------+
$ openstack port list --device-id 43f328bb-b2d1-4cf1-a36f-3b2593397cb1
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+--------+
| da0b1f75-c895-460f-9fc1-4d6ec84cf85f | | fa:16:3e:16:b5:f2 | ip_address='192.0.2.15', subnet_id='5b9282a1-0be1-4ade-b478-7868ad2a16ff' | ACTIVE |
| | | | ip_address='fda4:653e:71b0:0:f816:3eff:fe16:b5f2', subnet_id='43414c53-62ae-49bc-aa6c-c9dd7705818a' | |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+--------+
$ openstack port show da0b1f75-c895-460f-9fc1-4d6ec84cf85f
+-----------------------+------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| allowed_address_pairs | |
| binding_host_id | vultr.guest |
| binding_profile | |
| binding_vif_details | datapath_type='system', ovs_hybrid_plug='True', port_filter='True' |
| binding_vif_type | ovs |
| binding_vnic_type | normal |
| created_at | 2016-02-15T19:27:34Z |
| data_plane_status | None |
| description | |
| device_id | 43f328bb-b2d1-4cf1-a36f-3b2593397cb1 |
| device_owner | compute:None |
| dns_assignment | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='192.0.2.15' |
| | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='fda4:653e:71b0:0:f816:3eff:fe16:b5f2' |
| dns_domain | example.org. |
| dns_name | my-vm |
| extra_dhcp_opts | |
| fixed_ips | ip_address='192.0.2.15', subnet_id='5b9282a1-0be1-4ade-b478-7868ad2a16ff' |
| | ip_address='fda4:653e:71b0:0:f816:3eff:fe16:b5f2', subnet_id='43414c53-62ae-49bc-aa6c-c9dd7705818a' |
| id | da0b1f75-c895-460f-9fc1-4d6ec84cf85f |
| mac_address | fa:16:3e:16:b5:f2 |
| name | |
| network_id | 38c5e950-b450-4c30-83d4-ee181c28aad3 |
| port_security_enabled | True |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| qos_policy_id | None |
| revision_number | 1 |
| security_group_ids | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635 |
| status | ACTIVE |
| tags | |
| trunk_details | None |
| updated_at | 2016-02-15T19:27:34Z |
+-----------------------+------------------------------------------------------------------------------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| a5fe696d-203f-4018-b0d8-590221adb513 | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| e7c05a5d-83a0-4fe5-8bd5-ab058a3326aa | example.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1513767794 3532 600 86400 3600 | ACTIVE | NONE |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
$ openstack floating ip create 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a \
--port da0b1f75-c895-460f-9fc1-4d6ec84cf85f
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| created_at | 2016-02-15T20:27:34Z |
| description | |
| dns_domain | |
| dns_name | |
| fixed_ip_address | 192.0.2.15 |
| floating_ip_address | 198.51.100.4 |
| floating_network_id | 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a |
| id | e78f6eb1-a35f-4a90-941d-87c888d5fcc7 |
| name | 198.51.100.4 |
| port_id | da0b1f75-c895-460f-9fc1-4d6ec84cf85f |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| qos_policy_id | None |
| revision_number | 1 |
| router_id | 970ebe83-c4a3-4642-810e-43ab7b0c2b5f |
| status | DOWN |
| subnet_id | None |
| tags | [] |
| updated_at | 2016-02-15T20:27:34Z |
+---------------------+--------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| a5fe696d-203f-4018-b0d8-590221adb513 | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| e7c05a5d-83a0-4fe5-8bd5-ab058a3326aa | example.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1513768814 3532 600 86400 3600 | ACTIVE | NONE |
| 5ff53fd0-3746-48da-b9c9-77ed3004ec67 | my-vm.example.org. | A | 198.51.100.4 | ACTIVE | NONE |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
在此示例中,请注意,当浮动 IP 与端口关联时,数据会在 DNS 服务中发布。
以下是为此示例创建的 PTR 记录。请注意,对于 IPv4,ipv4_ptr_zone_prefix_size 的值为 24。此外,由于 PTR 记录的区域是在 service 项目中创建的,因此您需要使用管理员凭据才能查看它。
$ openstack recordset list --all-projects 100.51.198.in-addr.arpa.
+--------------------------------------+----------------------------------+----------------------------+------+---------------------------------------------------------------------+--------+--------+
| id | project_id | name | type | data | status | action |
+--------------------------------------+----------------------------------+-----------------------------------+---------------------------------------------------------------------+--------+--------+
| 2dd0b894-25fa-4563-9d32-9f13bd67f329 | 07224d17d76d42499a38f00ba4339710 | 100.51.198.in-addr.arpa. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 47b920f1-5eff-4dfa-9616-7cb5b7cb7ca6 | 07224d17d76d42499a38f00ba4339710 | 100.51.198.in-addr.arpa. | SOA | ns1.devstack.org. admin.example.org. 1455564862 3600 600 86400 3600 | ACTIVE | NONE |
| fb1edf42-abba-410c-8397-831f45fd0cd7 | 07224d17d76d42499a38f00ba4339710 | 4.100.51.198.in-addr.arpa. | PTR | my-vm.example.org. | ACTIVE | NONE |
+--------------------------------------+----------------------------------+----------------------------+------+---------------------------------------------------------------------+--------+--------+
用例 2:浮动 IP 在外部 DNS 服务中发布¶
在此用例中,用户在创建时将 dns_name 和 dns_domain 属性分配给浮动 IP。浮动 IP 数据在创建后立即在外部 DNS 服务中可见。浮动 IP 可以与端口一起创建,也可以稍后关联。以下示例显示用户启动实例,然后创建与实例分配的端口关联的浮动 IP
$ openstack network show 38c5e950-b450-4c30-83d4-ee181c28aad3
+---------------------------+----------------------------------------------------------------------------+
| Field | Value |
+---------------------------+----------------------------------------------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2016-05-04T19:27:34Z |
| description | |
| dns_domain | example.org. |
| id | 38c5e950-b450-4c30-83d4-ee181c28aad3 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| mtu | 1450 |
| name | private |
| port_security_enabled | True |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| provider:network_type | vlan |
| provider:physical_network | None |
| provider:segmentation_id | 24 |
| qos_policy_id | None |
| revision_number | 1 |
| router:external | Internal |
| segments | None |
| shared | False |
| status | ACTIVE |
| subnets | 43414c53-62ae-49bc-aa6c-c9dd7705818a, 5b9282a1-0be1-4ade-b478-7868ad2a16ff |
| tags | |
| updated_at | 2016-05-04T19:27:34Z |
+---------------------------+----------------------------------------------------------------------------+
$ openstack server create --image cirros --flavor 42 \
--nic net-id=38c5e950-b450-4c30-83d4-ee181c28aad3 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Field | Value |
+--------------------------------------+----------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | HLXGznYqXM4J |
| config_drive | |
| created | 2016-02-15T19:42:44Z |
| flavor | m1.nano (42) |
| hostId | |
| id | 71fb4ac8-eed8-4644-8113-0641962bb125 |
| image | cirros-0.3.5-x86_64-uec (b9d981eb-d21c-4ce2-9dbc-dd38f3d9015f) |
| key_name | - |
| locked | False |
| metadata | {} |
| name | my_vm |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | d5660cb1e6934612a01b4fb2fb630725 |
| updated | 2016-02-15T19:42:44Z |
| user_id | 8bb6e578cba24e7db9d3810633124525 |
+--------------------------------------+----------------------------------------------------------------+
$ openstack server list
+--------------------------------------+-------+--------+----------------------------------------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------+--------+----------------------------------------------------------+--------+---------+
| 71fb4ac8-eed8-4644-8113-0641962bb125 | my_vm | ACTIVE | private=fda4:653e:71b0:0:f816:3eff:fe24:8614, 192.0.2.16 | cirros | m1.nano |
+--------------------------------------+-------+--------+----------------------------------------------------------+--------+---------+
$ openstack port list --device-id 71fb4ac8-eed8-4644-8113-0641962bb125
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------------------------------+--------+
| 1e7033fb-8e9d-458b-89ed-8312cafcfdcb | | fa:16:3e:24:86:14 | ip_address='192.0.2.16', subnet_id='5b9282a1-0be1-4ade-b478-7868ad2a16ff' | ACTIVE |
| | | | ip_address='fda4:653e:71b0:0:f816:3eff:fe24:8614', subnet_id='43414c53-62ae-49bc-aa6c-c9dd7705818a' | |
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------------------------------+--------+
$ openstack port show 1e7033fb-8e9d-458b-89ed-8312cafcfdcb
+-----------------------+------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-----------------------+------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| allowed_address_pairs | |
| binding_host_id | vultr.guest |
| binding_profile | |
| binding_vif_details | datapath_type='system', ovs_hybrid_plug='True', port_filter='True' |
| binding_vif_type | ovs |
| binding_vnic_type | normal |
| created_at | 2016-02-15T19:42:44Z |
| data_plane_status | None |
| description | |
| device_id | 71fb4ac8-eed8-4644-8113-0641962bb125 |
| device_owner | compute:None |
| dns_assignment | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='192.0.2.16' |
| | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='fda4:653e:71b0:0:f816:3eff:fe24:8614' |
| dns_domain | example.org. |
| dns_name | my-vm |
| extra_dhcp_opts | |
| fixed_ips | ip_address='192.0.2.16', subnet_id='5b9282a1-0be1-4ade-b478-7868ad2a16ff' |
| | ip_address='fda4:653e:71b0:0:f816:3eff:fe24:8614', subnet_id='43414c53-62ae-49bc-aa6c-c9dd7705818a' |
| id | 1e7033fb-8e9d-458b-89ed-8312cafcfdcb |
| mac_address | fa:16:3e:24:86:14 |
| name | |
| network_id | 38c5e950-b450-4c30-83d4-ee181c28aad3 |
| port_security_enabled | True |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| qos_policy_id | None |
| revision_number | 1 |
| security_group_ids | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635 |
| status | ACTIVE |
| tags | |
| trunk_details | None |
| updated_at | 2016-02-15T19:42:44Z |
+-----------------------+------------------------------------------------------------------------------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| 56ca0b88-e343-4c98-8faa-19746e169baf | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 10a36008-6ecf-47c3-b321-05652a929b04 | example.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1455565110 3532 600 86400 3600 | ACTIVE | NONE |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
$ openstack floating ip create --dns-domain example.org. --dns-name my-floatingip 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a
+---------------------+--------------------------------------+
| Field | Value |
+---------------------+--------------------------------------+
| created_at | 2019-06-12T15:54:45Z |
| description | |
| dns_domain | example.org. |
| dns_name | my-floatingip |
| fixed_ip_address | None |
| floating_ip_address | 198.51.100.5 |
| floating_network_id | 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a |
| id | 3ae82f53-3349-4aac-810e-ed2a8f6374b8 |
| name | 198.51.100.53 |
| port_details | None |
| port_id | None |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| qos_policy_id | None |
| revision_number | 0 |
| router_id | None |
| status | DOWN |
| subnet_id | None |
| tags | [] |
| updated_at | 2019-06-12T15:54:45Z |
+---------------------+--------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+----------------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+----------------------------+------+-----------------------------------------------------------------------+--------+--------+
| 56ca0b88-e343-4c98-8faa-19746e169baf | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 10a36008-6ecf-47c3-b321-05652a929b04 | example.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1455565110 3532 600 86400 3600 | ACTIVE | NONE |
| 8884c56f-3ef5-446e-ae4d-8053cc8bc2b4 | my-floatingip.example.org. | A | 198.51.100.53 | ACTIVE | NONE |
+--------------------------------------+----------------------------+------+-----------------------------------------------------------------------+--------+--------+
请注意,在此用例中
浮动 IP 的
dns_name和dns_domain属性必须在创建时一起指定。它们不能单独分配给浮动 IP,也不能在浮动 IP 创建后更改。浮动 IP 的
dns_name和dns_domain,为了在外部 DNS 服务中发布,优先于其关联端口的dns_name和端口网络的dns_domain,无论是否指定它们。只有浮动 IP 的dns_name和dns_domain在外部 DNS 服务中发布。
以下是为此示例创建的 PTR 记录。请注意,对于 IPv4,ipv4_ptr_zone_prefix_size 的值为 24。此外,由于 PTR 记录的区域是在配置的 [designate] 部分中指定的项目(通常是 service 项目)中创建的,因此您需要使用管理员凭据才能查看它。
$ openstack recordset list --all-projects 100.51.198.in-addr.arpa.
+--------------------------------------+----------------------------------+----------------------------+------+---------------------------------------------------------------------+--------+--------+
| id | project_id | name | type | data | status | action |
+--------------------------------------+----------------------------------+-----------------------------------+---------------------------------------------------------------------+--------+--------+
| 2dd0b894-25fa-4563-9d32-9f13bd67f329 | 07224d17d76d42499a38f00ba4339710 | 100.51.198.in-addr.arpa. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 47b920f1-5eff-4dfa-9616-7cb5b7cb7ca6 | 07224d17d76d42499a38f00ba4339710 | 100.51.198.in-addr.arpa. | SOA | ns1.devstack.org. admin.example.org. 1455564862 3600 600 86400 3600 | ACTIVE | NONE |
| 589a0171-e77a-4ab6-ba6e-23114f2b9366 | 07224d17d76d42499a38f00ba4339710 | 5.100.51.198.in-addr.arpa. | PTR | my-floatingip.example.org. | ACTIVE | NONE |
+--------------------------------------+----------------------------------+----------------------------+------+---------------------------------------------------------------------+--------+--------+
用例 3:端口直接在外部 DNS 服务中发布¶
在这种情况下,用户正在创建端口或在可从外部访问的网络上启动实例。这里有多种可能的场景,具体取决于 Neutron 配置中启用了哪个 DNS 扩展。以下是按优先级降序描述的这些扩展。
用例 3a:subnet_dns_publish_fixed_ip 扩展¶
当启用 subnet_dns_publish_fixed_ip 扩展时,可以为子网选择是否应发布分配给该子网端口的固定 IP 的 DNS 记录。这通过此扩展添加到子网资源定义的 dns_publish_fixed_ips 属性来实现。它是一个布尔标志,默认值为 False,但可以在创建或更新子网时设置为 True。当标志为 True 时,将发布此子网的所有固定 IP 在外部 DNS 服务中,同时来自具有标志设置为 False 的其他子网的 IP 不会发布,即使它们否则满足以下用例中的标准。
此用例的典型场景是双栈部署,其中租户网络将配置为 IPv4 和 IPv6 子网。IPv4 子网通常将使用一些 RFC1918 地址空间并通过附加的路由器进行 NAT 处理到外部,因此来自此子网的固定 IP 不会全局路由,也不应在 DNS 服务中发布。(仍然可以将浮动 IP 绑定到这些固定 IP,并且可以发布这些浮动 IP 的 DNS 记录,如上述用例 1 和 2 中所述)。
但是对于 IPv6 子网,不会发生 NAT,而是将配置具有一些全局可路由前缀的子网,因此用户将希望发布来自此子网的固定 IP 的 DNS 记录。这可以通过将 IPv6 子网的 dns_publish_fixed_ips 属性设置为 True,同时将 IPv4 子网的标志设置为 False 来实现。示例
$ openstack network create dualstack
... output omitted ...
$ openstack subnet create --network dualstack dualstackv4 --subnet-range 192.0.2.0/24
... output omitted ...
$ openstack subnet create --network dualstack dualstackv6 --protocol ipv6 --subnet-range 2001:db8:42:42::/64 --dns-publish-fixed-ip
... output omitted ...
$ openstack zone create example.org. --email mail@example.org
... output omitted ...
$ openstack recordset list example.org.
+--------------------------------------+--------------+------+--------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------+------+--------------------------------------------------------------------+--------+--------+
| 404e9846-1482-433b-8bbc-67677e587d28 | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| de73576a-f9c7-4892-934c-259b77ff02c0 | example.org. | SOA | ns1.devstack.org. mail.example.org. 1575897792 3559 600 86400 3600 | ACTIVE | NONE |
+--------------------------------------+--------------+------+--------------------------------------------------------------------+--------+--------+
$ openstack port create port1 --dns-domain example.org. --dns-name port1 --network dualstack
+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| allowed_address_pairs | |
| binding_host_id | None |
| binding_profile | None |
| binding_vif_details | None |
| binding_vif_type | None |
| binding_vnic_type | normal |
| created_at | 2019-12-09T13:23:52Z |
| data_plane_status | None |
| description | |
| device_id | |
| device_owner | |
| dns_assignment | fqdn='port1.openstackgate.local.', hostname='port1', ip_address='192.0.2.100' |
| | fqdn='port1.openstackgate.local.', hostname='port1', ip_address='2001:db8:42:42::2a2' |
| dns_domain | example.org. |
| dns_name | port1 |
| extra_dhcp_opts | |
| fixed_ips | ip_address='192.0.2.100', subnet_id='47cc9a39-c88b-4082-a52c-1237c2a1d479' |
| | ip_address='2001:db8:42:42::2a2', subnet_id='f9c04195-1000-4575-a203-3c174772617f' |
| id | f8bc991b-1f84-435a-a5f8-814bd8b9ae9f |
| location | cloud='devstack', project.domain_id='default', project.domain_name=, project.id='86de4dab952d48f79e625b106f7a75f7', project.name='demo', region_name='RegionOne', zone= |
| mac_address | fa:16:3e:13:7a:56 |
| name | port1 |
| network_id | fa8118ed-b7c2-41b8-89bc-97e46f0491ac |
| port_security_enabled | True |
| project_id | 86de4dab952d48f79e625b106f7a75f7 |
| propagate_uplink_status | None |
| qos_policy_id | None |
| resource_request | None |
| revision_number | 1 |
| security_group_ids | f0b02df0-a0b9-4ce8-b067-8b61a8679e9d |
| status | DOWN |
| tags | |
| trunk_details | None |
| updated_at | 2019-12-09T13:23:53Z |
+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+--------------------+------+--------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------------+------+--------------------------------------------------------------------+--------+--------+
| 404e9846-1482-433b-8bbc-67677e587d28 | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| de73576a-f9c7-4892-934c-259b77ff02c0 | example.org. | SOA | ns1.devstack.org. mail.example.org. 1575897833 3559 600 86400 3600 | ACTIVE | NONE |
| 85ce74a5-7dd6-42d3-932c-c9a029dea05e | port1.example.org. | AAAA | 2001:db8:42:42::2a2 | ACTIVE | NONE |
+--------------------------------------+--------------------+------+--------------------------------------------------------------------+--------+--------+
用例 3b:dns_domain_ports 扩展¶
如果已配置 dns_domain for ports 扩展,用户可以在其 dns_domain 属性中指定一个非空值来创建端口。如果端口是在可从外部访问的网络中创建的,则将发布此端口的 DNS 记录
$ openstack port create --network 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 --dns-name my-vm --dns-domain port-domain.org. test
+-------------------------+-------------------------------------------------------------------------------+
| Field | Value |
+-------------------------+-------------------------------------------------------------------------------+
| admin_state_up | UP |
| allowed_address_pairs | |
| binding_host_id | None |
| binding_profile | None |
| binding_vif_details | None |
| binding_vif_type | None |
| binding_vnic_type | normal |
| created_at | 2019-06-12T15:43:29Z |
| data_plane_status | None |
| description | |
| device_id | |
| device_owner | |
| dns_assignment | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='203.0.113.9' |
| | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='2001:db8:10::9' |
| dns_domain | port-domain.org. |
| dns_name | my-vm |
| extra_dhcp_opts | |
| fixed_ips | ip_address='203.0.113.9', subnet_id='277eca5d-9869-474b-960e-6da5951d09f7' |
| | ip_address='2001:db8:10::9', subnet_id='eab47748-3f0a-4775-a09f-b0c24bb64bc4' |
| id | 57541c27-f8a9-41f1-8dde-eb10155496e6 |
| mac_address | fa:16:3e:55:d6:c7 |
| name | test |
| network_id | 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 |
| port_security_enabled | True |
| project_id | 07b21ad4-edb6-420b-bd76-9bb4aab0d135 |
| propagate_uplink_status | None |
| qos_policy_id | None |
| resource_request | None |
| revision_number | 1 |
| security_group_ids | 82227b10-d135-4bca-b41f-63c1f2286b3e |
| status | DOWN |
| tags | |
| trunk_details | None |
| updated_at | 2019-06-12T15:43:29Z |
+-------------------------+-------------------------------------------------------------------------------+
在这种情况下,端口的 dns_name(my-vm)将在 port-domain.org. 区域中发布,如下所示
$ openstack recordset list port-domain.org.
+--------------------------------------+-------------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+-------------------------+------+-----------------------------------------------------------------------+--------+--------+
| 03e5a35b-d984-4d10-942a-2de8ccb9b941 | port-domain.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1503272259 3549 600 86400 3600 | ACTIVE | NONE |
| d2dd1dfe-531d-4fea-8c0e-f5b559942ac5 | port-domain.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 67a8e83d-7e3c-4fb1-9261-0481318bb7b5 | my-vm.port-domain.org. | A | 203.0.113.9 | ACTIVE | NONE |
| 5a4f671c-9969-47aa-82e1-e05754021852 | my-vm.port-domain.org. | AAAA | 2001:db8:10::9 | ACTIVE | NONE |
+--------------------------------------+-------------------------+------+-----------------------------------------------------------------------+--------+--------+
注意
如果端口及其网络在其 dns_domain 属性中都有一个有效的非空字符串,则端口的 dns_domain 优先于网络的 dns_domain。
注意
分配给端口的 dns_domain 属性的名称必须以句点 (.) 结尾。
注意
在上述示例中,必须先创建 port-domain.org. 区域,Neutron 才能将任何端口数据发布到该区域。
注意
有关如何创建外部可访问网络的详细说明,请参阅 用于用例 3b 和 3c 的外部可访问网络配置。
用例 3c:dns 扩展¶
如果用户希望在网络 dns_domain 属性指定的区域中的外部 DNS 服务中发布端口,则需要执行以下步骤:
将有效域名分配给网络的
dns_domain属性。此名称必须以句点 (.) 结尾。启动一个实例,指定外部可访问网络。或者,在外部可访问网络上创建一个端口,并为其
dns_name属性指定一个有效值。如果端口将用于实例启动,则分配给dns_name的值必须等于 Compute 服务将分配给实例的hostname。否则,启动将失败。
执行这些步骤后,端口的 DNS 数据将在外部 DNS 服务中发布。这是一个示例:
$ openstack network list
+--------------------------------------+----------+-----------------------------------------------------------------------------+
| ID | Name | Subnets |
+--------------------------------------+----------+-----------------------------------------------------------------------------+
| 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a | public | a67cfdf7-9d5d-406f-8a19-3f38e4fc3e74, cbd8c6dc-ca81-457e-9c5d-f8ece7ef67f8 |
| 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 | external | 277eca5d-9869-474b-960e-6da5951d09f7, eab47748-3f0a-4775-a09f-b0c24bb64bc4 |
| bf2802a0-99a0-4e8c-91e4-107d03f158ea | my-net | 6141b474-56cd-430f-b731-71660bb79b79 |
| 38c5e950-b450-4c30-83d4-ee181c28aad3 | private | 43414c53-62ae-49bc-aa6c-c9dd7705818a, 5b9282a1-0be1-4ade-b478-7868ad2a16ff |
+--------------------------------------+----------+-----------------------------------------------------------------------------+
$ openstack network set --dns-domain example.org. 37aaff3a-6047-45ac-bf4f-a825e56fd2b3
$ openstack network show 37aaff3a-6047-45ac-bf4f-a825e56fd2b3
+---------------------------+----------------------------------------------------------------------------+
| Field | Value |
+---------------------------+----------------------------------------------------------------------------+
| admin_state_up | UP |
| availability_zone_hints | |
| availability_zones | nova |
| created_at | 2016-02-14T19:42:44Z |
| description | |
| dns_domain | example.org. |
| id | 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 |
| ipv4_address_scope | None |
| ipv6_address_scope | None |
| is_default | None |
| is_vlan_transparent | None |
| mtu | 1450 |
| name | external |
| port_security_enabled | True |
| project_id | 04fc2f83966245dba907efb783f8eab9 |
| provider:network_type | vlan |
| provider:physical_network | None |
| provider:segmentation_id | 2016 |
| qos_policy_id | None |
| revision_number | 4 |
| router:external | Internal |
| segments | None |
| shared | True |
| status | ACTIVE |
| subnets | eab47748-3f0a-4775-a09f-b0c24bb64bc4, 277eca5d-9869-474b-960e-6da5951d09f7 |
| tags | |
| updated_at | 2016-02-15T13:42:44Z |
+---------------------------+----------------------------------------------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+--------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------+------+-----------------------------------------------------------------------+--------+--------+
| a5fe696d-203f-4018-b0d8-590221adb513 | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| e7c05a5d-83a0-4fe5-8bd5-ab058a3326aa | example.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1513767619 3532 600 86400 3600 | ACTIVE | NONE |
+--------------------------------------+--------------+------+-----------------------------------------------------------------------+--------+--------+
$ openstack port create --network 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 --dns-name my-vm test
+-----------------------+-------------------------------------------------------------------------------+
| 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 | 2016-02-15T16:42:44Z |
| data_plane_status | None |
| description | |
| device_id | |
| device_owner | |
| dns_assignment | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='203.0.113.9' |
| | fqdn='my-vm.example.org.', hostname='my-vm', ip_address='2001:db8:10::9' |
| dns_domain | None |
| dns_name | my-vm |
| extra_dhcp_opts | |
| fixed_ips | ip_address='203.0.113.9', subnet_id='277eca5d-9869-474b-960e-6da5951d09f7' |
| | ip_address='2001:db8:10::9', subnet_id=‘eab47748-3f0a-4775-a09f-b0c24bb64bc4’ |
| id | 04be331b-dc5e-410a-9103-9c8983aeb186 |
| mac_address | fa:16:3e:0f:4b:e4 |
| name | test |
| network_id | 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 |
| port_security_enabled | True |
| project_id | d5660cb1e6934612a01b4fb2fb630725 |
| qos_policy_id | None |
| revision_number | 1 |
| security_group_ids | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635 |
| status | DOWN |
| tags | |
| trunk_details | None |
| updated_at | 2016-02-15T16:42:44Z |
+-----------------------+-------------------------------------------------------------------------------+
$ openstack recordset list example.org.
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
| a5fe696d-203f-4018-b0d8-590221adb513 | example.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| e7c05a5d-83a0-4fe5-8bd5-ab058a3326aa | example.org. | SOA | ns1.devstack.org. malavall.us.ibm.com. 1513767794 3532 600 86400 3600 | ACTIVE | NONE |
| fa753ab8-bffa-400d-9ef8-d4a3b1a7ffbf | my-vm.example.org. | A | 203.0.113.9 | ACTIVE | NONE |
| 04abf9f8-c7a3-43f6-9a55-95cee9b144a9 | my-vm.example.org. | AAAA | 2001:db8:10::9 | ACTIVE | NONE |
+--------------------------------------+--------------------+------+-----------------------------------------------------------------------+--------+--------+
$ openstack server create --image cirros --flavor 42 \
--nic port-id=04be331b-dc5e-410a-9103-9c8983aeb186 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Field | Value |
+--------------------------------------+----------------------------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | TDc9EpBT3B9W |
| config_drive | |
| created | 2016-02-15T19:10:43Z |
| flavor | m1.nano (42) |
| hostId | |
| id | 62c19691-d1c7-4d7b-a88e-9cc4d95d4f41 |
| image | cirros-0.3.5-x86_64-uec (b9d981eb-d21c-4ce2-9dbc-dd38f3d9015f) |
| key_name | - |
| locked | False |
| metadata | {} |
| name | my_vm |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | d5660cb1e6934612a01b4fb2fb630725 |
| updated | 2016-02-15T19:10:43Z |
| user_id | 8bb6e578cba24e7db9d3810633124525 |
+--------------------------------------+----------------------------------------------------------------+
$ openstack server list
+--------------------------------------+-------+--------+--------------------------------------+--------+---------+
| ID | Name | Status | Networks | Image | Flavor |
+--------------------------------------+-------+--------+--------------------------------------+--------+---------+
| 62c19691-d1c7-4d7b-a88e-9cc4d95d4f41 | my_vm | ACTIVE | external=203.0.113.9, 2001:db8:10::9 | cirros | m1.nano |
+--------------------------------------+-------+--------+--------------------------------------+--------+---------+
在此示例中,端口由用户手动创建,然后用于启动实例。请注意:
端口的数据在创建后立即在 DNS 服务中可见。
有关此用例相关的潜在性能影响的说明,请参阅 性能考虑因素。
以下是为此示例创建的 PTR 记录。请注意,对于 IPv4,ipv4_ptr_zone_prefix_size 的值为 24。对于 IPv6,ipv6_ptr_zone_prefix_size 的值为 116。
$ openstack recordset list --all-projects 113.0.203.in-addr.arpa.
+--------------------------------------+----------------------------------+---------------------------+------+---------------------------------------------------------------------+--------+--------+
| id | project_id | name | type | records | status | action |
+--------------------------------------+----------------------------------+---------------------------+------+---------------------------------------------------------------------+--------+--------+
| 32f1c05b-7c5d-4230-9088-961a0a462d28 | 07224d17d76d42499a38f00ba4339710 | 113.0.203.in-addr.arpa. | SOA | ns1.devstack.org. admin.example.org. 1455563035 3600 600 86400 3600 | ACTIVE | NONE |
| 3d402c43-b215-4a75-a730-51cbb8999cb8 | 07224d17d76d42499a38f00ba4339710 | 113.0.203.in-addr.arpa. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 8e4e618c-24b0-43db-ab06-91b741a91c10 | 07224d17d76d42499a38f00ba4339710 | 9.113.0.203.in-addr.arpa. | PTR | my-vm.example.org. | ACTIVE | NONE |
+--------------------------------------+----------------------------------+---------------------------+------+---------------------------------------------------------------------+--------+--------+
$ openstack recordset list --all-projects 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.8.b.d.0.1.0.0.2.ip6.arpa.
+--------------------------------------+----------------------------------+---------------------------------------------------------------------------+------+---------------------------------------------------------------------+--------+--------+
| id | project_id | name | type | records | status | action |
+--------------------------------------+----------------------------------+---------------------------------------------------------------------------+------+---------------------------------------------------------------------+--------+--------+
| d8923354-13eb-4bd9-914a-0a2ae5f95989 | 07224d17d76d42499a38f00ba4339710 | 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.8.b.d.0.1.0.0.2.ip6.arpa. | SOA | ns1.devstack.org. admin.example.org. 1455563036 3600 600 86400 3600 | ACTIVE | NONE |
| 72e60acd-098d-41ea-9771-5b6546c9c06f | 07224d17d76d42499a38f00ba4339710 | 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.8.b.d.0.1.0.0.2.ip6.arpa. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 877e0215-2ddf-4d01-a7da-47f1092dfd56 | 07224d17d76d42499a38f00ba4339710 | 9.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.8.b.d.0.1.0.0.2.ip6.arpa. | PTR | my-vm.example.org. | ACTIVE | NONE |
+--------------------------------------+----------------------------------+---------------------------------------------------------------------------+------+---------------------------------------------------------------------+--------+--------+
有关如何创建外部可访问网络的详细说明,请参阅 用于用例 3b 和 3c 的外部可访问网络配置。
性能考虑因素¶
仅对于 用例 3:端口直接发布到外部 DNS 服务,如果 Networking 服务中启用了端口绑定扩展,Compute 服务将在启动过程中为实例分配端口时执行一个额外的端口更新操作。这可能会对启动过程的性能产生明显的不利影响,在采用此用例之前应进行评估。
用于用例 3b 和 3c 的外部可访问网络配置¶
对于用例 3b 和 3c,外部可访问网络必须满足以下要求:
网络不应将属性
router:external设置为True。网络类型可以是 FLAT、VLAN、GRE、VXLAN 或 GENEVE。
对于 VLAN、GRE、VXLAN 或 GENEVE 网络类型,分段 ID 必须位于分配给项目网络的范围之外。
通常,这意味着这些用例仅适用于由管理员专门为此目的创建的网络,不适用于租户可以自行创建的网络。
端口的 dns_assignment 属性与用例 3¶
当在用例 3 下创建端口时,dns_assignment 属性的计算方式与 DNS 集成 中描述的不同。不是将端口的 dns_name 与 neutron.conf 中配置的 dns_domain 参数连接起来,而是将 dns_name 与端口或网络的 dns_domain 连接起来,具体取决于用例是 3a、3b 还是 3c。例如:
$ openstack network show external -c dns_domain -f value
dns-domain-1.org.
$ cat /etc/neutron/neutron.conf | grep dns_domain
dns_domain = my-domain.org
$ openstack recordset list dns-domain-1.org.
+--------------------------------------+-------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+-------------------+------+-----------------------------------------------------------------------+--------+--------+
| 2b3e9ea4-8035-4595-955d-ec8c55816111 | dns-domain-1.org. | SOA | ns1.devstack.org. mlavalle.redhat.com. 1642583355 3517 600 86400 3600 | ACTIVE | NONE |
| 801dd911-43e6-430a-a80b-ea09af76a9a4 | dns-domain-1.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
+--------------------------------------+-------------------+------+-----------------------------------------------------------------------+--------+--------+
$ openstack port create --dns-name a-port --network external a_port
+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field | Value |
+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | UP |
| allowed_address_pairs | |
| binding_host_id | None |
| binding_profile | None |
| binding_vif_details | None |
| binding_vif_type | None |
| binding_vnic_type | normal |
| created_at | 2022-01-19T09:15:34Z |
| data_plane_status | None |
| description | |
| device_id | |
| device_owner | |
| device_profile | None |
| dns_assignment | fqdn='a-port.dns-domain-1.org.', hostname='a-port', ip_address='172.31.251.113' |
| | fqdn='a-port.dns-domain-1.org.', hostname='a-port', ip_address='fd5e:7a6b:1a62::a3' |
| dns_domain | |
| dns_name | a-port |
| extra_dhcp_opts | |
| fixed_ips | ip_address='172.31.251.113', subnet_id='6795a775-4a76-49b0-bac6-ba8a8b62bd22' |
| | ip_address='fd5e:7a6b:1a62::a3', subnet_id='97b719f8-2307-4162-bf08-523d9c0fc6a9' |
| id | 080f01e7-78b9-43ed-a807-1e0d59099bed |
| ip_allocation | None |
| location | Munch({'cloud': '', 'region_name': 'RegionOne', 'zone': None, 'project': Munch({'id': 'afc55714081b4ef29f99ec128cb1fa30', 'name': 'demo', 'domain_id': 'default', 'domain_name': None})}) |
| mac_address | fa:16:3e:4d:fa:33 |
| name | a_port |
| network_id | 2d696f10-97a4-454c-a411-ea8d4d685636 |
| numa_affinity_policy | None |
| port_security_enabled | True |
| project_id | afc55714081b4ef29f99ec128cb1fa30 |
| propagate_uplink_status | None |
| qos_network_policy_id | None |
| qos_policy_id | None |
| resource_request | None |
| revision_number | 1 |
| security_group_ids | 1a350403-cad3-4a2d-b30a-73815bd96e0f |
| status | DOWN |
| tags | |
| trunk_details | None |
| updated_at | 2022-01-19T09:15:34Z |
+-------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
$ openstack recordset list dns-domain-1.org.
+--------------------------------------+--------------------------+------+-----------------------------------------------------------------------+--------+--------+
| id | name | type | records | status | action |
+--------------------------------------+--------------------------+------+-----------------------------------------------------------------------+--------+--------+
| 2b3e9ea4-8035-4595-955d-ec8c55816111 | dns-domain-1.org. | SOA | ns1.devstack.org. mlavalle.redhat.com. 1642583736 3517 600 86400 3600 | ACTIVE | NONE |
| 801dd911-43e6-430a-a80b-ea09af76a9a4 | dns-domain-1.org. | NS | ns1.devstack.org. | ACTIVE | NONE |
| 61597628-dafe-4aba-8e30-1d45b4e59874 | a-port.dns-domain-1.org. | AAAA | fd5e:7a6b:1a62::a3 | ACTIVE | NONE |
| 83fe489f-2ebc-4911-a67e-bef688833f31 | a-port.dns-domain-1.org. | A | 172.31.251.113 | ACTIVE | NONE |
+--------------------------------------+--------------------------+------+-----------------------------------------------------------------------+--------+--------+
通过这种方式,dns_assignment 属性中的 FQDN 与外部 DNS 服务发布的内容兼容。