如何在两台CentOS 7服务器之间建立GRE隧道

介绍

什么是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 CTRL+ X,后跟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

您将看到类似的输出:

如何在两台CentOS 7服务器之间建立GRE隧道

端点B上

ping 192.0.2.1

您将看到类似的输出:

如何在两台CentOS 7服务器之间建立GRE隧道

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

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

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

service firewalld stop

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

service iptables stop

结论

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

ifdown tun0
rm -rf /etc/sysconfig/network-scripts/ifcfg-tun0
service network restart

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息