4.9. 在 ML2/OVS 部署中为提供商网络启用多播侦听

要防止对 Red Hat OpenStack Platform (RHOSP)提供商网络中的每个端口进行多播数据包,您必须启用多播侦听。在使用带有 Open vSwitch 机制驱动程序(ML2/OVS)的 Modular Layer 2 插件的 RHOSP 部署中,您可以在 YAML 格式的环境文件中声明 RHOSP Orchestration (heat) NeutronEnable IgmpSnooping 参数。

重要

在将它应用到生产环境之前,您应该彻底测试并了解任何多播侦听配置。错误配置可能会破坏多播或导致不正确的网络行为。

先决条件

  • 您的配置必须只使用 ML2/OVS 提供商网络。
  • 您的物理路由器还必须启用 IGMP 侦听功能。

    也就是说,物理路由器必须在提供商网络上发送 IGMP 查询数据包,以便从多播组成员请求常规 IGMP 报告,以便在 OVS 中维护 snooping 缓存(用于物理网络)。

  • 必须放置 RHOSP 网络服务安全组规则,以允许对虚拟机实例(或禁用端口安全)入站 IGMP。

    在本例中,为 ping_ssh 安全组创建了一个规则:

    示例

    $ openstack security group rule create --protocol igmp --ingress ping_ssh

流程

  1. 在 undercloud 主机上,以 stack 用户身份登录,创建自定义 YAML 环境文件。

    示例

    $ vi /home/stack/templates/my-ovs-environment.yaml

    提示

    编排服务(heat)使用一组名为 template 的计划来安装和配置您的环境。您可以使用自定义环境文件自定义 overcloud 的各个方面,这是为 heat 模板提供自定义的特殊模板。

  2. parameter_defaults 下的 YAML 环境文件中,将 NeutronEnableIgmpSnooping 设置为 true。

    parameter_defaults:
        NeutronEnableIgmpSnooping: true
        ...
    重要

    确保您在冒号(:)和 true 之间添加空格字符。

  3. 运行 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}
    ...

其他资源