OpenStack网络指南(14)DNS集成

此页面作为如何使用网络服务的DNS集成功能的指南。 描述的功能从两个角度涵盖DNS:
网络服务提供的内部DNS功能及其与Compute服务的交互。
将计算服务和网络服务与外部DNSaaS(DNS即服务)集成。

用户可以使用与端口,网络和浮动IP相关联的两个属性来控制网络服务在DNS方面的行为。 下表显示了每个资源可用的属性:

资源dns_namedns_domain
Portsyesno
Networksnoyes
Floating ipsyesyes

网络服务内部DNS解析

网络服务使用户能够控制内部DNS分配给端口的名称。 要启用此功能,请执行以下操作:
1.编辑/etc/neutron/neutron.conf文件,并将与openstacklocal不同的值(其默认值)分配给[default]部分中的dns_domain参数。 举个例子:

dns_domain = example.org.

2.在/etc/neutron/plugins/ml2/ml2_conf.ini的[ml2]部分的extension_drivers中添加dns。 以下是一个示例:

[ml2]
extension_drivers = port_security,dns

重新启动neutron服务器后,用户将能够为其端口分配一个dns_name属性。

启用此功能是启用与外部DNS服务的Networking服务集成的前提条件

以下说明了在其dns_name属性中创建具有my-port的端口。

网络服务内部DNS分配给端口的名称现在可在dns_assignment属性中的响应中显示。

$ neutron port-create my-net --dns_name my-port
Created a new port:
+-----------------------+-----------------------------------------------------------------------------------+
| Field                 | Value                                                                             |
+-----------------------+-----------------------------------------------------------------------------------+
| admin_state_up        | True                                                                              |
| allowed_address_pairs |                                                                                   |
| binding:vnic_type     | normal                                                                            |
| device_id             |                                                                                   |
| device_owner          |                                                                                   |
| dns_assignment        | {"hostname": "my-port", "ip_address": "10.0.1.3", "fqdn": "my-port.example.org."} |
| dns_name              | my-port                                                                           |
| fixed_ips             | {"subnet_id":"6141b474-56cd-430f-b731-71660bb79b79", "ip_address": "10.0.1.3"}    |
| id                    | fb3c10f4-017e-420c-9be1-8f8c557ae21f                                              |
| mac_address           | fa:16:3e:aa:9b:e1                                                                 |
| name                  |                                                                                   |
| network_id            | bf2802a0-99a0-4e8c-91e4-107d03f158ea                                              |
| port_security_enabled | True                                                                              |
| security_groups       | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635                                              |
| status                | DOWN                                                                              |
| tenant_id             | d5660cb1e6934612a01b4fb2fb630725                                                  |
+-----------------------+-----------------------------------------------------------------------------------+

启用此功能时,Compute服务在创建实例时利用它。 在引导期间为实例分配端口时,Compute服务使用实例的hostname属性填充这些端口的dns_name属性,该属性是其显示名称的DNS清理版本。 因此,在引导过程结束时,将通过其实例主机名在与其网络相关联的dnsmasq中知道分配的端口。
以下是实例创建的示例,显示其主机名如何填充分配的端口的dns_name属性:

$ nova boot --image cirros --flavor 42 \
  --nic net-id=37aaff3a-6047-45ac-bf4f-a825e56fd2b3 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Property                             | 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                            | dB45Zvo8Jpfe                                                   |
| config_drive                         |                                                                |
| created                              | 2016-02-05T21:35:04Z                                           |
| flavor                               | m1.nano (42)                                                   |
| hostId                               |                                                                |
| id                                   | 66c13cb4-3002-4ab3-8400-7efc2659c363                           |
| image                                | cirros-0.3.4-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-05T21:35:04Z                                           |
| user_id                              | 8bb6e578cba24e7db9d3810633124525                               |
+--------------------------------------+----------------------------------------------------------------+

$ neutron port-list --device_id 66c13cb4-3002-4ab3-8400-7efc2659c363
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------------+
| id                                   | name | mac_address       | fixed_ips                                                                             |
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------------+
| b3ecc464-1263-44a7-8c38-2d8a52751773 |      | fa:16:3e:a8:ce:b8 | {"subnet_id": "277eca5d-9869-474b-960e-6da5951d09f7", "ip_address": "172.24.5.8"}     |
|                                      |      |                   | {"subnet_id": "eab47748-3f0a-4775-a09f-b0c24bb64bc4", "ip_address":"2001:db8:10::8"}  |
+--------------------------------------+------+-------------------+---------------------------------------------------------------------------------------+

$ neutron port-show b3ecc464-1263-44a7-8c38-2d8a52751773
+-----------------------+---------------------------------------------------------------------------------------+
| Field                 | Value                                                                                 |
+-----------------------+---------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                                  |
| allowed_address_pairs |                                                                                       |
| binding:vnic_type     | normal                                                                                |
| device_id             | 66c13cb4-3002-4ab3-8400-7efc2659c363                                                  |
| device_owner          | compute:None                                                                          |
| dns_assignment        | {"hostname": "my-vm", "ip_address": "172.24.5.8", "fqdn": "my-vm.example.org."}       |
|                       | {"hostname": "my-vm", "ip_address": "2001:db8:10::8", "fqdn": "my-vm.example.org."}   |
| dns_name              | my-vm                                                                                 |
| extra_dhcp_opts       |                                                                                       |
| fixed_ips             | {"subnet_id": "277eca5d-9869-474b-960e-6da5951d09f7", "ip_address": "172.24.5.8"}     |
|                       | {"subnet_id": "eab47748-3f0a-4775-a09f-b0c24bb64bc4", "ip_address": "2001:db8:10::8"} |
| id                    | b3ecc464-1263-44a7-8c38-2d8a52751773                                                  |
| mac_address           | fa:16:3e:a8:ce:b8                                                                     |
| name                  |                                                                                       |
| network_id            | 37aaff3a-6047-45ac-bf4f-a825e56fd2b3                                                  |
| port_security_enabled | True                                                                                  |
| security_groups       | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635                                                  |
| status                | ACTIVE                                                                                |
| tenant_id             | d5660cb1e6934612a01b4fb2fb630725                                                      |
+-----------------------+---------------------------------------------------------------------------------------+

在上面的例子中注意:
用户提供给实例的名称my_vm由Compute服务进行清理,并作为端口的dns_name变为my-vm。
端口的dns_assignment属性显示其FQDN为my-vm.example.org。 在网络服务内部DNS中,这是将端口的dns_name与neutron.conf中dns_domain参数中配置的值连接的结果,如前所述。
dns_assignment属性还显示网络服务内部DNS中的端口的主机名是my-vm。
而不是使Compute服务为实例创建端口,用户可能已创建它并为其dns_name属性分配了一个值。 在这种情况下,分配给dns_name属性的值必须等于Compute服务将分配给实例的主机名的值,在本例中为my-vm。 否则,实例引导将失败。

与外部DNS服务集成

用户还可以将网络和计算服务与外部DNS集成。 为了实现这一点,用户必须:
1.启用网络服务内部DNS解析中描述的功能。
2.配置外部DNS驱动程序。 网络服务提供基于OpenStack DNS服务的驱动程序参考实现。 预计第三方供应商将在未来提供其他实施。
一旦配置和重新启动neutron-server,用户将具有涵盖三个用例的功能,如以下各节所述。 在下面描述的每个使用情况中:
- 示例假定OpenStack DNS服务作为外部DNS。
- A,AAAA和PTR记录将在DNS服务中创建。
- 在执行任何用例之前,用户必须在其项目下的DNS服务中创建将创建A和AAAA记录的DNS区域。 对于下面的用例的描述,假设区域example.org。是先前创建的。
- PTR记录将在具有管理员权限的项目拥有的区域中创建。

用例1:端口直接在外部DNS服务中发布

在这种情况下,用户正在外部可访问的网络上创建端口或引导实例。 在外部DNS服务中发布端口的步骤如下:
1.为网络的dns_domain属性分配有效的域名。 此名称必须以句点(。)结尾。
2.引导指定外部可访问网络的实例。 或者,在外部可访问网络上创建一个端口,为其dns_name属性指定一个有效值。 如果端口将用于实例引导,则分配给dns_name的值必须等于Compute服务将分配给实例的主机名。 否则,引导将失败。
执行这些步骤后,端口的DNS数据将在外部DNS服务中发布。 这是一个例子:

$ neutron net-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 172.24.5.0/24       |
|                                      |          | eab47748-3f0a-4775-a09f-b0c24bb64bc4 2001:db8:10::/64    |
| bf2802a0-99a0-4e8c-91e4-107d03f158ea | my-net   | 6141b474-56cd-430f-b731-71660bb79b79 10.0.1.0/24         |
| 38c5e950-b450-4c30-83d4-ee181c28aad3 | private  | 43414c53-62ae-49bc-aa6c-c9dd7705818a fda4:653e:71b0::/64 |
|                                      |          | 5b9282a1-0be1-4ade-b478-7868ad2a16ff 10.0.0.0/24         |
+--------------------------------------+----------+----------------------------------------------------------+

$ neutron net-update 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 --dns_domain example.org.
Updated network: 37aaff3a-6047-45ac-bf4f-a825e56fd2b3

$ neutron net-show 37aaff3a-6047-45ac-bf4f-a825e56fd2b3
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | True                                 |
| availability_zone_hints   |                                      |
| availability_zones        | nova                                 |
| dns_domain                | example.org.                         |
| id                        | 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 |
| mtu                       | 1450                                 |
| name                      | external                             |
| port_security_enabled     | True                                 |
| provider:network_type     | vlan                                 |
| provider:physical_network |                                      |
| provider:segmentation_id  | 2016                                 |
| router:external           | False                                |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   | eab47748-3f0a-4775-a09f-b0c24bb64bc4 |
|                           | 277eca5d-9869-474b-960e-6da5951d09f7 |
| tenant_id                 | 04fc2f83966245dba907efb783f8eab9     |
+---------------------------+--------------------------------------+

$ designate record-list example.org.
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+
| id                                   | type | name         | data                                                                  |
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+
| 10a36008-6ecf-47c3-b321-05652a929b04 | SOA  | example.org. | ns1.devstack.org. malavall.us.ibm.com. 1454729414 3600 600 86400 3600 |
| 56ca0b88-e343-4c98-8faa-19746e169baf | NS   | example.org. | ns1.devstack.org.                                                     |
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+

$ neutron port-create 37aaff3a-6047-45ac-bf4f-a825e56fd2b3 --dns_name my-vm
Created a new port:
+-----------------------+---------------------------------------------------------------------------------------+
| Field                 | Value                                                                                 |
+-----------------------+---------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                                  |
| allowed_address_pairs |                                                                                       |
| binding:vnic_type     | normal                                                                                |
| device_id             |                                                                                       |
| device_owner          |                                                                                       |
| dns_assignment        | {"hostname": "my-vm", "ip_address": "172.24.5.9", "fqdn": "my-vm.example.org."}       |
|                       | {"hostname": "my-vm", "ip_address": "2001:db8:10::9", "fqdn": "my-vm.example.org."}   |
| dns_name              | my-vm                                                                                 |
| fixed_ips             | {"subnet_id": "277eca5d-9869-474b-960e-6da5951d09f7", "ip_address": "172.24.5.9"}     |
|                       | {"subnet_id": "eab47748-3f0a-4775-a09f-b0c24bb64bc4", "ip_address": "2001:db8:10::9"} |
| id                    | 04be331b-dc5e-410a-9103-9c8983aeb186                                                  |
| mac_address           | fa:16:3e:0f:4b:e4                                                                     |
| name                  |                                                                                       |
| network_id            | 37aaff3a-6047-45ac-bf4f-a825e56fd2b3                                                  |
| port_security_enabled | True                                                                                  |
| security_groups       | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635                                                  |
| status                | DOWN                                                                                  |
| tenant_id             | d5660cb1e6934612a01b4fb2fb630725                                                      |
+-----------------------+---------------------------------------------------------------------------------------+

$ designate record-list example.org.
+--------------------------------------+------+--------------------+-----------------------------------------------------------------------+
| id                                   | type | name               | data                                                                  |
+--------------------------------------+------+--------------------+-----------------------------------------------------------------------+
| 10a36008-6ecf-47c3-b321-05652a929b04 | SOA  | example.org.       | ns1.devstack.org. malavall.us.ibm.com. 1455563035 3600 600 86400 3600 |
| 56ca0b88-e343-4c98-8faa-19746e169baf | NS   | example.org.       | ns1.devstack.org.                                                     |
| 3593591b-181f-4beb-9ab7-67fad7413b37 | A    | my-vm.example.org. | 172.24.5.9                                                            |
| 5649c68f-7a88-48f5-9f87-ccb1f6ae67ca | AAAA | my-vm.example.org. | 2001:db8:10::9                                                        |
+--------------------------------------+------+--------------------+-----------------------------------------------------------------------+

$ nova boot --image cirros --flavor 42 \
  --nic port-id=04be331b-dc5e-410a-9103-9c8983aeb186 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Property                             | 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.4-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                               |
+--------------------------------------+----------------------------------------------------------------+

$ nova list
+--------------------------------------+-------+--------+------------+-------------+-------------------------------------+
| ID                                   | Name  | Status | Task State | Power State | Networks                            |
+--------------------------------------+-------+--------+------------+-------------+-------------------------------------+
| 62c19691-d1c7-4d7b-a88e-9cc4d95d4f41 | my_vm | ACTIVE | -          | Running     | external=172.24.5.9, 2001:db8:10::9 |
+--------------------------------------+-------+--------+------------+-------------+-------------------------------------+

在此示例中,端口由用户手动创建,然后用于引导实例。 注意端口的数据在DNS服务创建后立即可见。
以下是为此示例创建的PTR记录。 请注意,对于IPv4,ipv4_ptr_zone_prefix_size的值为24.在IPv6的情况下,ipv6_ptr_zone_prefix_size的值为116.有关详细信息,请参阅配置OpenStack Networking以与外部DNS服务集成:

$ designate record-list 5.24.172.in-addr.arpa.
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+
| id                                   | type | name                     | data                                                                |
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+
| ab7ada72-7e64-4bed-913e-04718a80fafc | NS   | 5.24.172.in-addr.arpa.   | ns1.devstack.org.                                                   |
| 28346a94-790c-4ae1-9f7b-069d98d9efbd | SOA  | 5.24.172.in-addr.arpa.   | ns1.devstack.org. admin.example.org. 1455563035 3600 600 86400 3600 |
| cfcaf537-844a-4c1b-9b5f-464ff07dca33 | PTR  | 9.5.24.172.in-addr.arpa. | my-vm.example.org.                                                  |
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+

$ designate record-list 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                                   | type | name                                                                      | data                                                                |
+--------------------------------------+------+---------------------------------------------------------------------------+---------------------------------------------------------------------+
| d8923354-13eb-4bd9-914a-0a2ae5f95989 | SOA  | 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.       | ns1.devstack.org. admin.example.org. 1455563036 3600 600 86400 3600 |
| 72e60acd-098d-41ea-9771-5b6546c9c06f | NS   | 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.       | ns1.devstack.org.                                                   |
| 877e0215-2ddf-4d01-a7da-47f1092dfd56 | PTR  | 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. | my-vm.example.org.                                                  |
+--------------------------------------+------+---------------------------------------------------------------------------+---------------------------------------------------------------------+

用例2:使用关联的端口DNS属性发布浮动IP

在此用例中,浮动IP的地址在外部DNS服务中与其关联端口的dns_name和端口网络的dns_domain一起发布。 在此用例中执行的步骤如下:
为网络的dns_domain属性分配有效的域名。 此名称必须以句点(。)结尾。
引导实例,或者创建一个端口,为其dns_name属性指定有效的值。 如果端口将用于实例引导,则分配给dns_name的值必须等于Compute服务将分配给实例的主机名。 否则,引导将失败。
创建浮动IP并将其关联到端口。
以下是这些步骤的示例:

$ neutron net-update 38c5e950-b450-4c30-83d4-ee181c28aad3 --dns_domain example.org.
Updated network: 38c5e950-b450-4c30-83d4-ee181c28aad3

$ neutron net-show 38c5e950-b450-4c30-83d4-ee181c28aad3
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      | nova                                 |
| dns_domain              | example.org.                         |
| id                      | 38c5e950-b450-4c30-83d4-ee181c28aad3 |
| mtu                     | 1450                                 |
| name                    | private                              |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 | 43414c53-62ae-49bc-aa6c-c9dd7705818a |
|                         | 5b9282a1-0be1-4ade-b478-7868ad2a16ff |
| tenant_id               | d5660cb1e6934612a01b4fb2fb630725     |
+-------------------------+--------------------------------------+

$ nova boot --image cirros --flavor 42 \
  --nic net-id=38c5e950-b450-4c30-83d4-ee181c28aad3 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Property                             | 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.4-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                               |
+--------------------------------------+----------------------------------------------------------------+

$ nova list
+--------------------------------------+-------+--------+------------+-------------+---------------------------------------------------------+
| ID                                   | Name  | Status | Task State | Power State | Networks                                                |
+--------------------------------------+-------+--------+------------+-------------+---------------------------------------------------------+
| 43f328bb-b2d1-4cf1-a36f-3b2593397cb1 | my_vm | ACTIVE | -          | Running     | private=fda4:653e:71b0:0:f816:3eff:fe16:b5f2, 10.0.0.15 |
+--------------------------------------+-------+--------+------------+-------------+---------------------------------------------------------+

$ neutron port-list --device_id 43f328bb-b2d1-4cf1-a36f-3b2593397cb1
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+
| id                                   | name | mac_address       | fixed_ips                                                                                                   |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+
| da0b1f75-c895-460f-9fc1-4d6ec84cf85f |      | fa:16:3e:16:b5:f2 | {"subnet_id": "5b9282a1-0be1-4ade-b478-7868ad2a16ff", "ip_address": "10.0.0.15"}                            |
|                                      |      |                   | {"subnet_id": "43414c53-62ae-49bc-aa6c-c9dd7705818a", "ip_address": "fda4:653e:71b0:0:f816:3eff:fe16:b5f2"} |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+

$ neutron port-show da0b1f75-c895-460f-9fc1-4d6ec84cf85f
+-----------------------+-------------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                       |
+-----------------------+-------------------------------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                                                        |
| allowed_address_pairs |                                                                                                             |
| binding:vnic_type     | normal                                                                                                      |
| device_id             | 43f328bb-b2d1-4cf1-a36f-3b2593397cb1                                                                        |
| device_owner          | compute:None                                                                                                |
| dns_assignment        | {"hostname": "my-vm", "ip_address": "10.0.0.15", "fqdn": "my-vm.example.org."}                              |
|                       | {"hostname": "my-vm", "ip_address": "fda4:653e:71b0:0:f816:3eff:fe16:b5f2", "fqdn": "my-vm.example.org."}   |
| dns_name              | my-vm                                                                                                       |
| extra_dhcp_opts       |                                                                                                             |
| fixed_ips             | {"subnet_id": "5b9282a1-0be1-4ade-b478-7868ad2a16ff", "ip_address": "10.0.0.15"}                            |
|                       | {"subnet_id": "43414c53-62ae-49bc-aa6c-c9dd7705818a", "ip_address": "fda4:653e:71b0:0:f816:3eff:fe16:b5f2"} |
| 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                                                                                                        |
| security_groups       | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635                                                                        |
| status                | ACTIVE                                                                                                      |
| tenant_id             | d5660cb1e6934612a01b4fb2fb630725                                                                            |
+-----------------------+-------------------------------------------------------------------------------------------------------------+

$ designate record-list example.org.
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+
| id                                   | type | name         | data                                                                  |
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+
| 10a36008-6ecf-47c3-b321-05652a929b04 | SOA  | example.org. | ns1.devstack.org. malavall.us.ibm.com. 1455563783 3600 600 86400 3600 |
| 56ca0b88-e343-4c98-8faa-19746e169baf | NS   | example.org. | ns1.devstack.org.                                                     |
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+

$ neutron floatingip-create 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a \
  --port_id da0b1f75-c895-460f-9fc1-4d6ec84cf85f
Created a new floatingip:
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| dns_domain          |                                      |
| dns_name            |                                      |
| fixed_ip_address    | 10.0.0.15                            |
| floating_ip_address | 172.24.4.4                           |
| floating_network_id | 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a |
| id                  | e78f6eb1-a35f-4a90-941d-87c888d5fcc7 |
| port_id             | da0b1f75-c895-460f-9fc1-4d6ec84cf85f |
| router_id           | 970ebe83-c4a3-4642-810e-43ab7b0c2b5f |
| status              | DOWN                                 |
| tenant_id           | d5660cb1e6934612a01b4fb2fb630725     |
+---------------------+--------------------------------------+

$ designate record-list example.org.
+--------------------------------------+------+--------------------+-----------------------------------------------------------------------+
| id                                   | type | name               | data                                                                  |
+--------------------------------------+------+--------------------+-----------------------------------------------------------------------+
| 10a36008-6ecf-47c3-b321-05652a929b04 | SOA  | example.org.       | ns1.devstack.org. malavall.us.ibm.com. 1455564861 3600 600 86400 3600 |
| 56ca0b88-e343-4c98-8faa-19746e169baf | NS   | example.org.       | ns1.devstack.org.                                                     |
| 5ff53fd0-3746-48da-b9c9-77ed3004ec67 | A    | my-vm.example.org. | 172.24.4.4                                                            |
+--------------------------------------+------+--------------------+-----------------------------------------------------------------------+

在此示例中,注意当浮动IP与端口关联时,数据在DNS服务中发布。
以下是为此示例创建的PTR记录。 请注意,对于IPv4,ipv4_ptr_zone_prefix_size的值为24.

$ designate record-list 4.24.172.in-addr.arpa.
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+
| id                                   | type | name                     | data                                                                |
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+
| 2dd0b894-25fa-4563-9d32-9f13bd67f329 | NS   | 4.24.172.in-addr.arpa.   | ns1.devstack.org.                                                   |
| 47b920f1-5eff-4dfa-9616-7cb5b7cb7ca6 | SOA  | 4.24.172.in-addr.arpa.   | ns1.devstack.org. admin.example.org. 1455564862 3600 600 86400 3600 |
| fb1edf42-abba-410c-8397-831f45fd0cd7 | PTR  | 4.4.24.172.in-addr.arpa. | my-vm.example.org.                                                  |
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+

用例3:浮动IP在外部DNS服务中发布
在此用例中,用户在创建浮动IP时将dns_name和dns_domain属性分配给浮动IP。 浮动IP数据在外部DNS服务创建后立即可见。 浮动IP可以与创建时或以后的端口关联。 以下示例显示用户引导实例,然后创建与为该实例分配的端口关联的浮动IP:

$ neutron net-show 38c5e950-b450-4c30-83d4-ee181c28aad3
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | True                                 |
| availability_zone_hints |                                      |
| availability_zones      | nova                                 |
| dns_domain              | example.org.                         |
| id                      | 38c5e950-b450-4c30-83d4-ee181c28aad3 |
| mtu                     | 1450                                 |
| name                    | private                              |
| port_security_enabled   | True                                 |
| router:external         | False                                |
| shared                  | False                                |
| status                  | ACTIVE                               |
| subnets                 | 43414c53-62ae-49bc-aa6c-c9dd7705818a |
|                         | 5b9282a1-0be1-4ade-b478-7868ad2a16ff |
| tenant_id               | d5660cb1e6934612a01b4fb2fb630725     |
+-------------------------+--------------------------------------+

$ nova boot --image cirros --flavor 42 \
  --nic net-id=38c5e950-b450-4c30-83d4-ee181c28aad3 my_vm
+--------------------------------------+----------------------------------------------------------------+
| Property                             | 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.4-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                               |
+--------------------------------------+----------------------------------------------------------------+

$ nova list
+--------------------------------------+-------+--------+------------+-------------+---------------------------------------------------------+
| ID                                   | Name  | Status | Task State | Power State | Networks                                                |
+--------------------------------------+-------+--------+------------+-------------+---------------------------------------------------------+
| 71fb4ac8-eed8-4644-8113-0641962bb125 | my_vm | ACTIVE | -          | Running     | private=fda4:653e:71b0:0:f816:3eff:fe24:8614, 10.0.0.16 |
+--------------------------------------+-------+--------+------------+-------------+---------------------------------------------------------+

$ neutron port-list --device_id 71fb4ac8-eed8-4644-8113-0641962bb125
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+
| id                                   | name | mac_address       | fixed_ips                                                                                                   |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+
| 1e7033fb-8e9d-458b-89ed-8312cafcfdcb |      | fa:16:3e:24:86:14 | {"subnet_id": "5b9282a1-0be1-4ade-b478-7868ad2a16ff", "ip_address": "10.0.0.16"}                            |
|                                      |      |                   | {"subnet_id": "43414c53-62ae-49bc-aa6c-c9dd7705818a", "ip_address": "fda4:653e:71b0:0:f816:3eff:fe24:8614"} |
+--------------------------------------+------+-------------------+-------------------------------------------------------------------------------------------------------------+

$ neutron port-show 1e7033fb-8e9d-458b-89ed-8312cafcfdcb
+-----------------------+-------------------------------------------------------------------------------------------------------------+
| Field                 | Value                                                                                                       |
+-----------------------+-------------------------------------------------------------------------------------------------------------+
| admin_state_up        | True                                                                                                        |
| allowed_address_pairs |                                                                                                             |
| binding:vnic_type     | normal                                                                                                      |
| device_id             | 71fb4ac8-eed8-4644-8113-0641962bb125                                                                        |
| device_owner          | compute:None                                                                                                |
| dns_assignment        | {"hostname": "my-vm", "ip_address": "10.0.0.16", "fqdn": "my-vm.example.org."}                              |
|                       | {"hostname": "my-vm", "ip_address": "fda4:653e:71b0:0:f816:3eff:fe24:8614", "fqdn": "my-vm.example.org."}   |
| dns_name              | my-vm                                                                                                       |
| extra_dhcp_opts       |                                                                                                             |
| fixed_ips             | {"subnet_id": "5b9282a1-0be1-4ade-b478-7868ad2a16ff", "ip_address": "10.0.0.16"}                            |
|                       | {"subnet_id": "43414c53-62ae-49bc-aa6c-c9dd7705818a", "ip_address": "fda4:653e:71b0:0:f816:3eff:fe24:8614"} |
| 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                                                                                                        |
| security_groups       | 1f0ddd73-7e3c-48bd-a64c-7ded4fe0e635                                                                        |
| status                | ACTIVE                                                                                                      |
| tenant_id             | d5660cb1e6934612a01b4fb2fb630725                                                                            |
+-----------------------+-------------------------------------------------------------------------------------------------------------+

$ designate record-list example.org.
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+
| id                                   | type | name         | data                                                                  |
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+
| 10a36008-6ecf-47c3-b321-05652a929b04 | SOA  | example.org. | ns1.devstack.org. malavall.us.ibm.com. 1455565110 3600 600 86400 3600 |
| 56ca0b88-e343-4c98-8faa-19746e169baf | NS   | example.org. | ns1.devstack.org.                                                     |
+--------------------------------------+------+--------------+-----------------------------------------------------------------------+

$ neutron floatingip-create 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a \
  --dns_domain example.org. --dns_name my-floatingip
Created a new floatingip:
+---------------------+--------------------------------------+
| Field               | Value                                |
+---------------------+--------------------------------------+
| dns_domain          | example.org.                         |
| dns_name            | my-floatingip                        |
| fixed_ip_address    |                                      |
| floating_ip_address | 172.24.4.5                           |
| floating_network_id | 41fa3995-9e4a-4cd9-bb51-3e5424f2ff2a |
| id                  | 9f23a9c6-eceb-42eb-9f45-beb58c473728 |
| port_id             |                                      |
| router_id           |                                      |
| status              | DOWN                                 |
| tenant_id           | d5660cb1e6934612a01b4fb2fb630725     |
+---------------------+--------------------------------------+

$ designate record-list example.org.
+--------------------------------------+------+----------------------------+-----------------------------------------------------------------------+
| id                                   | type | name                       | data                                                                  |
+--------------------------------------+------+----------------------------+-----------------------------------------------------------------------+
| 10a36008-6ecf-47c3-b321-05652a929b04 | SOA  | example.org.               | ns1.devstack.org. malavall.us.ibm.com. 1455566486 3600 600 86400 3600 |
| 56ca0b88-e343-4c98-8faa-19746e169baf | NS   | example.org.               | ns1.devstack.org.                                                     |
| 8884c56f-3ef5-446e-ae4d-8053cc8bc2b4 | A    | my-floatingip.example.org. | 172.24.4.5                                                            |
+--------------------------------------+------+----------------------------+-----------------------------------------------------------------------+

请注意,在此用例中:
必须在创建时一起指定浮动IP的dns_name和dns_domain属性。 它们不能单独分配给浮动IP。
为了在外部DNS服务中发布,浮动IP的dns_name和dns_domain优先于其关联端口的dns_name和端口网络的dns_domain(无论是否指定)。 只有浮动IP的dns_name和dns_domain在外部DNS服务中发布。
以下是为此示例创建的PTR记录。 请注意,对于IPv4,ipv4_ptr_zone_prefix_size的值为24.

$ designate record-list 4.24.172.in-addr.arpa.
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+
| id                                   | type | name                     | data                                                                |
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+
| 2dd0b894-25fa-4563-9d32-9f13bd67f329 | NS   | 4.24.172.in-addr.arpa.   | ns1.devstack.org.                                                   |
| 47b920f1-5eff-4dfa-9616-7cb5b7cb7ca6 | SOA  | 4.24.172.in-addr.arpa.   | ns1.devstack.org. admin.example.org. 1455566487 3600 600 86400 3600 |
| 589a0171-e77a-4ab6-ba6e-23114f2b9366 | PTR  | 5.4.24.172.in-addr.arpa. | my-floatingip.example.org.                                          |
+--------------------------------------+------+--------------------------+---------------------------------------------------------------------+

性能注意事项

仅适用于用例1:端口直接发布在外部DNS服务中,如果在网络服务中启用了端口绑定扩展,则在引导过程中为Compute分配端口时,Compute服务将执行一个额外的端口更新操作。 这可能对引导过程的性能具有显着的不利影响,在采用此用例之前必须对其进行评估。

配置OpenStack Networking与外部DNS服务集成

配置与外部DNS服务集成的第一步是启用“网络服务”内部DNS解析中描述的功能。 一旦完成,用户必须采取以下步骤,并重新启动neutron-server。
1.编辑/etc/neutron/neutron.conf的[default]部分,并在参数external_dns_driver中指定要使用的外部DNS服务驱动程序。 有效选项在命名空间neutron.services.external_dns_drivers中定义。 以下示例显示如何设置OpenStack DNS服务的驱动程序:

external_dns_driver = designate

2.如果OpenStack DNS服务是目标外部DNS,/etc/neutron/neutron.conf的[designated]部分必须定义以下参数:
url:OpenStack DNS服务公共端点URL。
allow_reverse_dns_lookup:一个布尔值,指定是否启用反向查找(PTR)记录的创建。
admin_auth_url:身份服务管理员授权端点url。网络服务将使用此端点作为管理用户进行身份验证,以创建和更新反向查找(PTR)区域。
admin_username:网络服务用于创建和更新反向查找(PTR)区域的admin用户。
admin_password:网络服务用于创建和更新反向查找(PTR)区域的admin用户的密码。
admin_tenant_name:网络服务用来创建和更新反向查找(PTR)区域的管理员用户的项目。
ipv4_ptr_zone_prefix_size:IPv4反向查找(PTR)区域的前缀的大小(以位为单位)。
ipv6_ptr_zone_prefix_size:IPv6反向查找(PTR)区域的前缀的大小(以位为单位)。
insecure:禁用SSL证书验证。默认情况下,验证证书。
ca_cert:有效证书颁发机构(CA)证书的路径。
以下是一个示例:

[designate]
url = http://55.114.111.93:9001/v2
admin_auth_url = http://55.114.111.93:35357/v2.0
admin_username = neutron
admin_password = x5G90074
admin_tenant_name = service
allow_reverse_dns_lookup = True
ipv4_ptr_zone_prefix_size = 24
ipv6_ptr_zone_prefix_size = 116
ca_cert = /etc/ssl/certs/my_ca_cert

用例1的外部可访问网络的配置

用例1:端口直接发布在外部DNS服务中,外部可访问网络必须满足以下要求:
网络不能具有属性router:external设置为True。
网络类型可以是FLAT,VLAN,GRE,VXLAN或GENEVE。
对于网络类型VLAN,GRE,VXLAN或GENEVE,分段ID必须在分配给租户网络的范围之外。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenStack网络架构主要包括以下几个组件: 1. Nova:Nova是OpenStack的计算组件,它负责管理计算资源。Nova提供了虚拟机实例的创建、启动、停止和删除等功能。Nova还提供了网络接口,用于连接虚拟机实例和网络。 2. Neutron:Neutron是OpenStack网络组件,它提供了虚拟网络的创建和管理功能。Neutron支持多种网络类型,包括VLAN、VXLAN和GRE等。 3. Keystone:Keystone是OpenStack的身份认证组件,它负责管理用户、角色和权限等信息。Keystone还提供了API接口,用于其他组件进行身份认证。 4. Glance:Glance是OpenStack的镜像组件,它提供了虚拟机镜像的创建、存储和管理功能。虚拟机镜像是虚拟机实例的模板,可以用于创建多个虚拟机实例。 5. Cinder:Cinder是OpenStack的存储组件,它提供了块存储的管理功能。块存储是一种高性能的存储方式,适用于需要高速数据读写的应用场景。 6. Swift:Swift是OpenStack的对象存储组件,它提供了对象存储的管理功能。对象存储是一种高可用、高扩展性的存储方式,适用于需要海量数据存储的应用场景。 OpenStack网络架构中,Neutron是一个核心组件,它负责管理虚拟网络和物理网络之间的连接。Neutron提供了多种网络服务,包括路由、防火墙和负载均衡等。通过Neutron,OpenStack可以实现虚拟化网络的隔离和管理,从而为用户提供更加灵活和可靠的云服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值