我有以下场景。一台计算机连接到专用网络。我不是有权修改此私有网络上的任何内容。我只配备了一条网线。
网络上运行的计算机的 IP 为 172.20.20.15,计算机上有一个应用程序,它恰好需要给定的网络设置,以便它可以连接到私有网络后面某处的后端数据库。
现在我的想法是将计算机移到另一个位置。我在两个位置都可以访问互联网。
我知道我可以在两端放置两个支持 VPN 服务器的路由器(路由器 A 和路由器 B)。
我找到了 VPN 路由器WN-300ARM-VPN,但在阅读了他们的文档后,我发现我可以连接两个不同的网络,所以这似乎不适合我。
简而言之,您能否建议我可以购买哪种类型/品牌的设备,以便我可以通过互联网扩展专用网络。最重要的是我应该保持相同的 IP 设置。
谢谢大家的时间,我们非常欢迎大家提出任何建议。
答案1
OpenVPN桥接模式下的交换机可以做到这一点。我曾多次在这种模式下使用它来实现类似的目的。对于网络来说,它与恰好在不同位置有两个端口的交换机没有区别。
不需要特殊硬件。任何运行 Linux 且具有 2 个 NIC 的机器都可以做到这一点。还有一些路由器发行版(例如 Vyatta)支持此功能。您可能也可以使用 DD-WRT 之类的东西,但我不确定。
这是我使用 openSUSE 作为发行版的方法。使用 Vyatta 之类的工具可能会更简单一些,但我已经这样做了很多次,效果很好:
选择一台机器作为服务器。在该机器上执行以下任务:
设置 easy-rsa 进行密钥管理(它存储在 openSUSE 中的 /usr/share/openvpn/easy-rsa/2.0/ 下,但我在 /etc/openvpn 下创建了一个副本,而不是在该位置使用它):
cd <easy_rsa 位置>
编辑 vars 文件并设置 KEY_* 参数
. 变量
./clean-all
./build-dh
./pkitool --initca
./pkitool --server mybridge 服务器
./pkitool mybridge-客户端
通过创建文件 /etc/sysconfig/network/ifcfg-mybridge 来创建桥接接口,其中您可以用任何您想要的名称替换 mybridge:
BOOTPROTO='none' BRIDGE='yes' BRIDGE_FORWARDDELAY='0' BRIDGE_PORTS='eth1' BRIDGE_STP='off' STARTMODE='auto'
2a. 我假设您将 eth1 作为此处的“内部”接口。您实际上可以将其设置为服务器仅使用单个 NIC,这实际上是我在这种情况下通常所做的,但我试图使其保持简单。如果您想尝试这一点,请按上述方式创建网桥,将 eth0 放入 BRIDGE_PORTS 中,并将 IP 信息从 ifcfg-eth0 复制到 ifcfg-mybridge。然后删除 ifcfg-eth0,因为您的网桥将成为主接口
创建一个 /etc/openvpn/mybridge-server.conf(假设您复制了 easy-rsa):
port 1194 proto udp dev mytun dev-type tap mode server tls-server ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/mybridge-server.crt key /etc/openvpn/easy-rsa/keys/mybridge-server.key dh /etc/openvpn/easy-rsa/keys/dh1024.pem keepalive 10 600 comp-lzo fast-io user nobody group nogroup persist-key persist-tun script-security 2 up mybridge-up.sh status /var/run/openvpn/mybridge-server-status verb 3
在 /etc/openvpn 中创建 mybridge-up.sh 文件,确保在启动时将 openVPN 接口添加到网桥中:
#!/bin/bash # Called with these args: # tap_dev tap_mtu link_mtu ifconfig_local_ip ifconfig_netmask [ init | restart ] /sbin/ip link set $1 up /sbin/brctl addif mybridge $1
确保 openVPN 在启动时启动,并启动/重新启动一切:
chkconfig --add openvpn
rcnetwork 重启
rcopenvpn 启动
此时,您将拥有一个名为 mybridge 的桥接接口,其中包含 eth1 和 mytun 接口。与任何交换机一样,只有当目标 mac 存在于另一端时,以太网帧才会通过
现在您可以设置客户端:
通过创建文件 /etc/sysconfig/network/ifcfg-mybridge 创建一个像在服务器上一样的桥接接口:
BOOTPROTO='none' BRIDGE='yes' BRIDGE_FORWARDDELAY='0' BRIDGE_PORTS='eth1' BRIDGE_STP='off' STARTMODE='auto'
将 ca.crt、mybridge-client.crt 和 mybridge-client.key 文件复制到客户端计算机。我将在示例中使用 /etc/openvpn/keys/
创建一个 /etc/openvpn/mybridge-client.conf:
proto udp dev mytun dev-type tap client remote hostname_or_ip_of_server 1194 ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/mybridge-client.crt key /etc/openvpn/keys/mybridge-client.key float resolv-retry infinite nobind comp-lzo fast-io user nobody group nogroup persist-key persist-tun script-security 2 up mybridge-up.sh verb 3
从 /etc/openvpn 中的服务器复制或创建 mybridge-up.sh 文件
就像在服务器上一样,确保 openVPN 在启动时启动,并启动/重新启动一切:
chkconfig --add openvpn
rcnetwork 重启
rcopenvpn 启动
完成所有这些操作后,任何一侧的机器都可以像在同一物理网段上一样互相通信。如果您愿意,甚至可以从一侧提供 DHCP,或者远程配置出厂时已预配置静态 IP 地址的设备。
答案2
您有两个选择:
- 更改已移动服务器的 IP 地址。这确实是首选方案,除了避免更改配置外,我在此拓扑中没有理由不这样做。
- 通过 L2TP 将子网/广播域扩展到远程网络。
答案3
您可以在路由器 A 上使用某种反向 NAT。
它会将来自私有网络的任何请求转发到 172.20.20.15 到服务器的当前 IP(公共)。
我没有任何配置示例可以展示,但在各种企业级网络上进行设置很容易。(即不是 soho 级也不是消费者级)。
答案4
我向您推荐思科 800 系列路由器。 http://www.cisco.com/en/US/products/hw/routers/ps380/prod_models_comparison.html
我不知道您如何连接到 ISP 互联网线路(以太网、ADSL、SHDSL……),所以我无法向您推荐特定的 800 系列路由器