![GRE——覆盖网络](https://linux22.com/image/667609/GRE%E2%80%94%E2%80%94%E8%A6%86%E7%9B%96%E7%BD%91%E7%BB%9C.png)
我正在租用一套专用服务器,它们只有一个互联网接口。
但是,对于很多用例,我希望我的服务器通过私有 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 接口。这样仍将使用一个接口(但是,大多数现代服务器平台至少有两个铜千兆位,所以我认为启用一个普通以太网接口没有问题 - 这只是最简单的事情)。