Linux环境下GRE的部署(整理分享)
GRE(Windows不支持)
GRE介绍
GRE(Generic Routing Encapsulation,通用路由封装)协议是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IP)中传输。GRE采用了Tunnel(隧道)技术,是V_P_N(Virtual Private Network)的第三层隧道协议。
GRE的优点
-
GRE实现机制简单,对隧道两端的设备负担小。
-
GRE隧道可以通过IPv4网络连通多种网络协议的本地网络,有效利用了原有的网络架构,降低成本。
-
GRE隧道扩展了跳数受限网络协议的工作范围,支持企业灵活设计网络拓扑。
-
GRE隧道可以封装组播数据,和IPSec结合使用时可以保证语音、视频等组播业务的安全。
-
GRE隧道支持使能MPLS LDP,使用GRE隧道承载MPLS LDP报文,建立LDP LSP,实现MPLS骨干网的互通。
-
GRE隧道将不连续的子网连接起来,用于组建V_P_N,实现企业总部和分支间安全的连接。
实验:
使用GRE构建一个简单v_p_n,使用客户端能正常访问(Windows不支持GRE,所以使用两个Linux主机)
实验拓补
| 主机名 | IP地址 |
|---|---|
| client | eth3 201.1.2.10 |
| proxy | eth0 192.168.19.130 |
| eth3 201.1.2.5 |
![Linux环境下GRE的部署(整理分享)(图1) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8UOSF5eT-1632068774988)(E:/Typort/image-20210919192118959.png)]](/uploads/ueditor/2025/12/4542403962518126108.png)
步骤:
步骤一:启用GRE模块(client和proxy都要操作)
1)查看计算机当前加载的模块
lsmod #显示模块列表lsmod | grep ip_gre #确定是否加载了gre模块
2)加载模块ip_gre
modprobe ip_gre
3)查看模块信息
modinfo ip_gre # /lib/modules/4.18.0-240.el8.x86_64/kernel Linux所有的模块都在这里 #find / -name "*.ko*" | wc -l #2501 #我们的Linux系统内置模块有2501个,本人的Linux系统为Redhat8.3 #rmmod 模块名 关闭模块
![Linux环境下GRE的部署(整理分享)(图2) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-06tadcEW-1632068774991)(E:/Typort/image-20210919193856005.png)]](/uploads/ueditor/2025/12/5124547591824686493.png)
步骤二:Client主机创建V_P_N隧道
1)创建隧道
ip tunnel add tun0 mode gre remote 201.1.2.5 local 201.1.2.10 #ip tunnel add 创建隧道(隧道名称为tun0),ip tunne help可以查看帮助 #mode设置隧道模式 #local后面跟本机的IP地址,remote后面时与其他主机建立隧道的IP
2)启用该隧道(类似于网卡启动)
ip a s #查看本机全部网卡信息 一般添加的隧道是最后一个,且默认关闭 ip link show ip link set tun0 up #启用隧道 ip link show
3)为V_P_N配置隧道IP地址
ip a s ip addr add 10.10.10.10/24 peer 10.10.10.5/24 dev tun0 #为隧道tun0设置本地ip(10.10.10.10/24) #隧道对面的主机ip的隧道IP为(10.10.10.5/24) ip a s #查看IP是否添加成功
4)关闭防火墙
systemctl stop firewalld
步骤三:proxy主机创建V_P_N隧道
1)查看计算机当前加载的模块,并进行加载
lsmod #显示模块列表lsmod | grep ip_gre #确定是否加载了gre模块modprobe ip_gre
2)创建隧道
ip tunnel add tun0 mode gre remote 201.1.2.10 local 201.1.2.5
3)启用该隧道(类似于网卡启动)
ip link set tun0 up #启用隧道 ip link show
4)为VPN配置隧道IP地址
ip addr add 10.10.10.5/24 peer 10.10.10.10/24 dev tun0 ip a s
5)关闭防火墙
systemctl stop firewalld
6)开启路由转发(软路由)
echo "1" > /proc/sys/net/ipv4/ip_forward #1 开启路由转发 #0 关闭路由转发 #路由转发开启之后,别人可以通过访问这个服务器,通过服务器转发,去访问别的东西
步骤四:开始测试
![Linux环境下GRE的部署(整理分享)(图3) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4GxBm0p7-1632068774992)(E:/Typort/image-20210919212323899.png)]](/uploads/ueditor/2025/12/7264826956105488396.png)
![Linux环境下GRE的部署(整理分享)(图4) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VsBDaG6U-1632068774994)(E:/Typort/image-20210919212334626.png)]](/uploads/ueditor/2025/12/8442139772262790816.png)
您可能感兴趣的文章
- 01-07Tomcat部署Bolo动态博客
- 01-07图文详解nginx日志切割的实现
- 01-07如何解决swarm docker 端口不通问题
- 01-07详解nginx location指令
- 01-07如何解决docker http 500错误问题
- 01-07windows server 2008安装配置DNS服务器
- 01-07Linux上搭载Nginx负载均衡配置使用案例详解
- 01-07NGINX 权限控制文件预览和下载的实现原理
- 01-07Nginx防盗链与服务优化配置的全过程
- 01-07使用 Apache 反向代理的设置技巧


阅读排行
推荐教程
- 12-23linux中ftp无法访问怎么办
- 12-11docker存储目录迁移示例教程
- 12-10docker start启动容器后仍然exit状态的解决
- 12-10Linux下如何安装Logstash
- 01-05Shell脚本去重的几种方法实例
- 12-22kvm虚拟机配置NAT端口转发的实现方法
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法




