我的家庭网络将上网设备和IoT设备划分到了两个隔离的VLAN中, ID分别为1和4, 然后使用路由器将它们连接起来。现在考虑AirPlay投屏的场景, 手机作为AirPlay的客户端, 会发送mDNS请求来寻找服务端, 电视是AirPlay的服务端, 会发送mDNS广播来让客户端发现它。然而, 手机属于上网设备, 在VLAN 1中, 我将电视认为是IoT设备, 接入VLAN 4。mDNS是基于IP组播的, 一般情况下难以跨越VLAN, 因此需要一些方法把这两个VLAN的mDNS接起来。
我最终选择将接入VLAN 1的树莓派也接入VLAN 4, 然后开启mDNS Repeater (Reflector?)。开启的方法非常简单, 仅需将/etc/avahi/avahi-daemon.conf
文件的enable-reflector=no
修改为enable-reflector=yes
即可。同时还可以设置一下allow-interfaces
参数。
顺便一提, 华为网络设备也有类似的功能, 但是只在最高端的型号上提供, 我的低端型号用不了……
发表评论