环境:两台服务器通过路由器连接,均运行Ubuntu 16.04
我使用以下命令来禁用多播:
ifconfig eno1 -multicast
或者
ip link set eno1 multicast off
并检查结果,没有多播标志:
$ ifconfig eno1
eno1 Link encap:Ethernet HWaddr f8:ca:b8:4b:5b:88
inet addr:192.168.1.240 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::34c4:560f:208a:9249/64 Scope:Link
UP BROADCAST RUNNING MTU:1500 Metric:1
RX packets:193 errors:0 dropped:0 overruns:0 frame:0
TX packets:742 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:39493 (39.4 KB) TX bytes:602751 (602.7 KB)
Interrupt:20 Memory:f7200000-f7220000
然后我使用iperf测试多播,一台服务器发送包:
$ iperf -c 226.94.1.1 -u -i 1
另一台服务器仍然接收包:
$ iperf -s -u -B 226.94.1.1 -i 1
------------------------------------------------------------
Server listening on UDP port 5001
Binding to local address 226.94.1.1
Joining multicast group 226.94.1.1
Receiving 1470 byte datagrams
UDP buffer size: 208 KByte (default)
------------------------------------------------------------
[ 3] local 226.94.1.1 port 5001 connected with 192.168.1.240 port 36855
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 128 KBytes 1.05 Mbits/sec 0.002 ms 0/ 89 (0%)
[ 3] 1.0- 2.0 sec 128 KBytes 1.05 Mbits/sec 0.002 ms 0/ 89 (0%)
看来多播模式没有禁用。我不知道为什么。
谢谢你的帮助。
答案1
尝试从 avahi-daemon 配置中手动删除多播:
编辑/etc/init/avahi-daemon.conf
将行替换start on (filesystem and started dbus)
为start on (never and filesystem and started dbus)
然后将该stop
行替换为stop on stopping dbus
如果该stop
行不存在,只需stop on stopping dbus
在该start on
行下方添加
您可以尝试在更改后重新启动网络以使更改生效,或者只需重新启动即可解决问题。