我在不同的子网上有两个专用局域网,例如192.168.100.0/24和192.168.200.0/24。这两个LAN都在DHCP上。在它们之间有一个(Linux)服务器在不同的接口上连接到它们,例如, eth0和wlan0。
允许两个子网上的主机在两个LAN内部和两个LAN之间进行通信,这在使用IP地址时非常有效。在其中一个LAN内,主机之间的通信可以根据本地主机名正常工作。两个局域网不起作用的是名称解析。
示例:如果我想要访问其他LAN上的主机,我可以成功ping 192.168.100.33
但不能ping MediaServer
。如果我坐在同一个局域网上,那么两者都可以正常工作。
两个局域网都非常不同个人电脑,笔记本电脑,打印机,NAS,Mediaserver,智能手机等等都在变化(因此也是DHCP)。
我搜索了很长时间(但我还是这个话题的新手)并且认为这是在NetBios,WINS上完成的。我尝试了许多转发(如下面的示例; iptables的ferm语法),但遗憾的是,所有这些都没有帮助。
interface eth0 protocol udp dport 137 mod addrtype dst-type BROADCAST DNAT to 192.168.200.255;
interface wlan0 protocol udp dport 137 mod addrtype dst-type BROADCAST DNAT to 192.168.100.255;
我现在被困了,可能是因为我错过了一些重要的事情或者误解了一些事情。任何提示和技巧都非常感谢!
答案 0 :(得分:0)
您可能希望在可从两个网络访问的计算机上设置DNS服务器(例如:您的Linux计算机),并在所有主机上指定DNS服务器的地址。一些有趣的链接:
https://jack-brennan.com/dns-with-bind9-on-debian-part-22/
您还可以通过编辑/ etc / hosts文件并手动添加计算机的IP地址和主机名来解决此问题(并非真正推荐)。
以下是一个例子:
root @ wagmachine:〜#cat / etc / hosts
192.168.1.35 machine2
我的机器现在将machine2翻译为192.168.1.35
但是,请注意第二个解决方案仅适用于编辑/ etc / hosts文件的主机。要使此解决方案起作用,您需要修改所有主机上的/ etc / hosts。
此外,如果您的DHCP动态分配地址,则需要编辑/ etc / hosts,这通常会使其成为一个糟糕的长期解决方案。
最诚挚的问候,
尼古拉斯