通过互联网扩展局域网

通过互联网扩展局域网

我有以下场景。一台计算机连接到专用网络。我不是有权修改此私有网络上的任何内容。我只配备了一条网线。

网络上运行的计算机的 IP 为 172.20.20.15,计算机上有一个应用程序,它恰好需要给定的网络设置,以便它可以连接到私有网络后面某处的后端数据库。

现在我的想法是将计算机移到另一个位置。我在两个位置都可以访问互联网。

我知道我可以在两端放置两个支持 VPN 服务器的路由器(路由器 A 和路由器 B)。

在此处输入图片描述

我找到了 VPN 路由器WN-300ARM-VPN,但在阅读了他们的文档后,我发现我可以连接两个不同的网络,所以这似乎不适合我。

在此处输入图片描述

简而言之,您能否建议我可以购买哪种类型/品牌的设备,以便我可以通过互联网扩展专用网络。最重要的是我应该保持相同的 IP 设置。

谢谢大家的时间,我们非常欢迎大家提出任何建议。

答案1

OpenVPN桥接模式下的交换机可以做到这一点。我曾多次在这种模式下使用它来实现类似的目的。对于网络来说,它与恰好在不同位置有两个端口的交换机没有区别。

不需要特殊硬件。任何运行 Linux 且具有 2 个 NIC 的机器都可以做到这一点。还有一些路由器发行版(例如 Vyatta)支持此功能。您可能也可以使用 DD-WRT 之类的东西,但我不确定。

这是我使用 openSUSE 作为发行版的方法。使用 Vyatta 之类的工具可能会更简单一些,但我已经这样做了很多次,效果很好:

选择一台机器作为服务器。在该机器上执行以下任务:

  1. 设置 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-客户端

  2. 通过创建文件 /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,因为您的网桥将成为主接口

  1. 创建一个 /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
    
  2. 在 /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
    
  3. 确保 openVPN 在启动时启动,并启动/重新启动一切:

    • chkconfig --add openvpn

    • rcnetwork 重启

    • rcopenvpn 启动

此时,您将拥有一个名为 mybridge 的桥接接口,其中包含 eth1 和 mytun 接口。与任何交换机一样,只有当目标 mac 存在于另一端时,以太网帧才会通过

现在您可以设置客户端:

  1. 通过创建文件 /etc/sysconfig/network/ifcfg-mybridge 创建一个像在服务器上一样的桥接接口:

    BOOTPROTO='none'
    BRIDGE='yes'
    BRIDGE_FORWARDDELAY='0'
    BRIDGE_PORTS='eth1'
    BRIDGE_STP='off'
    STARTMODE='auto'
    
  2. 将 ca.crt、mybridge-client.crt 和 mybridge-client.key 文件复制到客户端计算机。我将在示例中使用 /etc/openvpn/keys/

  3. 创建一个 /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
    
  4. 从 /etc/openvpn 中的服务器复制或创建 mybridge-up.sh 文件

  5. 就像在服务器上一样,确保 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 系列路由器

相关内容