我正在将 2 个 TomatoUSB(基于 WNR3500L v2 的 Shibby 构建)路由器与 OpenVPN 路由连接:
----------------------- -----------------------
| Router 1, subnet 20 | <--tunnel--> | Router 2, subnet 21 |
----------------------- -----------------------
路由器 1 是 OpenVPN 服务器,路由器 2 是客户端。连接到两个子网上的路由器的客户端可以 ping 通另一个子网上的客户端,因此隧道和路由可以正常工作。
我已经在两者上启用了文件共享,以便运行它们的 Samba WINS 服务器。是否可以通过隧道实现名称解析?我在服务器端的 /etc/smb.conf 中尝试过remote browse sync = 192.168.21.1
,但无济于事。还尝试使用客户端从 OpenVPN 地址池获取的 IP 地址(通常是 10.8.0.something),但仍然没有成功。
答案1
我认为最初发现 WINS 服务器时使用了 IPv4 广播功能,或者可能以某种方式参与其中。
广播流量不会跨路由(第 3 层)接口传播。
它通过桥接(即交换)(第 2 层)接口传播。
幸运的是,OpenVPN 支持路由(tun)和桥接(tap)接口。
因此,您需要将配置文件中的“dev tun”行修改为“dev tap”行。
使用虚拟桥接接口与使用虚拟路由接口不同。虚拟桥接接口在客户端必须具有与 OpenVPN 服务器位于同一子网的 IP。OpenVPN 服务器可以自动分配 IP,但您必须确保它不会与网络上已有的任何其他 IP 冲突。在我遇到的情况中,DHCP 服务器与 OpenVPN 服务器在同一个盒子上运行,OpenVPN 客户端从中获取 IP。您在 Tomato 盒子上运行此程序时可能就是这种情况。请密切注意您的配置。
此外,您还需要将服务器上的“tap0”连接到面向客户端的服务器网络接口brctl
- 并且tap0
它没有自己的 IP - 它将被“桥接”或软件切换到例如“eth0”。
它很有趣而且用途广泛(我认为多播 DNS 会通过虚拟桥接接口传输,因此 Apple 的东西也可以在它上面工作) - 但可能会变得混乱。
运行本地 DNS 服务器并使用 DNS 来解析名称可能会更简单。