我运行两台基于 Xen/CentOS 6.5 的虚拟机,它们都由同一家公司托管,但连接到不同物理位置的不同网络(基本 /24s,带有单个网关 .1)。我在第一台主机上开发了一个 iptables 防火墙,其中一部分记录并丢弃来自各种保留网络的流量:192.168.0.0/16、127.0.0.0/8 等。此列表中包括 224.0.0.0/4。在第一台虚拟机上,我很少看到往返于任何保留网络的流量,并且可以安全地假设它是伪造的,并放心地丢弃它。
然而,当我在第二台虚拟机上安装了同一组 iptables 规则后,它每隔几分钟就会开始记录从 0.0.0.0 到 224.0.0.1 的数据包。
Jan 6 21:44:43 server kernel: ipt (reserved): IN=eth0 OUT= MAC=01:00:5e:00:00:01:00:25:90:2f:69:a8:08:00 SRC=0.0.0.0 DST=224.0.0.1 LEN=32 TOS=0x00 PREC=0xC0 TTL=1 ID=0 DF PROTO=2
tcpdump 已澄清这些数据包实际上是 IGMPv2 多播数据包。
19:44:43.779680 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto IGMP (2), length 32, options (RA))
0.0.0.0 > all-systems.mcast.net: igmp query v2
主机对 IGMP 的了解似乎是:
[root@server ~]# cat /proc/net/igmp
Idx Device : Count Querier Group Users Timer Reporter
1 lo : 1 V3
010000E0 1 0:00000000 0
2 eth0 : 1 V3
010000E0 1 0:00000000 0
顺便说一句,iptables 日志行中的 src/dst MAC 地址既不是来自主机接口,也不是网关接口(至少根据 arp),如果有任何区别的话。
问题:
- 这种类型的流量对于基本服务器类型(非路由器)主机来说是否合法使用?
- 我的主机是否应该在路由器那一侧看到它?
- 如果是的话,放弃它会让我失去什么?
- 如果我的规则格式正确,我是否应该修改规则以接受适当的--pkt 类型的广播/多播数据包?
- 如果没有,有什么方法可以通知另一端停止向我的接口传送?
感谢您的帮助。
答案1
有关地址 224.0.0.1 的信息
The All Hosts multicast group addresses all hosts on the same network segment.
我认为这是一个默认地址多播,您可以从该地址丢弃流量,有关默认多播地址的更多信息http://en.wikipedia.org/wiki/Multicast_address