WARNING: THE BELOW CONFIGURATION HAS FLAWS. IP PIM SPARSE-MODE NEEDS A RENDEZVOUS POINT WHICH IS NOT DEFINED HENCE MULTICAST ROUTING IS NOT POSSIBLE. I WILL READ UP MORE ABOUT PIM TO UNDERSTAND BETTER. THIS POST IS RESERVED FOR ARCHIVE.
I just found out that Multicast is a hated subject by many people, in my opinion to provide a solution for the real world I have to get used to working with protocol which I do not like. It is the job for a network engineer to provide a solution to meet the network requirements.
I have read from sources including cisco’s documentation on how to implement broadcast to multicast translation and vice versa.
I could not test this concept because IP SLA does not allow broadcast as a destination ip address, it allows however a directed broadcast as the destination ip address.
So here’s the set up:
fa0/0 of R1 is 10.0.0.0/24, broadcast source is 10.0.0.5. Broadcast sender will send a broadcast with destination port 12345.
fa0/0 of R2 is 10.0.1.0/24, broadcast receiver is 10.0.1.2.
I cannot test the concept, as I found out that IP SLA disallows broadcast to be the destination ip address. I used extended traceroute with destination port as 12345, but extended traceroute is ip and I do not think it is a udp packet. The result from the debug ip mpacket shows nothing, the result from debug ip packet detail however only shows broadcast, but no translation was done.
Here are the configurations based on these references:
http://www.cisco.com/en/US/docs/ios/12_0/np1/configuration/guide/1cmulti.html#wp6877 (IP Multicast helper example)
IP multicasting is disabled by default on routers including MLS.
R1(config)#ip forward-protocol udp 12345
Conversion cannot be done through fast switching, I assumed, to be CEF. ip forward-protocol is necessary for normal conversion without fast switching. In here the destination port is 12345 udp.
Interface fa0/0 is the interface connecting to the source, ip directed-broadcast is disabled by default. The directed broadcast address for fa0/0 will be 10.0.0.255, this will not be treated as a broadcast address until it hits the router. Directed broadcast will change to local broadcast 255.255.255.255 once it hits the router. Router by default will not forward broadcast to another subnet hence local broadcast will still be processed but will be dropped within the local network. The command ip directed-broadcast enables a broadcast to be traversed to another subnet. The broadcast packet is encapsulated in an ip header packet with the destination subnet address, once it reaches the destination the ip header is stripped off and flood the subnet with the local broadcast.
R1(config-if)#ip pim sparse-mode
PIM has 3 modes, sparse, dense and sparse-dense.
Dense mode assumes that the nodes in the multicast group are densely populated hence the action is to send multicast periodically.
Sparse mode assumes that the nodes in the multicast group are sparsely (scattered) populated, hence multicast will be sent through “on-demand” basis, in other words the node has to ask for it to get multicast.
R1(config-if)#ip multicast helper-map broadcast 184.108.40.206 mcxlate
This command do the magic of translating broadcast into multicast and multicast back to broadcast. mcxlate is the name of my access-list.
R1(config)#ip access-list extended mcxlate
R1(config-ext-nacl)#10 permit udp any any eq 12345
R1(config)#ip route 10.0.1.0 255.255.255.0 172.30.1.2
Static route to the destination.
Based on the diagram in cisco doc I should configure fa0/1 at the last hop router (R2), now this is quite confusing, I hope reader can give your comment about this.
R2(config-if)#ip multicast helper-map 220.127.116.11 10.0.1.255 mcxlate
This is to convert the multicast address to directed broadcast address that should be for broadcast receiver’s subnet.
R2(config)#do sh ip access
Extended IP access list mcxlate
10 permit udp any any eq 12345
20 deny udp any any (2 matches)
R2(config)#ip route 10.0.0.0 255.255.255.0 172.30.1.1
Note:There is no need to use ip igmp join command if you enabled ip multicast helper-map command. IOS will automatically join the related hosts to the multicast group.