如何在两台CentOS 7服务器之间建立GRE隧道
作者: 分类:Linux 浏览(22) 2019-11-8

介绍

什么是GRE?有哪些优势?

GRE代表Generic Routing Encapsulation通用路由封装),它允许两台服务器私下通信。GRE隧道非常有用,因为它们允许所有类型的流量通过。它相对容易设置且安全(假设在服务器A和服务器B之间具有直接管道)。

简而言之:创建GRE隧道允许以最小的资源使用量转发数据包。

注意:必须在两个端点上建立GRE隧道。

它是如何工作的?

在服务器上创建GRE隧道时,服务器将充当虚拟路由器。请记住,由于数据包是通过多个网络发送的,因此两端都需要一个公共IP地址。

先决条件和配置两个端点

设置GRE隧道所需的条件

幸运的是,您需要做的是:

  • 2台运行CentOS 7的服务器
  • ip_gre模块加载
  • nano 或任何文本编辑器

如果尚未将GRE模块加载到任一服务器中,请执行以下命令:

modprobe ip_gre

为了使事情更容易理解,第一和第二终端将被标记为一个分别。

我们将使用的IP地址如下:

端点A

  • 本地/内部IP: 192.0.2.1
  • 公用IP: 203.0.113.1

端点B

  • 本地/内部IP: 192.0.2.2
  • 公用IP: 203.0.113.2

请记住,您将需要修改示例IP地址(更改203.0.113.1203.0.113.2使用将要使用的两台服务器的IP地址)。

配置端点A

首先,我们需要转到network-scripts文件夹:

cd /etc/sysconfig/network-scripts

现在,使用nano或您喜欢的文本编辑器创建一个名为的文件ifcfg-tun0

nano ifcfg-tun0

在新创建的文件中,粘贴以下内容:

DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
    DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=192.0.2.2
PEER_OUTER_IPADDR=203.0.113.2
MY_INNER_IPADDR=192.0.2.1

保存并退出(使用nano,do CTRLX,然后是ENTER)。

调出界面:

ifup tun0

一旦执行了上面的命令,就可以开始配置第二个端点。

配置端点B

配置此端点的过程与第一个端点的过程相似。首先,转到您的network-scripts文件夹:

cd /etc/sysconfig/network-scripts

现在,创建一个名为的新文件ifcfg-tun0

nano ifcfg-tun0 

粘贴以下内容:

DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
TYPE=GRE
PEER_INNER_IPADDR=192.0.2.1
PEER_OUTER_IPADDR=203.0.113.1
MY_INNER_IPADDR=192.0.2.2

退出并保存。

现在,您可以启动界面:

ifup tun0

测试隧道

端点A上,输入以下内容:

ping 192.0.2.2

您将看到类似的输出:

端点B上

ping 192.0.2.1

您将看到类似的输出:

如果两端可以ping彼此成功进行,则可以跳到本文的最后一节。如果超时,则可能需要禁用防火墙或将适当的地址列入白名单。

如果您不了解如何创建这些规则,请参考本文

如果仅希望测试隧道是否正常工作,则可以(由您自担风险)在两台服务器上禁用防火墙:

service firewalld stop

某些CentOS 7系统具有IPTable,因此,如果以上命令不起作用,请执行以下操作:

service iptables stop

结论

您已经成功在两台服务器之间建立了GRE隧道。如果您希望将来删除隧道,请在两台服务器上执行以下操作:

ifdown tun0
rm -rf /etc/sysconfig/network-scripts/ifcfg-tun0
service network restart
本文固定链接: http://www.codejie.net/6134.html