有一个有两个接口的OpenWRT路由器:br0
和wlan0
:
- br0:192.168.129.0/24
- WLAN0:192.168.130.0/24
br0
位于防火墙区域内lan
并且wlan0
位于防火墙区域内alien
。
我已经配置了区域lan
并且alien
它们可以互相交谈。
现在主机已连接br0
并wlan0
可以成功 ping/ssh 对方,这很好。例如,192.168.129.200 可以 ping/ssh 192.168.130.200,反之亦然。
我的问题是,有没有办法让一个子网中的主机“发现”另一个子网中的主机?例如,在《反恐精英》等 LAN 游戏中,不同子网中的笔记本电脑无需指定 IP 地址即可发现彼此。
答案1
这取决于发现的方法。在极有可能的情况下,这些程序使用链路本地广播(例如,向 发送消息255.255.255.255
),那么就没有办法让它工作(至少没有好的、符合标准的方法),因为这种广播被定义为链路本地。你可以要做的就是使用单个子网将链路桥接为一个虚拟链路,但这似乎不是您想要的,因为您将它们放入不同的防火墙区域。
另一方面,如果程序使用 IP 多播,那么很可能有办法处理它,但我不能说我对多播足够熟悉,无法就具体程序提供建议,而且我非常怀疑他们实际上是否使用多播。
在他们使用 mDNS 的不太可能的情况下,解决问题的最简单方法可能是在路由器上进行设置,avahi-daemon
以便为 mDNS 桥接子网。