GRE——覆盖网络

GRE——覆盖网络

我正在租用一套专用服务器,它们只有一个互联网接口。

但是,对于很多用例,我希望我的服务器通过私有 IP 网络进行通信。例如,这将允许我仅向 LAN 公开内部服务(ldap、puppet master、apt 存储库、bind)。

理想情况下,我希望能够拥有一个看起来像私有网络的覆盖网络(每台机器都有一个新的虚拟接口,带有本地 IP),但在互联网上运行。

我以前曾使用过 freelan 来实现这一点,效果非常好,只是我不想再使用这种奇特的堆栈了。

我想知道使用 GRE/IPSec 是否可以实现这一点?据我所知,我必须在每个主机上为每个对等体配置一个 GRE 接口才能实现完整的网格。有没有更简单的解决方案?这似乎不能很好地适应对等体的数量。

答案1

是的。您可以配置 gre 接口,然后使用 ipsec 加密 gre 服务器间流量。使用 ipip 也可以实现同样的效果(某些 UNIX 系统将此类接口称为动态图)。但实际上,这是一种过时的传统方法。更过时的是配置非 GRE IPSec,因为这种方式很难支持,而且几乎无法路由,因为没有动态路由协议能够在传统的无接口 IPSec 之上运行。

同时,思科还推出了一项称为 VTI 的技术(虚拟隧道接口) 和 Juniper 调用 st (安全隧道)。同时它有点复杂(你需要创建一种能够处理 IP 流量的特殊类型的接口终止 ipsec) 但同时更简单,因为它不添加中间 IP 报头 (尽管 gre 在传输模式下对 ipsec 也这样做)。现代 Linux 支持这项技术,而且它可以与 Cisco 和 Juniper 设备互操作。

因此基本上您有以下选择,我按照复杂性增加的顺序列出它们:

  • 未加密的 ipip/gre 隧道(如果您的传输已经受 TLS 保护,则是安全的),配置相当简单
  • 纯传统 IPsec(已过时,但值得一提)
  • gre/ipip 以及 IPsec 加密
  • 速度指数/秒

此外,还有很多软件可以构建用户级 VPN。这些软件的主要缺点是互操作性有限 - 它只能与相同的软件通信。但是,它实际上比传统的 ipsec 更好,因为它更接近于体面的路由。但是,如果我们谈论动态路由协议,则存在几个限制,我不建议在应该扩展的环境中使用它:

  • 开放VPN
  • 隧道
  • 锡克

最后我应该注意到,如果我们谈论位于数据中心,VPN 有点过头了。正确的解决方案是为它们设置一个 VLAN,使用私有地址,将此 VLAN 添加到您的服务器将处理的 802.1q 中继,并创建一个 VLAN 接口。这样仍将使用一个接口(但是,大多数现代服务器平台至少有两个铜千兆位,所以我认为启用一个普通以太网接口没有问题 - 这只是最简单的事情)。

相关内容