组播的地址是保留的D类地址从224.0.0.0—239.255.255.255,而且一些地址有特定的用处如,224.0.0.0—244.0.0.255
只能用于局域网中,路由器是不会转发的,并且224.0.0.1是所有主机的地址包括网关,用于永久组播组。224.0.0.2所有路
由器的地址,224.0.0.5 所有ospf路由器的地址,224.0.13是PIMv2路由器的地址;239.0.0.0—239.255.255.255是私有
地址(如192.168.x..x);224.0.1.0—238.255.255.255可以用与Internet上的。
2层的MAC地址是如何与3层的IP地址进行映射的呢?
通过将MAC地址的前25位强行规定位0100.5e,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如:
IP地址: 1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx
MAC地址: 00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx
显然有32个IP地址(有5个y可以不一样)对应一个MAC地址,所以要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。
1、首先查看一下,本机都有哪些组播地址
[root@efapp04 ~]# netstat -gn
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 224.0.0.1
eth4 1 224.0.0.1
bond0 1 228.0.1.1 --->用于tomcat session复制的组播地址
bond0 1 228.0.1.10 --->用于tomcat_mobile session复制的组播地址
bond0 1 224.0.0.1
bond1 1 224.0.0.1
2、确定一下本机是否忽略组播信息(1 忽略,0 接收)
[root@efapp04 ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
1
3、当设置忽略时,ping组播地址是没有任何回应的.
[root@efapp04 ~]# ping 228.0.1.1
PING 228.0.1.1 (228.0.1.1) 56(84) bytes of data.
--- 228.0.1.1 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 4999ms
4、同一个组的服务器,都设置让接收组播信息(54-58)
[root@efapp04 ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
[root@efapp04 ~]# cat /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
0
5、在ping一下,看同一个组的服务器是否可以正常接收组播信息
[root@efapp04 ~]# ping 228.0.1.1
PING 228.0.1.1 (228.0.1.1) 56(84) bytes of data.
64 bytes from 10.8.1.54: icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from 10.8.1.55: icmp_seq=2 ttl=64 time=0.024 ms (DUP!) ---> DUP代表是同一个组播地址,所以回应是重复的.
64 bytes from 10.8.1.56: icmp_seq=3 ttl=64 time=0.020 ms (DUP!)
64 bytes from 10.8.1.57: icmp_seq=4 ttl=64 time=0.022 ms (DUP!)
64 bytes from 10.8.1.58: icmp_seq=5 ttl=64 time=0.018 ms (DUP!)
同过以上,可以确定同一个组的服务器都可以收到组播信息
评论