第 4 章 使用集成的 DNS 服务


Red Hat OpenStack Platform (RHOSP) DNS 服务(指定)与 Networking 服务(neutron)集成,为端口和计算服务(nova)虚拟机实例提供自动记录创建。

云管理员使用 DNS 服务创建它们与网络关联的区域。通过使用云管理员提供的该网络,云用户可以创建虚拟机实例、端口或浮动 IP,DNS 服务会自动创建必要的 DNS 记录。

在 DNS 服务部署安装工具集期间,RHOSP director 加载 Networking 服务(neutron)扩展 dns_domain_ports。此扩展允许您在 RHOSP 端口、网络和浮动 IP 中添加以下 DNS 属性:

Expand
表 4.1. RHOSP 网络和 DNS 服务支持的 DNS 设置
资源DNS 名称DNS 域(区)

端口

网络

浮动 IP

注意

对于在网络和浮动 IP 上指定的 DNS 域,浮动 IP 端口上的域优先于网络上设置的域。

重要

在 Red Hat OpenStack Platform (RHOSP) 17.1 GA 中,提供了一个技术预览,用于 RHOSP Networking 服务(neutron) ML2/OVN 和 RHOSP DNS 服务(指定)。因此,DNS 服务不会自动为新创建的虚拟机添加 DNS 条目。

本节中包含的主题有:

4.1. 为 DNS 集成设置项目

云管理员创建云用户在创建虚拟机实例、端口或浮动 IP 时必须指定所需的区域、网络和子网。由于 RHOSP 网络服务(neutron)与 DNS 服务(指定)集成,因此当云用户创建这些对象时,它们会自动添加到 DNS 服务中。

重要

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

先决条件

  • 您必须是具有 admin 角色的 RHOSP 用户。
  • 用于端口和虚拟机的网络无法将属性 router:external 设置为 True。在创建网络时,必须指定 the--external 选项。
  • 网络必须是以下类型之一:FLAT、VLAN、GRE、VXLAN 或 GENEVE。
  • 对于 VLAN、GRE、VXLAN 或 GENEVE 网络,分段 ID 必须在网络服务 ml2_conf.ini 文件中配置的范围之内。

    ml2_conf.ini 文件位于 /var/lib/config-data/puppet-generated/neutron/etc/neutron/plugins/ml2 中的 Controller 节点主机上。+ 使用下表来确定哪个部分和选项以咨询您的网络分段 ID 范围:

    Expand
    表 4.2. ml2_conf.ini 选项用于设置网络分段 ID
    网络类型选项

    Geneve

    [ml2_type_geneve]

    vni_ranges

    GRE

    [ml2_type_gre]

    tunnel_id_ranges

    VLAN

    [ml2_type_vlan]

    network_vlan_ranges

    VXLAN

    [ml2_type_vxlan]

    vni_ranges

注意

如果没有满足这些先决条件,网络服务将使用默认的 dns_domainopenstacklocal. 在内部解析器中创建 DNS 分配。

流程

  1. 作为云管理员,提供您的凭据文件。

    Example

    $ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. 创建您希望特定项目中的用户创建 DNS 条目的区域:

    示例

    在本例中,云管理员创建一个名为 example.com 的区域,并指定项目 ID f75ec24a-d361-ab86-54c0-dfe6093245a3 的权限,将记录设置为区:

    $ openstack zone create --email example@example.com example.com. --sudo-project-id f75ec24a-d361-ab86-54c0-dfe6093245a3
    Copy to Clipboard Toggle word wrap
    注意

    DNS 域必须始终是一个完全限定域名(FQDN),这意味着它始终以句点结尾。

  3. 创建您希望特定项目中的用户创建 DNS 条目的网络。

    示例

    在本例中,云管理员会创建一个网络 example-network,它使用之前创建的区域 example.com. 和一个分段 ID 2017,其位于 ml2_conf.ini 中定义的范围之外:

    $ openstack network create --dns-domain example.com. \
    --provider-segment 2017 --provider-network-type geneve \
    example-network
    Copy to Clipboard Toggle word wrap
  4. 在网络上,创建一个子网。

    示例

    在本例中,云管理员在网络上创建一个子网 example- subnet

    $ openstack subnet create \
      --allocation-pool start=192.0.2.10,end=192.0.2.200 \
      --network example-network \
      --subnet-range 192.0.2.0/24 \
      example-subnet
    Copy to Clipboard Toggle word wrap
  5. 指示项目中的云用户使用您在添加实例、端口和浮动 IP 时创建的区域和网络。
警告

如果用户创建实例、端口或浮动 IP 没有在区中创建记录集,或者如果 DNS 服务中不存在该区,则网络服务将执行以下操作:

  • 创建带有 dns_assignment 字段的端口,使用 dns_domain 提供的信息生成。
  • 不创建 DNS 服务中设置的记录。
  • 记录错误:"Error publish port data in external DNS service."。

验证

  • 确认您创建的网络是否存在。

    Example

    $ openstack network show example-network
    Copy to Clipboard Toggle word wrap

    输出示例

    +---------------------------+--------------------------------------+
    | Field                     | Value                                |
    +---------------------------+--------------------------------------+
    | admin_state_up            | UP                                   |
    | availability_zone_hints   |                                      |
    | availability_zones        |                                      |
    | created_at                | 2022-09-07T19:03:32Z                 |
    | description               |                                      |
    | dns_domain                | example.com.                         |
    | id                        | 9ae5b3d5-f12c-4a67-b0e5-655d53cd4f7c |
    | ipv4_address_scope        | None                                 |
    | ipv6_address_scope        | None                                 |
    | is_default                | None                                 |
    | is_vlan_transparent       | None                                 |
    | mtu                       | 1450                                 |
    | name                      | network-example                      |
    | port_security_enabled     | True                                 |
    | project_id                | f75ec24a-d361-ab86-54c0-dfe6093245a3 |
    | provider:network_type     | vxlan                                |
    | provider:physical_network | None                                 |
    | provider:segmentation_id  | 2017                                 |
    | qos_policy_id             | None                                 |
    | revision_number           | 3                                    |
    | router:external           | Internal                             |
    | segments                  | None                                 |
    | shared                    | False                                |
    | status                    | ACTIVE                               |
    | subnets                   | 15546c9d-6faf-43aa-83e7-b1e705eed060 |
    | tags                      |                                      |
    | updated_at                | 2022-09-07T19:03:43Z                 |
    +---------------------------+--------------------------------------+
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat