我有两个路由器,LAN 到 WAN。
主路由器运行 OpenWRT,另一个是华硕 RT-N66U。
我现在有一台 RaspberryPi 连上了 MiniDLNA 网络。遗憾的是,连接到华硕路由器的电视看不到这个 DLNA 服务器。
ASUS 的 IP 为 192.168.0.10,拥有自己的 DHCP,用于网络那一侧的 192.168.1.x 范围内的内容
在OpenWRT中:
/etc/config/network
包含其他条目:
config interface 'lan'
option ifname 'eth1'
option force_link '1'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.0.1'
option igmp_snooping 1
config route
option interface 'lan'
option target '192.168.1.0/24'
option gateway '192.168.0.10'
ifconfig:
br-lan Link encap:Ethernet HWaddr D4:CA:6D:1B:3F:94
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::d6ca:6dff:fe1b:3f94/64 Scope:Link
inet6 addr: fd8a:8723:5b8b::1/60 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7542487 errors:0 dropped:0 overruns:0 frame:0
TX packets:13666226 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:799347954 (762.3 MiB) TX bytes:18695009301 (17.4 GiB)
eth0 Link encap:Ethernet HWaddr D4:CA:6D:1B:3F:93
inet6 addr: fe80::d6ca:6dff:fe1b:3f93/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13936911 errors:0 dropped:0 overruns:0 frame:0
TX packets:7666052 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1639255174 (1.5 GiB) TX bytes:938993450 (895.4 MiB)
Interrupt:5
eth1 Link encap:Ethernet HWaddr D4:CA:6D:1B:3F:94
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7591107 errors:0 dropped:1 overruns:0 frame:0
TX packets:13663886 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:922993879 (880.2 MiB) TX bytes:1514915277 (1.4 GiB)
Interrupt:4
我该如何做才能让电视看到另一个子网上的 DLNA?
我尝试过 avahi、igmpproxy 和其他方法,但都无济于事。
答案1
OpenWRT默认的防火墙规则会阻止多播数据包从WAN端流向LAN端。
如果您关闭 OpenWRT 防火墙 ( /etc/init.d/firewall stop
) 并关闭 multicast_snooping ( echo 0 > /sys/devices/virtual/net/br-lan/bridge/multicast_snooping
),那么它应该可以看到 DLNA 服务器。这至少对我来说有效。
不过我还没有弄清楚防火墙规则是负责什么的。