====== Config devices for MCAST ======
===== Enable mcast on iface =====
Kernels support MCAT by default. Test
grep CONFIG_IP_MULTICAST //boot/config*
[root@localhost vm00]# grep CONFIG_IP_MUL /boot/config-3.8.*
/boot/config-3.8.6-203.fc18.x86_64:CONFIG_IP_MULTICAST=y
/boot/config-3.8.6-203.fc18.x86_64:CONFIG_IP_MULTIPLE_TABLES=y
/boot/config-3.8.7-201.fc18.x86_64:CONFIG_IP_MULTICAST=y
/boot/config-3.8.7-201.fc18.x86_64:CONFIG_IP_MULTIPLE_TABLES=y
/boot/config-3.8.8-202.fc18.x86_64:CONFIG_IP_MULTICAST=y
/boot/config-3.8.8-202.fc18.x86_64:CONFIG_IP_MULTIPLE_TABLES=y
Disable Multicast:
ifconfig eth0 -multicast
Enable Multicast:
ifconfig eth0 multicast
If you want to limit the multicast traffic, you have to add a dedicate route on the network device you have defined :
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
Result on routing table :
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
78.46.74.27 0.0.0.0 255.255.255.224 U 0 0 0 eth0
224.0.0.0 0.0.0.0 240.0.0.0 U 0 0 0 eth1
0.0.0.0 78.46.74.1 0.0.0.0 UG 0 0 0 eth0
==== ping ====
Enable linux device to respons to multicast ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
ping 224.0.0.1 -Ibr0
===== Useful commands =====
cat /proc/net/igmp List multicast group to which the host is subscribed. Use "Internet Group Management Protocol". (See /usr/src/linux/net/core/igmp.c)
cat /proc/net/dev_mcast List multicast interfaces. (See /usr/src/linux/net/core/dev_mcast.c)
ping 224.0.0.1 All hosts configured for multicast will respond with their IP addresses
ping 224.0.0.2 All routers configured for multicast will respond
ping 224.0.0.3 All PIM routers configured for multicast will respond
ping 224.0.0.4 All DVMRP routers configured for multicast will respond
ping 224.0.0.5 All OSPF routers configured for multicast will respond
Show mcast group:
netstat -g
ip maddr show
===== mcast test =====
* http://serverfault.com/questions/211482/tools-to-test-multicast-routing
* http://www.yolinux.com/TUTORIALS/LinuxTutorialNetworking.html#MULTICAST
* http://ibiblio.org/pub/linux/docs/HOWTO/other-formats/html_single/Multicast-HOWTO.html
* http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge#Snooping
===== Mcast testing and configuration =====
To check that multicast is enabled
ifconfig -a
Needed interfaces should have "MULTICAST" indicated
Jini multicast groups:
JINI-ANOUNCEMENT(224.0.1.84)
JINI-REQUEST(224.0.1.85)
Routing tables and multicast groups
netstar -rn
netstat -gns
ip maddress list
route -n
If the destination 224.0.0.0 entry is not present you will need to enable multicast routing.
Default multicast group (replies from all multicast enabled hosts)
ping -s 224.0.0.1
ping -c 2 224.0.0.1
Snooping multicast packets
snoop -x 0 -d hme0 224.0.1.84
snoop -x 0 -d hme0 224.0.1.85
Adding the Multicast virtual network to the router table
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
route add 224.0.0.0 netmask 240.0.0.0 dev eth0
route add -net 224.0.0.0 -netmask 240.0.0.0 -interface en0 (BSD)
ip route add 224.0.0.0/4 dev eth0 (Linux)
Now, tell Linux to forward packets:
echo 1 > /proc/sys/net/ipv4/ip_forward
On Redhat systems, one can often configure this route statically via the network setup configuration tools.
Alternatively, try executing this line as part of a startup script in /etc/rc.d/*.
List multicast group to which the host is subscribed.
cat /proc/net/igmp
List multicast interfaces.
cat /proc/net/dev_mcast
All hosts configured for multicast will respond with their IP addresses
ping 224.0.0.1
All routers configured for multicast will respond
ping 224.0.0.2
All PIM routers configured for multicast will respond
ping 224.0.0.3
All DVMRP routers configured for multicast will respond
ping 224.0.0.4
All OSPF routers configured for multicast will respond
ping 224.0.0.5
IP sockets connections
netstat -f inet -n
What is on port 1023
lsof -i:1023
===== Other resources =====
* http://www.nmsl.cs.ucsb.edu/MulticastSocketsBook/