4.9. 为 ML2/OVS 部署中的提供商网络启用多播侦听
要防止对 Red Hat OpenStack Platform (RHOSP) 提供商网络中的每个端口填充多播数据包,您必须启用多播 snooping。在使用带有 Open vSwitch 机制驱动程序(ML2/OVS)的 Modular Layer 2 插件的 RHOSP 部署中,您可以通过在 YAML 格式的环境文件中声明 RHOSP Orchestration (heat) NeutronEnableIgmpSnooping
参数来实现此目的。
在将其应用到生产环境之前,您应该全面测试并了解任何多播侦听配置。错误配置可能会破坏多播或导致网络行为错误。
先决条件
- 您的配置必须只使用 ML2/OVS 提供商网络。
您的物理路由器还必须启用 IGMP 侦听功能。
也就是说,物理路由器必须发送提供商网络上的 IGMP 查询数据包,以便从多播组成员请求常规 IGMP 报告,以维护 OVS 中的侦听缓存(以及物理网络)。
RHOSP 网络服务安全组规则必须就位,以允许到虚拟机实例(或禁用端口安全性)的入站 IGMP。
在本例中,为
ping_ssh
安全组创建了一个规则:示例
$ openstack security group rule create --protocol igmp --ingress ping_ssh
流程
在 undercloud 主机上,以 stack 用户身份登录,创建一个自定义 YAML 环境文件。
示例
$ vi /home/stack/templates/my-ovs-environment.yaml
提示编排服务(heat)使用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件自定义 overcloud 的各个方面,它是为 heat 模板提供自定义的特殊模板类型。
在
parameter_defaults
下的 YAML 环境文件中,将NeutronEnableIgmpSnooping
设置为 true。parameter_defaults: NeutronEnableIgmpSnooping: true ...
重要确保在冒号 (:) 和
true
间添加一个空格字符。运行
openstack overcloud deploy
命令,并包含核心 heat 模板、环境文件以及新的自定义环境文件。重要环境文件的顺序非常重要,因为后续环境文件中定义的参数和资源更为优先。
示例
$ openstack overcloud deploy --templates \ -e [your-environment-files] \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/my-ovs-environment.yaml
验证
验证是否启用了多播 snooping。
示例
# sudo ovs-vsctl list bridge br-int
输出示例
... mcast_snooping_enable: true ... other_config: {mac-table-size="50000", mcast-snooping-disable-flood-unregistered=True} ...
其他资源
- Component, Plug-In, and Driver Support in Red Hat OpenStack Platform 中的 Neutron
- 自定义 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 创建中包括环境文件
- Overcloud 参数指南中的 networking(neutron) 参数
- 创建和管理实例指南中的 创建安全组