为什么我无法禁用多播请求

时间:2013-05-04 13:13:23

标签: linux networking

我使用以下命令禁用eth0接口的组播模式,但我不能工作:

sudo ifconfig eth0 -multicast

当这样做时,eth0的配置是这样的:

ifconfig -v eth0 

eth0    Link encap:Ethernet  HWaddr 00:16:3E:E8:43:01  
          inet addr:10.232.67.1  Bcast:10.232.67.255  Mask:255.255.255.0
          UP BROADCAST RUNNING  MTU:1500  Metric:1
          RX packets:46728751 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15981372 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8005709841 (7.4 GiB)  TX bytes:3372203819 (3.1 GiB)

然后,我在主机10.232.67.2中执行icmp echo_request:

ping 224.0.0.1

和tcpdump主机10.232.67.1上的包:

tcpdump -i eth0 host 224.0.0.1 -n

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
21:11:03.182813 IP 10.232.67.2 > 224.0.0.1: ICMP echo request, id 3639, seq 324, length 64
21:11:04.184667 IP 10.232.67.2 > 224.0.0.1: ICMP echo request, id 3639, seq 325, length 64
21:11:05.186781 IP 10.232.67.2 > 224.0.0.1: ICMP echo request, id 3639, seq 326, length 64

那么,如何禁用组播模式?

顺便说一下,当我禁用广播时:

sudo ifconfig eth0 -broadcast

错误信息是:

  

警告:接口eth0仍处于广播模式。

那么,为什么不能停止广播模式呢?

1 个答案:

答案 0 :(得分:2)

要在接口上禁用多播(你没错):

ifconfig eth0 -multicast

tcpdump没有-p标志会将接口置于PROMISCUOUS模式,因此它会捕获线路上的所有流量。如果您在集线器上,则可以看到发往/来自其他人的流量。当接口未处于混杂模式时,它会忽略未发送给它的所有流量。如果您尝试使用tcpdump并在没有混杂模式的情况下ping并禁用多播,则不应该看到流量:

tcpdump -p -i eth0 host 224.0.0.1 -n

您不想禁用BROADCAST模式。它只是指定子网的广播地址。