0

我在我的路由器上安装了 openWRT 发行版,并在其中启用了对 avahi 的支持。我的目标是在我的网络中发现网络服务。

我用宣布的服务将我的 PC 插入 LAN 端口。在路由器上,我在网桥接口上运行 tcpdump:tcpdump -i br0 -vvn udp port 5353

在 avahi 浏览执行期间,我收到输出:root@localhost:~# avahi-browse -art

21:55:22.995004 IP (tos 0x0, ttl 255, id 0, offset 0, flags [DF], proto UDP (17), length 74)
    192.168.1.1.5353 > 224.0.0.251.5353: [udp sum ok] 0 PTR (QM)? _services._dns-sd._udp.local. (46)

但是在我的 PC 上,wireshark 在那次通话期间没有显示任何多播查询,因此没有找到服务。

这是否意味着路由器以某种方式过滤多播数据包?我知道的唯一方法是过滤 ebtables,它没有显示过滤 mDNS 地址:

root@localhost:~# ebtables -L
Bridge table: filter

Bridge chain: INPUT, entries: 1, policy: ACCEPT
-j RO_INPUT

Bridge chain: FORWARD, entries: 1, policy: ACCEPT
-j RO

Bridge chain: OUTPUT, entries: 1, policy: ACCEPT
-j IGMPPROXY

Bridge chain: RO, entries: 0, policy: RETURN

Bridge chain: RO_INPUT, entries: 0, policy: RETURN

Bridge chain: IGMPPROXY, entries: 4, policy: RETURN
-p IPv4 -o wl0.1 --ip-dst 239.0.0.0/8 -j DROP 
-p IPv4 -o wl0.2 --ip-dst 239.0.0.0/8 -j DROP 
-p IPv4 -o wl0.3 --ip-dst 239.0.0.0/8 -j DROP 
-p IPv4 -o br0 --ip-dst 239.0.0.0/8 -j DROP 

这些多播数据包可以在哪里过滤/丢弃?

4

1 回答 1

0

我发现在我的路由器中启用了监听,我认为这对应于IGMP 监听

禁用它后,多播 DNS 查询到达目的地并显示为wireshark。

这是我所做的(当然路径可能因不同的硬件和发行版而异):

echo "0" > /proc/hwswitch/default/snooping
于 2014-03-11T08:44:25.077 回答