GRE 隧道协议

news2024/11/16 17:36:18

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.coloradmin.cn/o/497908.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ES6之迭代器

文章目录 前言迭代器1.原生具备Iterator接口的数据(可用for...of遍历)2.工作原理3.自定义遍历数据 总结 前言 迭代器(Iterator) for…of遍历 迭代器 迭代器是一种接口,为各种不同数据结构提供统一的访问机制。任何数…

c++ 11标准模板(STL) std::vector (八)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…

智慧工地烟火识别算法 opencv

智慧工地烟火识别系统应用pythonopencv深度学习算法模型技术分析前端视频信息&#xff0c;智慧工地烟火识别算法模型主动发现工地或者厂区现场区域内的烟雾和火灾苗头及时进行告警。OpenCV的全称是Open Source Computer Vision Library&#xff0c;是一个跨平台的计算机视觉处理…

前端三剑客 - HTML

前言 前面都是一些基础的铺垫&#xff0c;现在就正式进入到web开发环节了。 我们的目标就是通过学习 JavaEE初阶&#xff0c;搭建出一个网站出来。 一个网站分成两个部分&#xff1a; 前端&#xff08;客户端&#xff09; 后端&#xff08;服务器&#xff09; 通常这里的客户端…

ASP.NET Core Web API用户身份验证

一、JWT介绍 ASP.NET Core Web API用户身份验证的方法有很多&#xff0c;本文只介绍JWT方法。JWT实现了服务端无状态&#xff0c;在分布式服务、会话一致性、单点登录等方面凸显优势&#xff0c;不占用服务端资源。简单来说&#xff0c;JWT的验证过程如下所示&#xff1a; &a…

基于微服务架构的水果销售系统的设计与实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 整体上为微服务架构&#xff0c;使用 SpringCloud 技术&#xff0c;每个独立的服务为一个单独的 SpringBoot 工程&#xff1b;数据库使用 MySQL 数据库&#xff1b;分布式缓存使用 Redis&#xff0c;消息队列使用 Kafka。包括…

基于matlab的相控阵系统仿真场景可视化

一、前言 此示例演示如何使用方案查看器可视化系统级仿真。 二、介绍 相控阵系统仿真通常包括许多移动物体。例如&#xff0c;阵列和目标都可以处于运动状态。此外&#xff0c;每个移动物体可能都有自己的方向&#xff0c;因此当模拟中出现更多玩家时&#xff0c;簿记变得越来越…

是人就能学会的Spring源码教学-Spring的简单使用

是人就能学会的Spring源码教学-Spring的简单使用 Spring的最简单入门使用第一步 创建项目第二步 配置项目第三步 启动项目 Spring的最简单入门使用 各位道友且跟我一道来学习Spring的最简单的入门使用&#xff0c;为了方便和简单&#xff0c;我使用了Spring Boot项目&#xff…

解决NixOS在Vmware中无法自适应显示缩放问题

解决NixOS在Vmware中无法自适应显示缩放问题 此方法同样适用于所有虚拟机&#xff0c;主要解决的是 虚拟机界面显示无法自适应操作虚拟机时&#xff0c;过渡动画卡顿看视频时&#xff0c;分辨率不高&#xff0c;伴随卡顿 起因 在为 NixOS安 装完 Vmware Tools 后&#xff0c;…

2023年最新水果DAW编曲软件fl studio21 macOS - 21.0.3.3036简体中文版免费下载支持苹果M1/M2处理器

一直梦想制作自己的音乐(无论是作为一名制作人还是艺术家)&#xff0c;你可能会想你出生在这个时代是你的幸运星。这个水果圈工作室和上一版之间的改进水平确实令人钦佩。这仅仅是FL Studio 21所提供的皮毛。你的音乐项目的选择真的会让你大吃一惊。你以前从未有过这样的多才多…

【LeetCode】《LeetCode 101》第七章:动态规划

文章目录 7.1 算法解释7.2 基本动态规划&#xff1a;一维70. 爬楼梯&#xff08;简单&#xff09;198.打家劫舍&#xff08;中等&#xff09;413. 等差数列划分&#xff08;中等&#xff09; 7.3 基本动态规划&#xff1a;二维64. 最小路径和&#xff08;中等&#xff09;542. …

【项目经理】论项目经理的自我修养

项目经理的非职权领导力 文章目录 项目经理的非职权领导力一、权利的类型二、构成权利的三要素三、沟通是实施影响力的重要手段3.1 沟通的主要类型3.2 沟通的内容和形式3.3 沟通的主要困难 四、综合沟通协调的技巧4.1 常见的负面反馈4.2 沟通技巧 五、论项目经理的自我修养5.1 …

PyCharm2023.1下载、安装、注册以及简单使用【全过程讲解】

在使用PyCharm IDE之前&#xff0c;请确保自己的计算机里面安装了Python解释器环境&#xff0c;若没有下载和安装可以看看我之前的文章>>>Python环境设置>>>或者还可以观看视频讲解。 注意&#xff1a;本文软件的配置方式仅供个人学习使用&#xff0c;如有侵…

如何将PDF文件转换为Excel表格?这两个方法方便实用!

如何将PDF文件转换为Excel表格&#xff1f; 很多人在编辑和处理表格内容时&#xff0c;需要将PDF文件转换为Excel表格&#xff0c;以更好地修改和排版。虽然PDF文件往往起到展示整体效果的作用&#xff0c;但是PDF转Excel也是办公中老生常谈的文档处理操作。如果您还不知道如何…

Java架构中VO、DTO、DO、BO的区别与联系(超详解)

VO、DTO、DO、BO的区别与联系 前言一、概念1、VO (View Object)2、DTO(Data Transfer Object)3、DO(Data Object)4、BO&#xff08;Business Object&#xff09; 二、为什么会存在Vo&#xff1f;三、总结 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识…

深入理解 node 中的文件流

为什么要使用文件流 想象这样一个场景&#xff0c;我要处理一个 10G 的文件&#xff0c;但我的内存大小只有 2G&#xff0c;该怎么办&#xff1f; 我们可以分 5 次读取文件&#xff0c;每次只读取 2G 的数据&#xff0c;这样就可以解决这个问题&#xff0c;那么这个分段读取的过…

HTML基本标签介绍

HTML的基本认识&#xff01; 文章目录 HTML基本标签介绍1. HTML是什么&#xff1f;1.1 HTML代码的样子1.2 HTML文件的展示1.3 VSCode配置 2. HTML常用标签介绍2.1 注释标签2.2 标题标签2.3 段落标签2.4 换行标签2.5 格式化标签2.6 图片标签2.7 超链接标签2.8 表格标签2.9 列表标…

Windows下 ffmpeg 的 “Protocol not found“ 的解决

文章目录 1. 问题描述2. 排查方法记录2.1 检查代码中编码器是否安装2.2 确定ffmpeg版本号2.3 打印编译参数2.4 查看运行中调用dll 1. 问题描述 调用ffmpeg库中&#xff0c;如果使用 avformat_open_input 打开返回 -1330794744,使用 av_strerror char buf[1024]{0};int result …

JavaScript高阶项目—组件化的可编辑表格

1. 任务要求 JSON数据,表格中数据来自服务端&#xff0c;由JSON格式表示。通过JSON数据生成可编辑表格&#xff0c;并且灵活配置可编辑得到数据列。输入数据时打开开发者模式有提示&#xff0c;并且设置判断&#xff0c;要求输入正确的成绩。要求表格的可编辑列&#xff0c;计…

新鲜热乎的春招面经汇总

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「263」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2300 小伙伴加入&#xff01;去年认真准备和走下来的基…