在多播地址之间进行转换

网络工程 思科 纳特 思科-ios 多播
2021-07-08 05:33:24

我有一个带有错误的应用程序,该错误无法将某个多播地址识别为有效。这是我无法控制的另一个系统使用的地址,这两个系统通过多播进行通信,它们需要位于同一地址上。这两个系统都是同一个局域网。让我们说 224.0.1.1 和 224.0.2.2。

是否可以配置 Cisco 路由器以将多播目的地 224.0.1.1 重写为 224.0.2.2,反之亦然?我尝试使用多播服务反射无济于事。我认为 IOS 中的 DNAT 不支持多播地址。也欢迎 Cisco IOS 路由器之外的解决方案。

3个回答

一些Cisco 平台可以转换多播源/目标组。例如,Nexus 3500 有一项称为多播服务反射的功能,可以通过这种方式工作。还有一些其他运行 XE 的平台也支持此功能,以及一些较旧的机器(例如 7200/6500)。

在任何情况下,服务反射的工作方式如下:配置的路由器将加入源组播组 - 将其称为 (S1,G1),然后将相同的流量发送到一个新组中,该组的源位于虚拟子网上:(S2,G2)然后客户可以通过正常方式加入。

在循环等方面,这里肯定有一些潜在的设计警告,所以要小心。老实说,我主要在大型企业多播环境中看到了这一点,其中流来自第三方,并且必须修复源以防止 RPF 失控,或者需要在非常密集的环境中消除组的歧义(或者,偶尔, 两个都)。

我知道这可能只是为了举例,但同样值得注意的是,多播/D 类空间中最低的子网具有特殊意义。224.0.1.0/24 在RFC 5571 中明确定义,并且有由 IANA 维护的静态定义。路由此流量是合法的,但对于典型的最终用户应用程序来说可能是不好的形式。

如果设备位于同一 LAN 上,则流量不会通过路由器。LAN 上的流量直接从一台主机传送到另一台主机。

为了甚至路由多播流量,您需要启用多播路由,这与单播路由不同。如果组播组是链路本地组播组,则即使使用组播路由,也无法让路由器对其进行路由。此外,路由器也不会将流量从一个网络路由回同一网络。


可能有一台主机接收多播流量并将其发送到不同的多播组。不幸的是,关于主机/服务器的问题在这里是题外话。您可以尝试在商业网络的Server Fault个人网络的Super User上检查此类应用程序

我能够通过多播服务反射来实现这一点。按照此cisco 文档中的第一个配置示例进行多播到多播作为指南。我首先设置了两个独立的网络,称为 Network1(N1) 广播,并在 group1(G1) 上侦听。和N2,G2。我得到了从 N1,G1 到 N2,G2 的反射。然后我在同一个 vif 界面添加了另一个服务反射命令,得到 N2,G2 -> N1,G1。我重新配置了网络和 IP 地址以将主机放在同一个 VLAN 上。随着配置继续工作,我不需要进行任何更改。

棒状配置上的路由器

接口 G4/0.10
封装 dot1q 10
ip 地址 10.10.0.1 255.255.0.0
ip pim sparse-mode

接口 loopback0
ip 地址 192.168.1.1 255.255.255.255
ip pim 稀疏模式

ip pim rp-address 192.168.1.1 覆盖

interface vif1
ip address 10.1.1.1 255.255.255.0
ip pim sparse-mode
ip service reflect G4/0.10 destination [G1] to [G2] mask-len 32 source 10.1.1.1
ip service reflect G4/0.10 destination [G2] to [G1] ] 掩码长度 32 源 10.1.1.1
ip igmp 静态组 [G1]
ip igmp 静态组 [G2]