GRE 协议

简介: GRE(通用路由封装)是一种三层隧道技术,可将IPX、IPv6、AppleTalk等协议报文封装于IPv4中透明传输,解决异构网络互通问题;支持组播报文封装,常用于GRE over IPSec、突破RIP跳数限制等场景。

简介

通用路由封装协议GRE(Generic Routing Encapsulation)可以对某些网络层协议(如IPX、ATM、IPv6、AppleTalk等)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议(如IPv4)中传输。GRE提供了将一种协议的报文封装在另一种协议报文中的机制,是一种三层隧道封装技术,使报文可以通过GRE隧道透明的传输,解决异种网络的传输问题。如下图所示,通过在IPv4网络上建立GRE隧道,解决了两个IPv6网络的通信问题。

GRE除了可以封装网络层协议报文以外,它还具备封装组播报文的能力。由于动态路由协议中会使用组播报文,因此更多时候GRE会在需要传递组播路由数据的场景中被用到,这也是GRE被称为通用路由封装协议的原因。以下几个场景就是GRE在路由封装方面的应用。

GRE over IPSec

如下图所示,IPSec隧道两端的IP网络需要通信,彼此就要获取到对端网络的私网路由信息。假设隧道两端的IP网络部署的是动态路由协议,那么IPSec隧道中就需要传递路由协议的组播报文。由于IPSec本身并不具备封装组播报文的能力,因此该场景下就需要寻求GRE的协助。GRE首先将组播报文封装成单播报文,封装后的单播报文就可以经过IPSec隧道发送到对端网络。此时,建立在两个IP网络中的隧道被称为GRE over IPSec隧道。

扩大跳数受限的网络工作范围

如下图所示,网络中运行RIP协议,如果两台电脑之间的跳数超过15,它们将无法通信。通过在网络中使用GRE隧道可以隐藏一部分跳数,从而扩大网络的工作范围。

例如,在FW_A和FW_B之间建立GRE隧道后,FW_A和FW_B就相当于相邻的路由器,距离为一跳。这就隐藏了FW_A和FW_B之间的跳数,使网络得到了扩展。

GRE基本原理

报文格式

GRE封装后的报文格式如下图所示。

  • 乘客协议(Passenger Protocol):封装前的报文称为净荷,封装前的报文协议称为乘客协议。
  • 封装协议(Encapsulation Protocol):GRE Header是由封装协议完成并填充的,封装协议也称为运载协议(Carrier Protocol)。
  • 传输协议(Transport Protocol或者Delivery Protocol):负责对封装后的报文进行转发的协议称为传输协议。

GRE报文转发流程(实现过程)

下面结合FW的流量处理过程,介绍GRE报文转发流程,如下图所示。

PC_A通过GRE隧道访问PC_B时,FW_A和FW_B上的报文转发过程如下:

  1. PC_A访问PC_B的原始报文进入FW_A后,首先匹配路由表。
  2. 根据路由查找结果,FW_A将报文送到Tunnel接口进行GRE封装,增加GRE头,外层加新IP头。
  3. FW_A根据GRE报文的新IP头的目的地址(2.2.2.2),再次查找路由表。
  4. FW_A根据路由查找结果转发报文。
  5. FW_B收到GRE报文后,首先判断这个报文是不是GRE报文。

在上图中可以看到封装后的GRE报文会有个新的IP头,这个新的IP头中有个Protocol字段,字段中标识了内层协议类型,如果这个Protocol字段值是47,就表示这个报文是GRE报文。如果是GRE报文,FW_B则将该报文送到Tunnel接口解封装,去掉新的IP头、GRE头,恢复为原始报文;如果不是,则报文按照普通报文进行处理。

  1. FW_B根据原始报文的目的地址再次查找路由表,然后根据路由匹配结果转发报文。
相关文章
|
23天前
|
安全 网络安全 数据安全/隐私保护
配置基于静态路由的GRE隧道
本文介绍通过GRE隧道实现两个私有网络(网络1与网络2)跨Internet互联的完整方案:FW1与FW2公网可达,分别配置Tunnel接口、GRE封装参数(源/目的IP、密钥)、静态路由及双向安全策略,最终实现PC1与PC2互通,并通过Wireshark验证GRE封装效果。
配置基于静态路由的GRE隧道
|
23天前
|
网络协议 安全 网络安全
配置基于OSPF的GRE隧道
本文介绍通过GRE隧道实现跨Internet的OSPF路由互通:FW1与FW2建立GRE隧道,封装OSPF及ICMP报文,配置Tunnel接口、OSPF进程、静态路由及双向安全策略,最终使网络1(172.16.1.0/24)与网络2(172.16.2.0/24)私网互通。
配置基于OSPF的GRE隧道
|
12天前
|
Java 编译器 Windows
jdk-11.0.16.1_windows使用步骤详解(附JDK 11环境变量配置与验证教程)
`jdk-11.0.16.1_windows.zip` 是 JDK 11.0.16.1 的 Windows 官方压缩版。本文详解安装步骤:下载解压(路径禁用中文/空格)、配置 JAVA_HOME 与 Path 环境变量,并通过 `java -version` 验证成功。操作清晰,零基础可快速上手。(239字)
|
23天前
|
人工智能 机器人 测试技术
用 Bub 和飞书搭一个更懂群聊上下文的小机器人
手把手教你搭建 Bub:一个懂群聊上下文、无“班味”的轻量化 AI 助理。
246 1
用 Bub 和飞书搭一个更懂群聊上下文的小机器人
|
2月前
|
人工智能 架构师
Qoder Together 郑州站来啦!解锁企业级 AI Coding 落地玩法
4月22日14:00-17:00,郑州阿里中心举办AI Coding实战沙龙!聚焦Qoder产品解析、企业级方案及UU跑腿落地实践,架构师现场带练。名额有限,速报名→ https://huodongxing.com/event/4855877137411
216 4
|
24天前
|
人工智能 自然语言处理 Java
Java做AI真不行?2026年最被低估的机会来了
Spring官宣集成DeepSeek,Java正式迈入AI驱动时代!2026年AI岗位缺口巨大,大厂招聘普遍要求大模型能力。Java团队借力Spring生态与JBoltAI等国产框架,可低门槛接入代码生成、RAG、Agent等全链路AI能力,实现差异化突围。(239字)
156 3
|
24天前
|
机器学习/深度学习 负载均衡 专有云
性能翻倍!Qwen3.5与阿里云APG服务器完成深度优化
近日,Qwen3.5系列模型正式发布,正式迈向原生多模态智能体,并推出多款模型。阿里云专有云联合通义实验室等团队,基于APG服务器深度优化了Qwen3.5-397B-A17B模型,对比Qwen3-235B性能提升1.5倍以上。
195 3
|
23天前
|
人工智能 JSON 运维
2026 生产级 AI Agent 自动化:零重型框架,彻底解决多步任务不稳定难题
本文提出“文件即状态”轻量架构,用5个文件实现AI Agent多步任务的稳定执行,无需LangGraph等重型框架。支持断点续跑、幂等重试、跨Agent协同,个人开发者7天即可落地生产级自动化。(239字)
|
23天前
|
人工智能 安全 专有云
深度访谈:阿里云×平头哥,模型推理提升13倍背后的秘密
2026年初,AI焦点正从“对话”转向“推理”:OpenClaw爆火、AI Coding成新基建、大模型迈向Agent化执行。算力瓶颈、成本压力与安全预警交织,推理效率成为产业主战场。本文深度对话阿里云与平头哥专家,剖析软硬协同、MoE优化、量化压缩等关键技术演进,揭示国产AI基础设施如何通过系统级创新突破“不可能三角”。
168 1

热门文章

最新文章