我在我的路由器上安装了 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
这些多播数据包可以在哪里过滤/丢弃?