4.9. 在 ML2/OVS 部署中为提供商网络启用多播侦听
要防止多播数据包附加到 Red Hat OpenStack Platform(RHOSP)提供商网络中的每个端口,您必须启用多播侦听。在 RHOSP 部署中,使用带有 Open vSwitch 机制驱动程序(ML2/OVS)的 Modular Layer 2 插件,您可以通过声明在 YAML 格式的环境文件中声明 RHOSP Orchestration(heat) NeutronEnableIgmpSnooping 参数进行此操作。
您应该在将配置应用到生产环境之前,进行彻底测试并了解任何多播侦听配置。错误配置可能会破坏多播或导致错误的网络行为。
先决条件
- 您的配置必须只使用 ML2/OVS 提供商网络。
您的物理路由器还必须启用 IGMP 侦听功能。
也就是说,物理路由器必须在提供商网络上发送 IGMP 查询数据包,以便从多播组成员请求常规 IGMP 报告,以维护 OVS 中的 snooping 缓存(以及物理网络)。
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)使用一组称为模板的计划来安装和配置您的环境。您可以使用自定义环境文件来自定义 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
验证
验证多播侦听是否已启用。
示例
# sudo ovs-vsctl list bridge br-int
输出示例
... mcast_snooping_enable: true ... other_config: {mac-table-size="50000", mcast-snooping-disable-flood-unregistered=True} ...
其他资源
- Red Hat OpenStack Platform 中的组件、插件和驱动程序支持中的 Neutron
- Director 安装和使用指南中的环境文件
- Director 安装和使用指南中的 在 overcloud 创建中包含的环境文件
- Overcloud 参数指南中的 networking(neutron) 参数
- 创建和管理实例指南中的创建安全组