欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7搭建GRE隧道进行通信

程序员文章站 2024-02-14 12:51:58
...

为了研究gre协议需要搭建gre隧道来进行测试,需要两个能通信的服务器

测试环境

服务器A:

IP地址: 10.20.50.148

GRE内部IP地址: 203.0.113.1

服务器B:

IP地址: 192.168.4.2

GRE内部IP地址: 203.0.113.2

环境说明

服务器A和服务器B可以通过IP地址ping通,但是不能通过GRE内部的IP地址ping通

GRE协议是在内部IP头前面添加了一个GRE头再加一个IP头

配置说明

服务器A和服务器B都需要配置,配置步骤基本相似,只需要交换配置文件部分内容

服务器A配置

# 1.加载驱动
modprobe ip_gre

# 2.创建gre隧道
cd /etc/sysconfig/network-scripts
vim ifcfg-tun0

# 3.在ifcfg-tun0文件中添加
DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=203.0.113.2
PEER_OUTER_IPADDR=192.168.4.2
MY_INNER_IPADDR=203.0.113.1

# 4.启动gre隧道
ifup tun0

# 5.关闭隧道(这一步只是提醒如何关闭,不需要操作)
ifdown tun0

服务器B配置

# 1.加载驱动
modprobe ip_gre

# 2.创建gre隧道
cd /etc/sysconfig/network-scripts
vim ifcfg-tun0

# 3.在ifcfg-tun0文件中添加
DEVICE=tun0
BOOTPROTO=none
ONBOOT=yes
DEVICETYPE=tunnel
TYPE=GRE
PEER_INNER_IPADDR=203.0.113.1
PEER_OUTER_IPADDR=10.20.50.148
MY_INNER_IPADDR=203.0.113.2

# 4.启动gre隧道
ifup tun0

其中服务器B的配置主要是配置文件中交换了IP地址,倒数第二项换成了隧道另一端的IP地址

在服务器B上执行命令

ping 203.0.113.1

能ping通说明隧道搭建成功

通过tcpdump抓取通信网卡(不是tun0)可以获取gre隧道协议的数据包,可以通过ssh 203.0.113.1获取gre中携带tcp协议的数据包