21.4. 为端口分配 DHCP 属性
您可以使用 Red Hat Openstack Plaform (RHOSP) Networking 服务(neutron)扩展来添加网络功能。您可以使用额外的 DHCP 选项扩展(extra_dhcp_opt)来使用 DHCP 属性配置 DHCP 客户端的端口。例如,您可以添加 PXE 引导选项,如 tftp-server、server-ip-address 或 bootfile-name 到 DHCP 客户端端口。
extra_dhcp_opt 属性的值是 DHCP 选项对象数组,其中每个对象包含一个 opt_name 和 opt_value。IPv4 是默认版本,但您可以通过包含第三个选项 ip-version=6 来更改 IPv6。
当虚拟机实例启动时,RHOSP 网络服务使用 DHCP 协议向实例提供端口信息。如果您将 DHCP 信息添加到已连接到正在运行的实例的端口,实例仅在实例重启时使用新的 DHCP 端口信息。
一些常见的 DHCP 端口属性有:bootfile- name ,,dns- serverdomain-name,mtu,server-ip-address, 和 tftp-server。有关 opt_name 的完整可接受值集合,请参阅 DHCP 规格。
先决条件
- 您必须具有 RHOSP 管理员特权。
流程
-
以
stack用户身份登录 undercloud 主机。 提供 undercloud 凭证文件:
$ source ~/stackrc创建自定义 YAML 环境文件。
示例
$ vi /home/stack/templates/my-environment.yaml您的环境文件必须包含关键字
parameter_defaults。在这些关键字下,添加额外的 DHCP 选项扩展extra_dhcp_opt。示例
parameter_defaults: NeutronPluginExtensions: "qos,port_security,extra_dhcp_opt"运行部署命令,并包含核心 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-environment.yaml
验证
提供您的凭据文件。
示例
$ source ~/overcloudrc在网络(
公共)上创建一个新端口(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显示端口的详细信息(
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' | +-----------------+-----------------------------------------------------------------+