21.3. 指定 DNS 分配给端口的名称


当您为端口扩展(dns_domain_ports)启用 Red Hat OpenStack Platform (RHOSP)网络服务(neutron) DNS 域时,您可以指定内部 DNS 分配给端口的名称。

您可以通过在 YAML 格式的环境文件中声明 RHOSP Orchestration (heat) NeutronPlugin Extensions 参数,为端口扩展启用 DNS 域。使用对应的参数 NeutronDnsDomain,您可以指定您的域名,该域名会覆盖默认值 openstacklocal。重新部署 overcloud 后,您可以使用 OpenStack 客户端端口命令( port setport create )来分配 端口名称

重要

您必须为端口扩展(dns_domain_ports)启用 DNS 域,以便 DNS 内部解析 RHOSP 环境中的端口的名称。使用 NeutronDnsDomain 默认值 openstacklocal 意味着网络服务不会内部解析 DNS 的端口名称。

另外,当启用端口扩展的 DNS 域时,计算服务会在引导虚拟机实例期间使用实例的 hostname 属性自动填充 dns_name 属性。在引导过程结束时,dnsmasq 会根据其实例主机名识别分配的端口。

流程

  1. 以 stack 用户身份登录 undercloud,再提供 stackrc 文件,以启用 director 命令行工具。

    示例

    $ source ~/stackrc
    Copy to Clipboard

  2. 创建自定义 YAML 环境文件(my-neutron-environment.yaml)。

    注意

    括号内的值是此流程中示例命令中使用的示例值。将这些示例值替换为适合您的站点的值。

    示例

    $ vi /home/stack/templates/my-neutron-environment.yaml
    Copy to Clipboard

    提示

    undercloud 包括一组编配服务模板,组成您的 overcloud 创建计划。您可以使用环境文件来自定义 overcloud 的各个方面,这些文件是 YAML 格式的文件,该文件会覆盖核心编排服务模板集合中的参数和资源。您可以根据需要纳入多个环境文件。

  3. 在 环境文件中,添加一个 parameter_defaults 部分。在本节中,为端口扩展名添加 DNS 域 dns_domain_ports

    示例

    parameter_defaults:
      NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
    Copy to Clipboard

    注意

    如果您设置了 dns_domain_ports,请确保部署也没有使用 dns_domain,即 DNS 集成扩展。这些扩展不兼容,无法同时定义这两个扩展。

  4. 另外,在 parameter_defaults 部分中,使用 NeutronDnsDomain 参数添加您的域名(example.com)。

    示例

    parameter_defaults:
        NeutronPluginExtensions: "qos,port_security,dns_domain_ports"
        NeutronDnsDomain: "example.com"
    Copy to Clipboard

  5. 运行 openstack overcloud deploy 命令,并包括核心编配模板、环境文件和这个新环境文件。

    重要

    但是,环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。

    示例

    $ openstack overcloud deploy --templates \
    -e [your-environment-files] \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-neutron-environment.yaml
    Copy to Clipboard

验证

  1. 登录到 overcloud,并在网络 (public) 上创建一个新端口 (new_port)。为端口分配一个 DNS 名称(my_port)。

    示例

    $ source ~/overcloudrc
    $ openstack port create --network public --dns-name my_port new_port
    Copy to Clipboard

  2. 显示端口的详细信息(new_port)。

    示例

    $ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
    Copy to Clipboard

    输出

    +-------------------------+----------------------------------------------+
    | Field                   | Value                                        |
    +-------------------------+----------------------------------------------+
    | dns_assignment          | fqdn='my_port.example.com',                  |
    |                         | hostname='my_port',                          |
    |                         | ip_address='10.65.176.113'                   |
    | dns_domain              | example.com                                  |
    | dns_name                | my_port                                      |
    | name                    | new_port                                     |
    +-------------------------+----------------------------------------------+
    Copy to Clipboard

    dns_assignment 下,端口的完全限定域名(fqdn)值包含 DNS 名称的连接(my_port)以及之前使用 NeutronDnsDomain 设置的域名(example.com)。

  3. 使用您刚才创建的端口(new_port)创建一个新虚拟机实例(my_vm)。

    示例

    $ openstack server create --image rhel --flavor m1.small --port new_port my_vm
    Copy to Clipboard

  4. 显示端口的详细信息(new_port)。

    示例

    $ openstack port show -c dns_assignment -c dns_domain -c dns_name -c name new_port
    Copy to Clipboard

    输出

    +-------------------------+----------------------------------------------+
    | Field                   | Value                                        |
    +-------------------------+----------------------------------------------+
    | dns_assignment          | fqdn='my_vm.example.com',                    |
    |                         | hostname='my_vm',                            |
    |                         | ip_address='10.65.176.113'                   |
    | dns_domain              | example.com                                  |
    | dns_name                | my_vm                                        |
    | name                    | new_port                                     |
    +-------------------------+----------------------------------------------+
    Copy to Clipboard

    请注意,计算服务将 dns_name 属性从其原始值(my_port)改为与端口关联的实例的名称(my_vm)。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat, Inc.