当前位置: 首页 > news >正文

GRE/MGRE详解

GRE

GRE:通用路由封装,是标准的三层隧道技术,是一种点对点的隧道技术;

该技术可以实现不同的网络之间安全的访问;

如上:可以使用该技术搭建一条专线,实现公司A与分公司A1之间相互通信;使用双IP头部;

通常在设备边界上做VPN;

在创建隧道时要确保隧道的两端能够通信;隧道的两端IP地址可以在同一个网段,也可以在不同网段;

当在不同网段时,只能通过静态路由的方式使两个私网通信;当在同一个网段时可以通过动态路由的方式来使两个私网通信;

GRE的协议号是47;

配置:
AR3:
[r1]interface Tunnel 0/0/0					----创建隧道
[r1-Tunnel0/0/0]ip address 10.1.1.1 24		----给隧道配置IP
[r1-Tunnel0/0/0]tunnel-protocol ?			----选择隧道的模式:GRE模式gre        Generic Routing Encapsulationipsec      IPSEC Encapsulationipv4-ipv6  IP over IPv6 encapsulationipv6-ipv4  IPv6 over IP encapsulationmpls       MPLS Encapsulationnone       Null Encapsulation
[r1-Tunnel0/0/0]tunnel-protocol gre 
[r1-Tunnel0/0/0]source 12.1.1.1			 -----隧道的源IP(就是本端边界设备接口的IP)
[r1-Tunnel0/0/0]destination 23.1.1.2	 -----隧道的目标IP(就是对端边界设备接口的IP)标识一条唯一的隧道是通过源IP和目标IP;AR5:
[r3]interface Tunnel 0/0/1
[r3-Tunnel0/0/1]ip address 10.1.1.2 24
[r3-Tunnel0/0/1]tunnel-protocol gre 
[r3-Tunnel0/0/1]source 23.1.1.2 
[r3-Tunnel0/0/1]destination12.1.1.1

在思科中,确定一条唯一的隧道是通过源IP,目标IP,keyID来确定;也就是说在两端可以创建很多条隧道;

GRE数据包:

该数据包使用了双IP头部,Type表示的是上层使用了什么协议:0800表示使用的是IPV4;

GRE的缺点:GRE是点对点的,每一条隧道都要由唯一 的源和目标确定,当我们需要创建的隧道的数量过多时就会不合适;

MGRE

MGRE:多点通用路由封装协议;

在MGRE中,我们只定义源,不定义目标;但是我们在使用的时候又必须知道目标,所以在MGRE中我们要借助:下一跳可达协议(NHRP);

NHRP协议:

NHRP-----下一跳可达协议;该协议类似于ARP协议;在所有的隧道口都要运行NHRP协议;

指定好NHRP服务器后,所有的客户端都会配置谁是NHRP服务器;

之后所有的客户端都会将隧道接口的IP,物理IP信息都会封装在NHRP注册包里面发送给NHRP服务器进行注册,NHRP服务器是手工指定的;

所有的MGRE接口将自己的MGRE接口IP地址和对应隧道接口地址信息发送给NHS进行注册,NHS上存在所有接入MGRE的接口映射关系。其他MGRE接口之间彼此通信时向NHS进行请求,形成隧道的目标地址。

MGRE配置:

配置:
NHRP服务器端:
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp  -----配置GRE的模式为点到多点
[r1-Tunnel0/0/0]ip address 10.1.1.1 24
[r1-Tunnel0/0/0]source 12.1.1.1 		  -----配置源IP
[r1-Tunnel0/0/0]nhrp network-id 100		  -----配置NHRP的ID,唯一标识一个NHRP服务器,在客户端中也要标识;客户端:
[r3]interface Tunnel 0/0/0
[r3-Tunnel0/0/0]tunnel-protocol gre p2mp ------配置GRE的模式为点到多点
[r3-Tunnel0/0/0]ip a 10.1.1.2 24
[r3-Tunnel0/0/0]source 23.1.1.1          ------配置源IP
[r3-Tunnel0/0/0]nhrp network-id 100		 ------配置NHRP的ID,唯一标识,具有全局意义
[r3-Tunnel0/0/0]nhrp entry 10.1.1.1 12.1.1.1 register -----表示向NHRP服务器进行注册,10.1.1.1代表的是NHRP服务端的隧道接口地址,12.1.1.1代表的是NHRP服务器真实的物理接口地址;

[r1]display nhrp peer all ----------查看NHRP所有的对等体的信息;

在将隧道建立好了之后,我们在A,A1,A2上启用RIP,看看对端是否能够学习到路由;当运行RIP后发现:只有AR1能够学习到对端的路由,而AR3,AR4都无法学习到路由;因为这种结构是hub-spoke结构,A1,A2在发送路由时源地址是自己的隧道接口地址和物理地址,目标地址是224.0.0.9(组播地址),由于AR1是中心站点所以只会给AR1发送;这种网络类型默认是非广播的多路访问(NBMA);所以,我们要在NHRP服务器(AR1)上开启伪广播功能;伪广播:将动态学习到的路由向NHRP中的各个站点分别发送;[r1-Tunnel0/0/0]nhrp entry multicast dynamic   ------开启伪广播功能
[r1-Tunnel0/0/0]undo rip split-horizon			-----关闭水平分割

当我们开启伪广播功能之后,我们发现此时还是只能学习到一条路由;出现该现象的是RIP的水平分割,我们只需要在中心站点关闭水平分割功能;

当关闭之后,就可以发现各个站点可以学习到所有路由;

相关文章:

GRE/MGRE详解

GRE GRE:通用路由封装,是标准的三层隧道技术,是一种点对点的隧道技术; 该技术可以实现不同的网络之间安全的访问; 如上:可以使用该技术搭建一条专线,实现公司A与分公司A1之间相互通信&#xf…...

蓝桥杯(填空题)

十四届 B组 日期统计(暴力枚举) 数据 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1 0 0 9 4 8 0 9 1 2 8 5 0 2 5 3…...

vim快捷指令

Vim是一款强大的文本编辑器,它提供了许多快捷指令来提高编辑效率。以下是一些常用的Vim快捷指令: 移动光标: h 向左移动一个字符j 向下移动一行k 向上移动一行l 向右移动一个字符w 跳到下一个单词的开头b 跳到前一个单词的开头e 跳到当前单词…...

LINUX 下IPTABLES配置详解

-t<表>&#xff1a;指定要操纵的表&#xff1b; -A&#xff1a;向规则链中添加条目&#xff1b; -D&#xff1a;从规则链中删除条目&#xff1b; -i&#xff1a;向规则链中插入条目&#xff1b; -R&#xff1a;替换规则链中的条目&#xff1b; -L&#xff1a;显示规则链中…...

CentOS 网卡ifcfg-eth0 ping不通外网(www.baidu.com)

1、如果确认好就直接激活网卡&#xff01; ifup eth0 2、慢慢找&#xff1a; cd /etc/sysconfig/network-scripts/ ls 找到你的网卡是啥&#xff0c;这里网卡是 ifcfg-eth0 执行1就好了&#xff01;...

【C++】类和对象②(类的默认成员函数:构造函数 | 析构函数)

&#x1f525;个人主页&#xff1a;Forcible Bug Maker &#x1f525;专栏&#xff1a;C 目录 前言 类的6个默认成员函数 构造函数 概念 构造函数的特性及用法 析构函数 概念 析构函数的特性及用法 结语 前言 本篇主要内容&#xff1a;类的6个默认成员函数中的构造函…...

【ZZULIOJ】1063: 最大公约与最小公倍(Java)

目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy 提示 code 题目描述 输入两个正整数&#xff0c;输出其最大公约数和最小公倍数。 输入 输入两个正整数n和m&#xff08;n,m<1000000)。输入保证最终结果在int范围内。 输出 输出两个整数&#xff0c;用空格…...

遍历列举俄罗斯方块的所有形状

以前玩俄罗斯方块的时候&#xff0c;就想过一个问题&#xff0c;为什么俄罗斯方块就这7种形状&#xff0c;还有没有别的形状&#xff1f;自己也在纸上画过&#xff0c;比划来比划去&#xff0c;确实就这几种形状。 继续思考一下&#xff0c;那假如是3个块组合的形状&#xff0…...

将Visio绘图导出PDF文件,使其自适应大小,并去掉导入Latex的边框显示

问题描述 将Visio绘图导成pdf文件&#xff0c;首先在Visio绘图如下&#xff1a; 如果直接导出或者另存为pdf文件&#xff0c;则会发现pdf文件是整个页面大小&#xff0c;而不是图片大小。而且在导入latex等排版工具现实时&#xff0c;会显示边框。 问题解决 1.调整Visio中的页…...

android支付宝接入流程

接入前准备 接入APP支付能力前&#xff0c;开发者需要完成以下前置步骤。 本文档展示了如何从零开始&#xff0c;使用支付宝开放平台服务端 SDK 快速接入App支付产品&#xff0c;完成与支付宝对接的部分。 第一步&#xff1a;创建应用并获取APPID 要在您的应用中接入支付宝…...

Mac 下 Python+Selenium 自动上传西瓜视频

背景 研究下 PythonSelenium 自动化测试框架&#xff0c;简单实现 Mac 下自动化批量上传视频西瓜视频并发布&#xff0c;分享给需要的同学&#xff08;未做过多的异常处理&#xff09;。 脚本实现 首先通过手工手机号登录&#xff0c;保存西瓜视频网站的 cookie 文件 之后加载…...

六:ReentrantLock —— 可重入锁

目录 1、ReentrantLock 入门2、ReentrantLock 源码解析2.1、构造方法&#xff1a;默认为非公平锁2.2、三大内部类2.2、lock()&#xff1a;加锁【不可中断锁】2.2.1、acquire() 方法 —— AQS【模板方法】2.2.2.1 tryAcquire() 方法 —— AQS&#xff0c;由子类去实现2.2.2.2. a…...

一种驱动器的功能安全架构介绍

下图提供了驱动器实现安全功能的架构 具有如下特点&#xff1a; 1.通用基于总线或者非总线的架构。可以实现ethercat的FSOE&#xff0c;profinet的profisafe&#xff0c;或者伺服本体安全DIO现实安全功能。 2.基于1oo2D架构&#xff0c;安全等级可以达到sil3。 3.高可用性。单…...

紫光展锐T610平台_4G安卓核心板方案定制开发

紫光展锐T610核心板配备Android 11操作系统&#xff0c;采用12nm制程工艺。该处理器CPU由2颗基于Cortex-A75架构的大核心和6颗基于Cortex-A55架构的小核心组成&#xff0c;最高主频为1.8GHz。GPU采用的是614.4MHz的Mali G52&#xff0c;可以流畅播放2400*1080分辨率视频&#x…...

C++11 设计模式4. 抽象工厂(Abstract Factory)模式

问题的提出 从前面我们已经使用了工厂方法模式 解决了一些问题。 现在 策划又提出了新的需求&#xff1a;对于各个怪物&#xff0c;在不同的场景下&#xff0c;怪物的面板数值会发生变化&#xff0c; //怪物分类&#xff1a;亡灵类&#xff0c;元素类&#xff0c;机械类 …...

第8周 Python面向对象编程刷题

单击题目&#xff0c;直接跳转到页面刷题&#xff0c;一周后公布答案。加入QQ群701657573&#xff0c;随时答疑交流。 218&#xff1a;类对象属性219&#xff1a;坐标对象相加220&#xff1a;计算周长221&#xff1a;学生分数总和222&#xff1a;车辆类中创建引擎类对象223&am…...

【学习心得】神经网络知识中的符号解释②

我在上篇文章中初步介绍了一些神经网络中的符号&#xff0c;只有统一符号及其对应的含义才能使我自己在后续的深度学习中有着一脉相承的体系。如果对我之前的文章感兴趣可以点击链接看看哦&#xff1a; 【学习心得】神经网络知识中的符号解释①http://t.csdnimg.cn/f6PeJ 一、…...

Igh related:Small Bug And Notes Record.

Write at the top My computer got some silly problem with the typing software that my Chinese IM does’t work again. So I’ll try to record the things happened in English. If any error,DM me plz. BUGs BUG1 Undefined symbol Identifier “CLOCK_MONOTONIC”…...

【QT入门】Qt自定义控件与样式设计之qss介绍(Qt style sheet)

往期回顾&#xff1a; 【QT入门】 无边框窗口设计之实现圆角窗口-CSDN博客【QT入门】 无边框窗口设计综合运用之自定义标题栏带圆角阴影的窗口-CSDN博客 【QT入门】 无边框窗口设计之综合运用&#xff0c;实现WPS的tab页面-CSDN博客 【QT入门】Qt自定义控件与样式设计之qss介绍…...

[ LeetCode ] 题刷刷(Python)-第49题:字母异位词分组

题目描述 给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词是由重新排列源单词的所有字母得到的一个新单词。 即将含有相同字符但排列顺序不同的字符串放入同一个组中。 示例 示例 1: 输入: strs ["eat", &qu…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...