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