我使用以下命令禁用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仍处于广播模式。
答案 0 :(得分:2)
要在接口上禁用多播(你没错):
ifconfig eth0 -multicast
tcpdump没有-p标志会将接口置于PROMISCUOUS模式,因此它会捕获线路上的所有流量。如果您在集线器上,则可以看到发往/来自其他人的流量。当接口未处于混杂模式时,它会忽略未发送给它的所有流量。如果您尝试使用tcpdump并在没有混杂模式的情况下ping并禁用多播,则不应该看到流量:
tcpdump -p -i eth0 host 224.0.0.1 -n
您不想禁用BROADCAST模式。它只是指定子网的广播地址。