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' | +-----------------+-----------------------------------------------------------------+
其他资源
- OVN 支持的 DHCP 选项
- 动态主机配置协议(DHCP)和引导协议(BOOTP)参数
- 自定义 Red Hat OpenStack Platform 部署 指南中的环境文件 https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/17.1/html/customizing_your_red_hat_openstack_platform_deployment/assembly_configuring-the-overcloud-with-the-orchestration-service#con_environment-files_understanding-heat-templates
- 在自定义 Red Hat OpenStack Platform 部署 指南中的 overcloud 创建中包括环境文件
- 命令行界面参考中的 port create
- 命令行界面参考中的 port show