4.10. 在 ML2/OVN 部署中启用多播

要支持多播流量,请修改部署的安全配置,以允许多播流量到达多播组中的虚拟机(VM)实例。要防止多播流量填充,启用 IGMP snooping。

重要

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

先决条件

  • 使用 ML2/OVN 机制驱动程序的 OpenStack 部署。

流程

  1. 配置安全性,以允许多播到适当的虚拟机实例。例如,创建一对安全组规则,以允许来自 IGMP querier 的 IGMP 流量进入和退出虚拟机实例,以及允许多播流量的第三个规则。

    示例

    安全组 mySG 允许 IGMP 流量进入并退出虚拟机实例。

     openstack security group rule create --protocol igmp --ingress mySG
    
     openstack security group rule create --protocol igmp --egress mySG

    另一种规则允许多播流量访问虚拟机实例。

    openstack security group rule create  --protocol udp mySG

    作为设置安全组规则的替代选择,一些操作员选择有选择地禁用网络上的端口安全性。如果您选择禁用端口安全性,请考虑和规划任何相关的安全风险。

  2. 在 undercloud 节点上的环境文件中设置 heat 参数 NeutronEnableIgmpSnooping: True。例如,将以下行添加到 ovn-extras.yaml 中。

    示例

    parameter_defaults:
            NeutronEnableIgmpSnooping: True

  3. openstack overcloud deploy 命令中包含环境文件以及与您环境相关的任何其他环境文件并部署 overcloud。

    $ openstack overcloud deploy \
    --templates \
    …
    -e <other_overcloud_environment_files> \
    
    -e ovn-extras.yaml \
    …

    <other_overcloud_environment_files> 替换为属于您现有部署的环境文件列表。

验证

  1. 验证是否启用了多播 snooping。列出北向数据库 Logical_Switch 表。

    $ ovn-nbctl list Logical_Switch

    输出示例

    _uuid         : d6a2fbcd-aaa4-4b9e-8274-184238d66a15
    other_config  : {mcast_flood_unregistered="false", mcast_snoop="true"}
    ...

    网络服务(neutron) igmp_snooping_enable 配置转换为 OVN 北向数据库中 Logical_Switch 表的 other_config 列中设置的 mcast_snoop 选项。请注意,mcast_flood_unregistered 始终为 "false"。

  2. 显示 IGMP 组。

    $ ovn-sbctl list IGMP_group

    输出示例

    _uuid    : 2d6cae4c-bd82-4b31-9c63-2d17cbeadc4e
    address  : "225.0.0.120"
    chassis  : 34e25681-f73f-43ac-a3a4-7da2a710ecd3
    datapath : eaf0f5cc-a2c8-4c30-8def-2bc1ec9dcabc
    ports    : [5eaf9dd5-eae5-4749-ac60-4c1451901c56, 8a69efc5-38c5-48fb-bbab-30f2bf9b8d45]
    ...