18.4. 为端口分配 DHCP 属性

您可以使用 Red Hat Openstack Plaform (RHOSP)网络服务(neutron)扩展来添加网络功能。您可以使用额外的 DHCP 选项扩展(extra_dhcp_opt)来配置带有 DHCP 属性的 DHCP 客户端的端口。例如,您可以在 DHCP 客户端端口中添加 PXE 引导选项,如 tftp-serverserver-ip-addressbootfile-name

extra_dhcp_opt 属性的值是 DHCP 选项对象的数组,每个对象都包含一个 opt_nameopt_value。IPv4 是默认版本,但您可以通过包含第三个选项 ip-version=6 来将其更改为 IPv6。

当虚拟机实例启动时,RHOSP 网络服务使用 DHCP 协议为实例提供端口信息。如果您在已连接到正在运行的实例的端口中添加 DHCP 信息,则实例仅在实例重启时使用新的 DHCP 端口信息。

一些常见的 DHCP 端口属性有: bootfile-namedns-serverdomain-namemtuserver-ip-addresstftp-server。有关 opt_name 的可接受值的完整集合,请参阅 DHCP 规格。

先决条件

  • 您必须具有 RHOSP 管理员特权。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 undercloud 凭证文件:

    $ source ~/stackrc
  3. 创建自定义 YAML 环境文件。

    示例

    $ vi /home/stack/templates/my-octavia-environment.yaml

  4. 您的环境文件必须包含 keywords parameter_defaults。在这些关键字下,添加额外的 DHCP 选项扩展 extra_dhcp_opt

    示例

    parameter_defaults:
      NeutronPluginExtensions: "qos,port_security,extra_dhcp_opt"

  5. 运行部署命令,包括核心 heat 模板、环境文件和新的自定义环境文件。

    重要

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

    示例

    $ openstack overcloud deploy --templates \
    -e <your_environment_files> \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/octavia.yaml \
    -e /home/stack/templates/my-octavia-environment.yaml

验证

  1. 提供您的凭据文件。

    示例

    $ source ~/overcloudrc

  2. 在网络(public)上创建一个新端口(new_port)。从 DHCP 规格中为新端口分配有效属性。

    示例

    $ openstack port create --extra-dhcp-option \
    name=domain-name,value=test.domain --extra-dhcp-option \
    name=ntp-server,value=192.0.2.123 --network public new_port

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

    示例

    $ openstack port show new_port -c extra_dhcp_opts

    输出示例

    +-----------------+-----------------------------------------------------------------+
    | Field           | Value                                                           |
    +-----------------+-----------------------------------------------------------------+
    | extra_dhcp_opts | ip_version='4', opt_name='domain-name', opt_value='test.domain' |
    |                 | ip_version='4', opt_name='ntp-server', opt_value='192.0.2.123'  |
    +-----------------+-----------------------------------------------------------------+

其他资源