如果两个以太网 LAN 都连接到互联网,您可以透明地桥接它们之间的流量,以将它们连接在一起。
PC1 (192.168.0.1 /24)--| PC3 (192.168.0.3 /24)--| PC5 (192.168.0.5 /24)--|--[ eth0 - bridge_1 - eth1 (195.0.0.1) ] PC253 (192.168.0.253/24)--| | (192.168.0.2 /24) PC2 | (192.168.0.4 /24) PC4 [ (192.0.0.1) eth1 - bridge_2 - eth0 ] --| (192.168.0.6 /24) PC6 | (192.168.0.254/24) PC254 |
bridge_1 和 bridge_2 是您的 Linux 网桥,并且外部连接到互联网接口 eth1。所以195.0.0.1并且192.0.0.1可以是您的 ISP 给您的任何有效的互联网地址。
PopTop (PPTP 服务器) - http://poptop.lineo.com
PPTP (Linux PPTP 客户端,由 C.S. Ananian 开发) - http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP/
tarpd (一个简单的代理 arp 守护进程) - http://www.cs.hut.fi/~tricky/utils/net/tarpd-1.6.tar.gz
您也可以在 http://www.freshmeat.net 上找到它们
请记住,如果您想使用 MS Chap 和 MS 加密 (MPPE),您需要 pppd 和内核的特殊补丁。有关如何获取和安装这些补丁的说明,请参阅 PoPTop 手册。
将您的路由器连接到互联网,或在它们之间建立任何其他通信,但 IP 除外。
在它们之间建立一个 PPTP 隧道。PoPToP(服务器)和 pptp(客户端)手册中有示例配置。
现在您应该有两个网桥,并且它们之间有一个 IP 隧道,可能是加密的(请参阅 PPP 手册)。让我们配置桥接。
请记住,网桥实际上是一个路由器,因此我们需要在我们的网桥上运行以下命令(这假设 bridge_1 和 bridge_2 是 IP 地址,分配给网桥之间 PPTP 隧道的每一端)
bridge_1$ip route add 192.168.0.2 via bridge_2 bridge_1$ip route add 192.168.0.4 via bridge_2 bridge_1$ip route add 192.168.0.6 via bridge_2 bridge_1$ip route add 192.168.0.254 via bridge_2 bridge_1$ip route add 192.168.0.255 via bridge_2 |
在另一侧
bridge_2$ip route add 192.168.0.1 via bridge_1 bridge_2$ip route add 192.168.0.3 via bridge_1 bridge_2$ip route add 192.168.0.5 via bridge_1 bridge_2$ip route add 192.168.0.253 via bridge_1 |
这将告诉每个网桥另一侧有哪些主机。您可以使用旧式的route命令执行相同的操作。它看起来像
bridge_1$route add -host 192.168.0.2 gw bridge_2 bridge_1$route add -host 192.168.0.4 gw bridge_2 bridge_1$route add -host 192.168.0.6 gw bridge_2 bridge_1$route add -host 192.168.0.254 gw bridge_2 bridge_1$route add -host 192.168.0.255 gw bridge_2 |
在另一侧
bridge_2$route add -host 192.168.0.1 gw bridge_1 bridge_2$route add -host 192.168.0.3 gw bridge_1 bridge_2$route add -host 192.168.0.5 gw bridge_1 bridge_2$route add -host 192.168.0.253 gw bridge_1 |
请再次注意,bridge_1 和 bridge_2 不是您的 ISP 给出的 IP 地址,而是 您 分配给 PPTP 隧道每一端的 IP 地址。
现在您有两个网桥,并且每个网桥都知道在哪里找到特定的 IP。但是,您如何告诉这些计算机将其远程网络的流量发送到本地网桥?您需要 tarpd。
tarpd是一个非常简单的守护进程,它响应特定 IP 地址的 arp 请求。您只需要运行一个tarpd在每个网桥上,并指定在远程端找到的 IP 地址列表。
例如,对于这两个网桥,您应该运行
bridge_1$tarpd eth0 192.168.0.2 255.255.255.255 \ 192.168.0.4 255.255.255.255 \ 192.168.0.254 255.255.255.255 |
在另一侧
bridge_2$tarpd eth0 192.168.0.1 255.255.255.255 \ 192.168.0.3 255.255.255.255 \ 192.168.0.253 255.255.255.255 |
您在每个网桥上指定 128 个远程对(IP/掩码。掩码应为 255.255.255.255,以免混淆 tarpd!)。
享受您的网桥!