![使用 GRE 隧道(或 NAT?)下的 IP 进行虚拟化](https://linux22.com/image/698940/%E4%BD%BF%E7%94%A8%20GRE%20%E9%9A%A7%E9%81%93%EF%BC%88%E6%88%96%20NAT%EF%BC%9F%EF%BC%89%E4%B8%8B%E7%9A%84%20IP%20%E8%BF%9B%E8%A1%8C%E8%99%9A%E6%8B%9F%E5%8C%96.png)
嗯,这是我遇到的情况:
我有一台来自 OVH 的专用服务器和一台来自另一家公司的专用服务器,因为 OVH 服务器(游戏类别)的最大 RAM 是 64Gb,而我需要更多,所以我想建立一个 GRE 隧道(或者 NAT 隧道?我猜?我不知道我在另一个网站上看到过这个)以便在另一台专用服务器上使用实际分配给我的 OVH 服务器的 IP,这样我就可以使用这些 IP 对其进行虚拟化,说得清楚一点:
我有受 DDoS 保护的服务器 1,以及根本没有受保护的服务器 2。
任务是:在服务器 2 上使 VPS 受到 DDoS 保护。
为了做到这一点,我需要使用分配给服务器 1 的 IP,我应该使用哪种类型的隧道来做到这一点,以及如何使用(因为即使你告诉我隧道类型,我猜我对它也是完全陌生的,所以如果可以的话请链接一个指南)?
提前致谢!
问候。
答案1
如果在服务器前面的设备上实施了 DDoS 保护,那么如果您有 2 个 Linux 机器,您可能可以使用 GRE 或 IPIP 隧道。IPIP 隧道仅适用于 Linux 操作系统(而 GRE 更具互操作性,即与 cisco 一起使用),更重要的是 ipip 隧道仅适用于单播数据包。广播不会被发送。
如果您安装了最新的内核和 iproute2 包,这真的非常简单。为了创建隧道,您需要在隧道的两端(服务器 1 和服务器 2)创建一个虚拟接口。类似下面的代码应该可以工作:
root@server1:~$ ip tunnel add tunnel0 mode gre remote server2_ip
root@server1:~$ ip link set dev tunnel0 up
root@server2:~$ ip tunnel add tunnel0 mode gre remote server1_ip
root@server2:~$ ip link set dev tunnel0 up
然后确保 server1 没有配置要分配给 server2 的 IP 地址,并在 server1 上添加一条路由以加入 server2 IP:
root@server1:~$ ip r a ovh_ip dev tunnel0
并将IP添加到server2
root@server2:~$ ip a a ovh_ip/32 tunnel0
此时,server1 应该能够在 server2 上 ping ovh_ip。
然后,您需要将 server1 配置为路由器,以使 ovh_ip 可从互联网上的任何地方访问。但是,使用这种简单的配置,请注意 server2 上的路由是不对称的,进入 ovh_ip 的数据包将通过接口 test0 进入(因此 hoster2 路由器将看到 GRE 数据包),而响应数据包将通过 server2 默认网关路由(hoster2 路由器将看到常规 IP 数据包)。这可能会导致某些防火墙甚至 Linux rp_filter 保护出现问题。确保这不是问题。如果这是一个问题,您必须通过在数据包通过 server1 上的隧道 0 时添加额外的源 NAT 来使路由对称。
我希望它能有所帮助