我们可以在 IGMP V2 或 V3 中进行目的端口过滤吗?

网络工程 路由器 多播 igmp
2021-07-06 13:02:20

是否可以使用 IGMP 从具有特定目标端口的多播地址获取流量?例如,我有一些多播流,如 239.192.7.1:5000、239.192.7.1:5001 到 239.192.7.1:5009。有什么方法可以让我只请求来自特定端口的流量 - 例如仅来自 239.192.7.1:5000 ?

1个回答

是否可以使用 IGMP 从具有特定目标端口的多播地址获取流量?

简答:

你有三个不错的选择:

  • 要求一些发件人/听众更改他们的组
  • 使用 PIM-SSM 部署 IGMPv3
  • 使用扩展 ACL 拒绝某些 UDP 端口(例如:Catalyst 4500 将其称为端口 ACL ……因为它需要对每个主机进行手动干预,这不是很可扩展,并且交换机端口 ACL 仅在某些交换平台上受支持)

细节:

严格来说,任何 IGMPv2 或 IGMPv3 侦听器都不能指定要侦听的端口。假设您有以下情况:

  • 位于 172.16.1.50 的源发送到 239.192.7.1:5000
  • 位于 172.16.1.51 的源发送到 239.192.7.1:5001
  • 位于 172.16.1.59 的源发送到 239.192.7.1:5009

PIM SSM / IGMPv3包括排除某些源 IP 地址的能力。这意味着 IGMPv3 侦听器可以排除一个或多个源 IP;例如,IGMPv3 侦听器可以排除对 172.16.1.59 的侦听。

实际上,这是一个设计问题。当有人在您的网络中为多播(大概使用 IGMPv2 和 PIM-SPARSE 或 PIM-DENSE)分配了 239.192.7.1 时,他们不应该将相同的组地址分配给多个应用程序。解决此问题的最简单方法是更改​​一个应用程序的组并继续使用 IGMPv2。

如果您没有人协调多播地址,那么请认为这是开始这样做的一个很好的理由。有一些方法可以控制谁在子网之间发送什么组播(至少在 Cisco IOS 中)。随着组织扩大对多播的使用,控制谁发送内容变得非常重要。