2

I have an application with a bug that does not recognize a certain multicast address as valid. It's an address used by another system i don't have control over, and these two systems communicate via multicast, they need to be on the same address. Both of these systems are the same LAN. Lets say 224.0.1.1 and 224.0.2.2.

Is it possible to configure a Cisco router to rewrite the multicast destinations, 224.0.1.1 to 224.0.2.2, and visa versa? I've attempted using multicast service reflection to no avail. I don't think multicast addresses are supported with DNAT in IOS. A solution outside of a Cisco IOS router is also welcome.

2

There are some Cisco platforms that can translate multicast source/destination groups. As an example the Nexus 3500 has a feature called multicast service reflection that can work this way. There are some other platforms running XE that also support this feature, as well as some older boxes (7200/6500, for example).

In any case, service reflection works as follows: the configured router will join the source multicast group - call it (S1,G1) and then originate the same traffic into a new group with a source on a virtual subnet: (S2,G2) that clients can then join via normal means.

There are definitely some potential design caveats here in terms of loops and such, so exercise caution. I've honestly primarily seen this used in large enterprise multicast environments where streams were coming from third parties and either the source had to be fixed to keep RPF from going haywire or there was a need to disambiguate groups in very dense environments (or, occasionally, both).

I understand that it may simply be for purpose of example, but it's also worth noting that the lowest subnets in the multicast/class-D space have special meaning. 224.0.1.0/24 is explicitly defined in RFC 5571 and there are static definitions maintained by the IANA. It's legitimate to route this traffic but is likely bad form for typical end-user applications.

1
  • Thank you. I tried setting up multicast service reflection again, but broke it down into individual steps. Got translation working in one direction, then the other. Then put them on the same LAN. I should have did it that way to begin with rather than all at once. Apr 3 '18 at 14:17
2

If the devices are on the same LAN, the traffic does not pass through a router. Traffic on a LAN is delivered directly from one host to another host.

To even route multicast traffic, you would need to enable multicast routing, which is different than unicast routing. If the multicast groups are link-local multicast groups, you cannot get the router to route them, even with multicast routing. Also, a router will also not route traffic from one network back to the same network.


It may be possible to have a host that receives multicast traffic and sends it to a different multicast group. Unfortunately, questions about hosts/servers are off-topic here. You could try to check for such an application on Server Fault for a business network, or on Super User for a personal network.

1
  • I was ultimately able to get this working via multicast service reflection. Even on the same interface. Apr 3 '18 at 14:24
0

I was able to get this working with multicast service reflection. Following the first configuration example in this cisco doc for multicast-to-multicast as a guide. I setup two separate networks at first call it Network1(N1) broadcasting, and listening on group1(G1). And N2, G2. I got reflection working from N1,G1, to N2,G2. Then I added another service reflect command to the same vif interface, to get N2,G2 -> N1,G1. I reconfigured the network and IP addresses to put the hosts on the same VLAN. I didn't need to make any changes as the configuration continued working.

Router on a stick config

interface G4/0.10
encapsulation dot1q 10
ip address 10.10.0.1 255.255.0.0
ip pim sparse-mode

interface loopback0
ip address 192.168.1.1 255.255.255.255
ip pim sparse-mode

ip pim rp-address 192.168.1.1 override

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] mask-len 32 source 10.1.1.1
ip igmp static-group [G1]
ip igmp static-group [G2]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.