GRE 隧道协议

news/2024/11/20 4:56:47/

1.GRE协议简介

GRE(General Routing Encapsulation ,通用路由封装)是对某些网络层协议(如IP和IPX)的数据报文进行封装,使这些被封装的报文能够在另一网络层协议(如IP)中传输。此外 GRE协议也可以作为VPN的第三层隧道协议连接两个不同的网络,为数据的传输提供一个透明的通道。

GRE主要有以下特点:

  • 机制简单,无需维持状态,对隧道两端设备的CPU负担小;
  • 本身不提供数据的加密,如果需要加密,可以与IPSec结合使用;
  • 不提供流量控制和QoS

2. GRE报文格式

在这里插入图片描述

  • Payload (净荷): 系统接收到的需要封装和路由的原始数据报;
  • Passenger Protocol(乘客协议):报文封装之前所属的协议称为乘客协议
  • Encapsulation Protocol(封装协议):用来封装乘客协议的协议称为封装协议,这里的GRE便是一个封装协议,也成为运载协议(Carrier Protocol);
  • Transport Protocol(传输协议):负责对封装后的报文进行转发的协议称为传输协议;不同于传输层协议。

GRE头部各字段含义:

字段长度含义
C1bit校验和验证标识。设置为1,表示Checksum字段生效;0表示Checksum字段不生效
K1bit关键字标识。设置为1,表示头部中Key字段生效;0表示Key字段不生效
Recursion3bits用来表示报文被封装的层数。每封装一次该值加1,最多封装3次
Flags5bits预留。值为0
Version3bits版本号。值为0
Protocol Type16bits乘客协议类型
Checksum16bits对GRE头部和负载计算校验和。只有当C为1时有效
Key32bits关键字信息。隧道接收端用于对收到的报文进行验证,只有当K为1时有效;此外也用于一对多的GRE隧道
其他暂未使用,其值固定填充0

3. GRE报文封装与解封装

在这里插入图片描述

3.1 报文封装

  1. Router A连接Group 1的接口收到X协议报文后,首先交由X协议处理;
  2. X协议检查报文头中的目的地址域来确定如何路由此包;
  3. 若报文的目的地址要经过Tunnel才能到达,则设备将此报文发给相应的Tunnel接口;
  4. Tunnel接口收到此报文后进行GRE封装,在封装IP报文头后,设备根据此IP包的目的地址及路由表对报文进行转发,从相应的网络接口发送出去。

3.2 报文解封装

  1. Router B从Tunnel接口收到IP报文,检查目的地址;
  2. 如果发现目的地是本路由器,则Router B剥掉此报文的IP报头,交给GRE协议处理(进行检验密钥、检查校验和及报文的序列号等);
  3. GRE协议完成相应的处理后,剥掉GRE报头,再交由X协议对此数据报进行后续的转发处理。

随着报文的封装、解封装,会导致有效数据传输效率降低, 从而导致设备对GRE数据转发速率降低。

4. 应用范围

GRE(点对点类型)主要应用于一下几种环境:

4.1 多协议的本地网通过单一协议的骨干网传输


上图中:Group 1和Group 2是运行Novell IPX协议的本地网,Team 1和Team 2是运行IP协议的本地网。通过在Router A和Router B之间采用GRE协议封装的隧道,Group 1和Group 2、Team 1和Team 2可以互不影响地进行通信

4.2 扩大了跳数受限协议(如RIP)的工作范围

在这里插入图片描述
两台终端之间的跳数超过15(RIP路由协议),它们将无法通信。通过在网络中使用隧道可以隐藏一部分跳数,从而扩大网络的工作范围

4.3 将一些不能连续的子网连接起来,用于组建VPN

在这里插入图片描述
运行Novell IPX协议的两个子网Group 1和Group 2分别在不同的城市,通过使用隧道可以实现跨越广域网的VPN.

4.4 和IPsec结合使用

在这里插入图片描述
GRE可以和IPsec结合使用,即对于路由协议、语音、视频等数据先进行GRE封装,再对封装后的报文进行IPsec的加密处理,以提高数据在隧道中传输的安全性


http://www.ppmy.cn/news/63464.html

相关文章

破解kate不让用root运行的破解办法

众所周知,最近几年kate不让用root运行了,原因很sb,死板的德国佬认为会造成安全问题 kate自带的提权保存功能不适合/root/.bashrc或/tmp/root-created-600-file这种文件不可读的情况 SUDO_EDITORkate sudoedit不适合/tmp/root-created-600-f…

上传文件 —— Servlet

目录 一、核心方法 二、实现上传文件代码 上传文件也是一个常见的需求,在Servlet中也提供了支持。 上传文件的时候,在前端需要用到 form 表单,在 form 表单中需要使用到特殊的类型: form-data。此时提交文件的时候,浏…

一行代码绘制高分SCI火山图

一、概述 在近半年中,我读了很多的高分SCI文章,很多文章中都有多种不同的火山图,包括「普通的火山图、渐变火山图、以及包含GO通路信息的火山图」! 经过一段时间的文献阅读和资料查询,终于找到了一个好用而且简单的包…

Milvus应用开发实战【语义搜索】

美国总统竞选活动即将到来。 现在是回顾拜登政府上任头两年的一些演讲的好时机。 搜索一些演讲记录以了解更多关于白宫迄今为止关于某些主题的信息不是很好吗? 假设我们要搜索演讲的内容。 我们该怎么做? 我们可以使用语义搜索。 语义搜索是目前人工智能…

网络路径下倾斜模型生产流程-模型s3c化

网络路径下倾斜模型生产流程-模型s3c化 将osgb模型处理文件拷贝到osgb模型文件夹下 在osgb模型文件夹下,新建与工程同名文件夹,然后将原文件夹下所有文件拷贝到YNPE27文件夹下, E:\YNPE27\CC\YNPE27\Productions\Production_2\YNPE27 打开o…

腾讯云轻量应用服务器使用限制(买前必看)

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制,比如轻量服务器不支持更换内网IP地址,轻量服务器只能套餐整体升级且不支持降配,轻量不支持用户自定义配置私有网络VPC,还有如实例配额、云硬盘配额、备案限制和内网连通性等限…

【工作笔记】Springboot一个比较通用的数据脱敏处理办法

背景 个人信息中的手机号、邮箱等属于敏感数据,其中手机号需要加密存储,邮箱可以直接存储但是在获取和展示时要做脱敏处理; 针对此类敏感数据, 介绍一种比较通用的脱敏方法。 基于注解 1. 定义DataMask注解 Retention(RetentionPo…

Maven 知识点总结

文章目录 核心点:Maven 能做什么?Maven的安装1、安装2、配置文件 Maven 的概念1、坐标:通过坐标唯一定位2、scope依赖范围3、maven的传递性依赖性质4、optional可选依赖5、exclusion排除依赖6、properties归类依赖7、优化依赖 Maven基本使用1…