GRE、MGRE 详解-程序员宅基地

技术标签: 网络  运维  服务器  

目录

一、GRE---通用路由封装

1.1 GRE概念

1.2 GRE报文格式

1.3 GRE报文封装与解封装

1.3.1报文封装

1.3.2报文解封装

1.4案例配置

1.5keepalive机制  

二、MGRE---多点通用路由封装

2.1 MGRE基本概念

2.2 NFRP协议

2.2.1NHRP映射表

2.2.2 NHRP动态表项建立步骤

2.3 Normal方式、Shortcut方式

2.3.1 Normal方式(非Shortcut方式)

2.3.2 Shortcut方式

参考连接:


一、GRE---通用路由封装

 三层隧道技术,并且是属于点到点的隧道

1.1 GRE概念

  • 全称:GRE(Generic Routing Encapsulation):通用路由封装协议。
  • 功能:定义了在一种网络层协议上封装另一种协议(或同一种协议)。
  • 举例:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。
  • 所在层次:GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用了一种被称之为Tunnel(隧道)的技术。

 Tunnel是一个虚拟的点对点的连接,在实际中可以看成仅支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的数据报能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封 。

 报文在GRE隧道中传输包括封装和解封装两个过程。如图所示,如果X协议报文从Ingress PE向Egress PE传输,则封装在Ingress PE上完成,而解封装在Egress PE上进行。封装后的数据报文在网络中传输的路径,称为GRE隧道。

1.2 GRE报文格式

1.3 GRE报文封装与解封装

1.3.1报文封装

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

1.3.2报文解封装

  • Router B从Tunnel接口收到IP报文,检查目的地址;
  • 如果发现目的地是本路由器,则Router B剥掉此报文的IP报头,交给GRE协议处理(进行检验密钥、检查校验和及报文的序列号等);
  • GRE协议完成相应的处理后,剥掉GRE报头,再交由X协议对此数据报进行后续的转发处理。
  •  随着报文的封装、解封装,会导致有效数据传输效率降低, 从而导致设备对GRE数据转发速率降低。

1.4案例配置

在AR1 上的配置,AR3上的配置与之相似 

[r1]interface Tunnel 0/0/0  ---创建一个虚拟隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24  --配置虚拟接口IP
[r1-Tunnel0/0/0]tunnel-protocol gre   ---定义隧道所使用的协议
[r1-Tunnel0/0/0]source 12.0.0.1   ---定义封装中的源地址信息
[r1-Tunnel0/0/0]destination 23.0.0.3  ---定义封装中的目的地址信息

添加私网路由信息,将其导入到隧道接口  

[r1]ip route-static 192.168.2.0 24 192.168.3.3
[r3]ip route-static 192.168.1.0 24 192.168.3.1

1.5keepalive机制  

keepalive机制是用来检测隧道对端是否可达。
当某端开启该机制后,会周期性发送keepalive报文,对端收到后会回复keepalive报文。当一定次数未收到回复报文,则认为该隧道不可用。(默认3次,每一次发送时间间隔为5秒)

配置命令

[r1-Tunnel0/0/0]keepalive 
[r1-Tunnel0/0/0]keepalive period 10 retry-times 5
	period:设置发送周期
	retry-times:重传次数

二、MGRE---多点通用路由封装

2.1 MGRE基本概念

  • MGRE:点到多点的GRE隧道,它是对传统的点到点GRE隧道的一种扩展。
  • MGRE与GRE只在构建隧道方式上有所差异,但其报文的封装方式和原理与GRE隧道完全一致。
  • 根据建立机制的不同,可将MGRE隧道分为静态隧道和动态隧道两种:

静态隧道:建立在Hub与Spoke之间,无论是否有流量经过,改隧道一直存在。
动态隧道:建立在spoke与spoke之间,当spoke与spoke之间有流量经过时,隧道会自动被创建;当一定周期没有流量经过时,隧道将自动拆除

2.2 NFRP协议

NHRP全称下一条解析协议,自动学习隧道地址和物理地址(公网地址)的对应关系

解决了MGRE总部与使用动态IP的分支建立隧道、分支与分支建立隧道的问题

使用NHRP协议帮助建立MGRE隧道

2.2.1NHRP映射表

将Tunnel口的地址与公网IP地址做映射,将其映射关系保存在NHRP映射表中,实现点到多点建立GRE隧道

NHRP映射表分为静态映射和动态映射

静态表项

手工配置,用于MGRE静态隧道的建立

在Spoke-分部上手工配置Hub的Tunnel地址和公网地址

动态表项

动态表项建立主要依靠主动注册和动态查询两步来实现,用于MGRE动态隧道的建立

2.2.2 NHRP动态表项建立步骤

步骤一:主动注册——解决了总部与分支动态IP建立MGRE隧道的问题

  • Spoke与Hub建立静态表项之后,会发送主动注册消息到Hub
  • Hub然后发送注册应答消息回应,使得Hub得到Spoke的Tunnel地址和公网地址的映射关系(之后Spoke会定时发送主动注册消息来保持与总部的隧道关系)

步骤二:动态查询——解决了分支与分支建立MGRE隧道的问题

使得Spoke之间互相获得对方的公网IP与Tunnel接口的映射关系,解决了分支与分支建立MGRE隧道的问题。

动态查询有两种实现方式,通过Normal方式、Shortcut方式任意一种来就可以实现

2.3 Normal方式、Shortcut方式

2.3.1 Normal方式(非Shortcut方式)

  • 要Spoke之间都有对方Tunnel口的路由(静态、OSPF都可以),通过Tunnel地址为索引查找出Spoke对应的公网IP地址
  • 要注意在使用OSPF时网络类型必须为广播方式,此种方式推荐使用OSPF

spoke_A与spoke_B之间建立动态MGRE隧道过程如下:

  1. A要和B私网之间进行通信时,首先查找自己的路由表,发现下一跳地址为1.1.1.2(Spoke2 Tunnet接口)。然后根据下一跳查找自己的NHRP映射表,发现里面没有对应表项,A会默认将该报文直接发给Hub,同时出发NHRP地址解析请求(NHRP请求中包含A的tunnel接口和公网接口地址,还有需要解析的B的tunnel地址)。
  2. Hub在接收到请求和业务报文后,会通过自己与B之间的隧道将其转发给B。
  3. B接收到A的NHRP请求后,将A的对应关系加载到自己的NHRP映射表中。同时,B也生成NHRP的应答直接返回给A。
  4. A收到B的应答后,将应答信息加载到本地NHRP映射表中,然后A和B之间动态建立MGRE隧道。

隧道建立后,A和B之间的通信会有A直接发给B,不会再经过中间Hub的中转。

2.3.2 Shortcut方式

  • Spoke只需要有去Hub的路由(静态或OSPF),不需要有去其它分支的路由,通过Hub来得到其它Spoke的公网IP与Tunnel的对应关系
  • 要注意在使用OSPF时网络类型必须为P2MP方式,不过此种方式更推荐使用静态路由

spoke_A与spoke_B之间建立动态MGRE隧道过程如下:

  1. A要和B私网之间进行通信时,首先根据目的地址查找自己的NHRP映射表,发现里面没有对应表项;所以,A会接着查找路由表,发现了目标地址对应的下一跳为Hub的地址,于是将此业务报文发送给Hub(通过静态隧道转发)
  2. Hub在收到A的报文后,将报文转发给B。
  3. 如果Hub在 转发过程中,发现接收此报文的接口和发送此报文的Tunnet接口在同一网段,Hub就会向A发送重定向的消息(携带Hub的Tunnel地址和公网地址、以及需要解析的数据报文的目的地址192.168.2.0)Hub通知A发送的NHRP请求(请求B的公网地址),要求A和B之间建立隧道直接通信,后续报文也不需要经过Hub中转。
  4. 4A向Hub发送NHRP请求(包含了A的私网网段和A的公网接口地址,以及B的私网网段),由于shortcut方式下采用的是路由聚合方案,因此A 无法学习到B的tunnel地址,只能通过B的私网地址来获取B的公网接口地址。
  5. B接收到A的NHRP请求后,将A的对应关系(A的私网地址和公网接口地址)加载到自己的NHRP映射表中。同时,B也生成NHRP的应答返回给A。
  6. A收到B的应答后,将应答信息加载到本地NHRP映射表中(B的私网地址和公网接口地址),然后A和B之间动态建立MGRE隧道。
  7. 隧道建立后,A和B之间的通信会有A直接发给B,不会再经过中间Hub的中转。

      以非shortcut方式进行DSVPN组网时,分支站点可以自主发现NHRP映射表中存在关系缺少的现象,从而主动向hub节点申请通讯对端的映射关系。而在shortcut组网环境下,分支站点无法自主发现,需要hub节点通过重定向报文参与到分支之间的隧道建立过程

参考连接:

防火墙——动态智能隧道DSVPN讲解_nhrp协议-程序员宅基地

HCIE笔记-第十天_nhrp-程序员宅基地

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_74227828/article/details/137024321

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文