IP 多播:OVN 的 IGMP 侦听配置指南¶
如何启用它¶
为了在 OVN 驱动程序中启用 IGMP 侦听,需要在控制器节点的 /etc/neutron/neutron.conf 文件中设置以下配置
# OVN does reuse the OVS option, therefore the option group is [ovs]
[ovs]
igmp_snooping_enable = True
...
重新启动 Neutron 服务后,所有现有的网络(OVN 术语中的 Logical_Switch)都将根据 igmp_snooping_enable 配置值在 OVN 中更新,以启用或禁用 IGMP 侦听。
注意
目前,OVN 驱动程序不会在 OVN 中配置 IGMP 查询器,因此 ovn-controller 不会发送 IGMP 组播 IP 查询器来从活动成员处检索 IGMP 成员报告。
OVN 数据库信息¶
Neutron 中的 igmp_snooping_enable 配置被转换为在 OVN Northbound 数据库的 Logical_Switch 表的 other_config 列中设置的 mcast_snoop 选项
$ ovn-nbctl list Logical_Switch
_uuid : d6a2fbcd-aaa4-4b9e-8274-184238d66a15
other_config : {mcast_flood_unregistered="false", mcast_snoop="true"}
...
要查找 OVN 学习到的 IGMP 组的更多信息,请使用以下命令(仅在 igmp_snooping_enable 为 True 时填充)
$ 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]
...
注意
由于 IGMP 查询器尚未在 OVN 驱动程序中支持,因此重新启动 ovn-controller 服务将导致 OVN 忘记 IGMP 组并广播所有多播流量。此行为可能会影响更新/升级 OVN 服务时。
额外信息¶
当将多播 IP 流量发送到位于 224.0.0.X 范围内的多播组地址时,即使启用了 IGMP 侦听,多播流量也会被泛洪。请参阅 RFC 4541 会话 2.1.2
2) Packets with a destination IP (DIP) address in the 224.0.0.X range
which are not IGMP must be forwarded on all ports.
不同配置的排列组合如下:
禁用 IGMP 侦听时:IP 多播流量会泛洪到所有端口。
启用 IGMP 侦听且多播组地址 不在 224.0.0.X 范围内时:IP 多播流量 不会 被泛洪。
启用 IGMP 侦听且多播组地址 在 224.0.0.X 范围内时:IP 多播流量 会 被泛洪。
除了前面提到的
igmp_snooping_enable配置选项外,OVN 驱动程序还支持 3 个其他配置选项:igmp_flood、igmp_flood_reports和igmp_flood_unregistered。有关更多信息,请查看 ML2 配置参考页面。