IP-------GRE和MGRE
4.GRE和MGRE
1.应用场景
现实场景
居家工作,公司工作,分公司工作----------需要传输交换数据--------NAT---在该场景中需要两次NAT(不安全)
为了安全有两种手段-----1.物理专线---成本高 2.VPN--虚拟专用网---隧道技术--封装技术------翻墙行为------GRE--通用路由封装
2.GRE封装
模拟场景
希望流量的走法
SIP:192.168.1.1 DIP192.168.2.1 数据
真实物理链路的传递
SIP:12.0.0.1 DIP:23.0.0.2 数据
GRE的封装
-------处于三层封装-------在希望的走法上进行再封装,封装真实物理链路的传递
SIP:12.0.0.1 DIP:23.0.0.2 GRE
SIP:192.168.1.1 DIP:192.168.2.1 数据
3.GRE的配置
在GRE通讯前。必须保证公网的连通性
局限性---由gre构建的隧道实际上是一个点掉点的隧道
1.创建隧道接口
[R1]interface Tunnel 0/0/0
[R1-Tunnel0/0/0]ip address 192.168.3.1 24
2.选择隧道封装方式
[R1-Tunnel0/0/0]tunnel-protocol gre
3.定义封装内容
[R1-Tunnel0/0/0]source 12.0.0.1 源ip
[R1-Tunnel0/0/0]destination 23.0.0.2 目标ip[AR1-Tunnel0/0/1]description //这个是描述
[AR1-Tunnel0/0/1]destination //这个是目标
SIP:12.0.0.1 DIP:23.0.0.2 ---------真实物理链路的传递----在希望的走法上进行再封装,封装真实物理链路的传递
SIP:192.168.1.1 DIP:192.168.2.1 ------希望流量的走法
4.查看隧道接口配置
[R1-Tunnel0/0/0]display this
4.MGRE的配置
1.模拟场景
实质---------MGRE环境构建的网络实质任然是点到点的隧道。
相当于将多个私网变之间需要通过公网的线路变成同一个广播域的线路,所以也需要划分广播域,分配IP,配置IP
2.NHRP协议
NHRP---下一跳解析协议----C/S 架构
NHRS---下一跳解析服务器
NHRP表:中心公网接口地址一般不允许改变:首先需要在私网中确定一个设备作为NHS,规定NHS的公网地址一般不允许改变,并且其他分支设备需要知道中心的地址信息,之后分支会将自身隧道接口的IP地址和对应的公网ip地址对应关系发送给中心,中心收到消息后会记录一张表,之后转发数据查看这张表中记录的消息进行转发,其他分支之间想要通讯,想要向中心区请求这张表。
自身隧道接口的IP地址----------相当于变成同一个广播域下的网关IP
对应的公网ip地址------------真实物理链路传递的源接口网关IP
3.中心的配置
(定义中心设备为NHS)
1.创建隧道接口,并配置IP地址
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
创建隧道相当于连接一根物理线路一样需要配置网关ip
2.定义隧道封装协议
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp //p2mp---点到多点
3.定义封装内容
[r1-Tunnel0/0/0]source 15.0.0.1 -----自身的源网关IP,因为中心的公网IP不能变,所以直接写IP
[r1-Tunnel0/0/0]nhrp network-id 100 -------开启NHRP域,NHRP域id为100
4.分支的配置
1.创建隧道接口,并配置IP地址
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.2 24
2.定义隧道封装协议
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp
更改了IP地址,使用这条命令是会自动进行更新NHRP表中的对应关系
3.定义封装内容
[r2-Tunnel0/0/0]source serial 4/0/0 不写ip地址是因为IP如果变就没用了,所以直接写接口,换IP后会自动更新
[r2-Tunnel0/0/0]nhrp network-id 100 ----加入NHRP域,并且注意域ID必须一致
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.2 register -----向中心隧道IP和源ip去注册自己的消息,这里写中心隧道IP和源ip,不是这个设备的隧道IP和源ip
分支会将自身隧道接口的IP地址和对应的公网ip地址对应关系发送给中心,中心收到消息后会记录一张表
4.查看NHRP表
[r1]display nhrp peer all
NHRP---下一跳解析协议----C/S NHS---下一跳解析服务器:他的公网接口地址一般不允许改变:首先需要在私网中确定一个设备作为NHS,规定NHS的公网地址一般不允许改变,并且其他分支设备需要知道中心的地址信息,之后分支会将自身隧道接口的IP地址和对应的公网ip地址对应关系发送给中心,中心收到消息后会记录一张表,之后转发数据查看这张表中记录的消息进行转发,其他分支之间想要通讯,想要向中心区请求这张表。
5.出现的问题
1.运行RIP协议后,只有中心获取到了所有分支的路由信息,但是分支没有获取到路由
[r1-Tunnel0/0/0]nhrp entry multicast dynamic ----需要中心开启伪广播
6.全连的MGRE
全连的MGRE------即所有设备做中心的同时也会去做分支----最简单的建立方式------所有MGRE环境下的设备全部进行中心设备和分支设备的配置--------全部加入同一个域内
[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 24
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp
[r1-Tunnel0/0/0]source 15.0.0.1 -------可以封装源是接口
[r1-Tunnel0/0/0]nhrp network-id 100
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
[r1-Tunnel0/0/0】nhrp entry 192.168.5.3 35.0.0.2 register ------向R1,R2去注册自己的信息
[r1-Tunnel0/0/0】nhrp entry 192.168.5.2 25.0.0.2 register
[r2]interface Tunnel 0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.1 24
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source 15.0.0.1
[r2-Tunnel0/0/0]nhrp network-id 100
[r2-Tunnel0/0/0]nhrp entry multicast dynamic
[r2-Tunnel0/0/0】nhrp entry 192.168.5.3 35.0.0.2 register
[r2-Tunnel0/0/0】nhrp entry 192.168.5.1 15.0.0.2 register -------可以不写这条,因为R1向R2已经注册过信息,R2知道了R1的信息,然后R1也可以通过nhrp协议获取到R2的信息
[r3]interface Tunnel 0/0/0
[r3-Tunnel0/0/0]ip address 192.168.5.3 24
[r3-Tunnel0/0/0]tunnel-protocol gre p2mp
[r3-Tunnel0/0/0]source 35.0.0.1
[r3-Tunnel0/0/0]nhrp network-id 100
[r3-Tunnel0/0/0]nhrp entry multicast dynamic
[r3-Tunnel0/0/0】nhrp entry 192.168.5.1 15.0.0.2 register ------两条都可以不写,因为R1R2都向R3注册了信息
[r3-Tunnel0/0/0】nhrp entry 192.168.5.2 25.0.0.2 register
5.静态配置
配置好MGRE后,私网依旧无法ping通,原因是配置好MGRE后相当于将多个私网变之间需要通过公网的线路变成同一个广播域的线路,配置好了网关IP,但是数据包来到路由器,路由器会基于数据包中的目标IP地址查看本地的路由表,如果路由表中存在记录,则无条件按照路由表执行;如果路由表中不存在记录,则直接丢弃该数据包,而这里的该路由表没有记录。所以需要进行手工配置路由表路径,两边都要写,而且每一台设备都需要相互写,保证全通。
[r2]ip route-static 192.168.2.1 24 192.168.1.1 //(目标IP 掩码 下一跳网关IP)
6.RIP环境配置MGRE
因为建立的隧道也相当于是有直连网段,所以一般先建立MGRE,再开启RIP协议,进行所以直连网段宣告
[r1]rip 1 --- 进程号 --- 仅具有本地意义
[r1-rip-1]version 2 //选择版本
[r1-rip-1]network 192.168.1.0 //宣告直连网段IP段,但是不能宣告直连的公网网段,因为公网私网使用协议不同
//[r3-rip-1]default-route originate //将本设备设置为缺省源
//[r1-GigabitEthernet0/0/0]rip authentication-mode md5 usual cipher 123456 实现数据传输更新[r1]display ip in b 查看路由表发现分支没有获取到路由
配置MGRE网络出现的问题:
1.只有中心获取到了所有分支的路由信息,但是分支没有获取到路由
[r1-Tunnel0/0/0]nhrp entry multicast dynamic ----需要中心开启伪广播[r1]display ip in b 分支只获取到中心的路由信息,没有分支的路由
2.当RIP环境中中心开启伪广播后,分支只获取到中心的路由信息,没有分支的路由
[Huawei-Tunnel0/0/0]undo rip split-horizon--中心关闭RIP的水分割
7.OSPF配置MGRE
1.OSPF的环境
1.必须存在ABR
2.必须按照星型拓扑结构部署---------由于区域间路由传递会出现环路---------防环
2.非规则区域
1.远离骨干的非骨干区域---------骨干区域------区域1-------区域2
2.不连续骨干------------骨干区域-----区域1-----骨干区域
3.解决方案1
环境--------远离骨干的非骨干区域
隧道------------使用VPN隧道使的ADR合法化-----问题很多
开销值很大---------隧道接口--------如果有其他路径就尽量不选该隧道,隧道会多一次封装与解封装,会多使用资源 ,同时又不会直接绝路
创建隧道gre配置命令:
使用ospf协议命令:
产生的问题:
1.资源占用问题---------开销值-----会占用隧道跨越的区域---------会发送一些周期性的数据
-------虚拟隧道获取过了,真实链路还是会获取到
2.选路不佳------选择隧道------LSA信息优先级更高-------没有选择真实物理链路------选择隧道后因为是虚拟的链路,无法真正发送数据,最终还是需要通过真实链路发送--------这样选择虚拟链路比选择真实链路多了一层封装和解封装------资源占用问题
4.解决方案2
环境----------远离骨干的非骨干区域
OSPF的虚链路-----需要在非法ABR和合法的ABR之间建立一条虚链路,只能跨越一个区域-------实际并没有建立隧道----走物理链路
优点-----------比隧道方法配置简单,而且不会出现选路不佳
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4---指定必须双向------写对方的RID
问题:资源占用问题-----------会发送一些周期性的数据
解决问题:
思科:会取消周期性数据的发送-------信息不可靠
华为:还是会产生资源占用问题
5.解决方案3
环境--------远离骨干的非骨干区域
多进程双向重发布-----(推荐)----华为
配置位置:ASBR(运行了重发布的设备才能称为ASBR---自治系统边界路由器)
路由信息不可靠
相关文章:

IP-------GRE和MGRE
4.GRE和MGRE 1.应用场景 现实场景 居家工作,公司工作,分公司工作----------需要传输交换数据--------NAT---在该场景中需要两次NAT(不安全) 为了安全有两种手段-----1.物理专线---成本高 2.VPN--虚拟专用网---隧道技术--封装技…...

LabVIEW形状误差测量系统
在机械制造领域,形状与位置公差(GD&T)直接影响装配精度与产品寿命。国内中小型机加工企业因形状误差导致的返工率高达12%-18%。传统测量方式存在以下三大痛点: 设备局限:机械式千分表需人工读数,精度…...

django校园互助平台~源码
博主介绍:✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
Vue进阶之AI智能助手项目(五)——ChatGPT的调用和开发
AI智能助手项目 前端页面Layout布局页面-viewssrc/views/chat/layout/Permission.vuesrc/views/chat/layout/sider/index.vuesrc/views/chat/layout/sider/List.vuesrc/views/chat/layout/sider/Footer.vueComponents 组件Header/index.vueMessage/index.vue前端页面 Layout布…...
Jenkins重启后Maven的Project加载失败
个人博客地址:Jenkins重启后Maven的Project加载失败 | 一张假钞的真实世界 Jenkins重启后发现Maven的项目都没有正常加载。检查Jenkins的启动日志发现以下错误信息: java.io.IOException: Unable to read /home/jenkins/.jenkins/jobs/test-maven/conf…...

【docker】docker pull拉取中不断重复下载问题,解决方案之一,磁盘空间扩容
问题类似这样 存储空间不足 如果 Docker 运行环境的磁盘空间不足,拉取的镜像可能会被自动清理,导致重复下载。可以检查磁盘使用情况: df -h docker system df如果空间不足,可以清理一些不用的容器和镜像: docker sy…...
Ubuntu指令(一)
一、终端操作指令 打开终端,有两种便捷方式: 直接点击系统中的终端按钮;使用快捷键ctrl alt T。 关闭终端,同样有多种选择: 在终端输入exit指令;使用快捷键ctrl d;直接点击终端窗口的关闭…...

nnUNet V2修改网络——加入MultiResBlock模块
更换前,要用nnUNet V2跑通所用数据集,证明nnUNet V2、数据集、运行环境等没有问题 阅读nnU-Net V2 的 U-Net结构,初步了解要修改的网络,知己知彼,修改起来才能游刃有余。 MultiRes Block 是 MultiResUNet 中核心组件之一,旨在解决传统 U-Net 在处理多尺度医学图像时的局…...

Spring Boot + Vue 接入腾讯云人脸识别API(SDK版本3.1.830)
一、需求分析 这次是基于一个Spring Boot Vue的在线考试系统进行二次开发,添加人脸识别功能以防止学生替考。其他有对应场景的也可按需接入API,方法大同小异。 主要有以下两个步骤: 人脸录入:将某个角色(如学生&…...

【SpringSecurity】springboot整合SpringSecurity实现登录校验与权限认证
【SpringSecurity】springboot整合SpringSecurity实现登录校验与权限认证 【一】SpringSecurity框架简介【二】SpringSecurity与shiro【1】SpringSecurity特点【2】shiro特点【3】SpringSecurity和shiro总结 【三】SpringSecurity过滤器【1】SpringSecurity中常见的过滤器【2】…...

【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取
【HarmonyOS Next】鸿蒙应用公钥和证书MD5指纹的获取 一、问题背景 政府的icp备案时,或者某些三方SDK以来的管理后台,都需要配置鸿蒙应用的公钥和证书MD5指纹 二、解决方案 专有名词解释: 华为AppGallery Connect简称 AGC平台࿰…...
父组件用的是原生监听,子组件用的是onClick,子组件添加了stopPropagation还是没有阻止传播
父组件用事件监听,子组件用onClick,即使子组件加了stopPropagation还是没有阻止冒泡。父组件可能使用原生的addEventListener来绑定事件,而子组件用的是React的onClick事件。这时候,虽然子组件调用了e.stopPropagation()ÿ…...

ui设计公司兰亭妙微分享:科研单位UI界面设计
科研单位的UI界面设计是一项至关重要的任务,它不仅关乎科研工作的效率,还直接影响到科研人员的用户体验。以下是对科研单位UI界面设计的详细分析: 一、设计目标 科研单位的UI界面设计旨在提升科研工作的效率与便捷性,同时确保科…...

python绘制年平均海表温度、盐度、ph分布图
python绘制年平均海表温度、盐度、ph图 文章目录 python绘制年平均海表温度、盐度、ph分布图前言一、数据准备二、代码编写2.1. python绘制年平均海表温度(主要)2.2. python绘制年平均海表盐度(选看)2.3. python绘制年平均海表ph&…...

windows中kafka集群部署示例
注意 kafka包路径不要太长,不然启动时候 这里再单独下个zookeeper做为三个kafka实例broker的注册中心 修改Zookeeper配置文件 脚本内容 call bin/zkServer.cmd 不然的话就进bin目录双击zkServer.cmd 配置Zookeeper的另外一种方式 用Kafka自带的zookeeper 例如我复制一份 …...
获取GitHub的OAuth2的ClientId和ClientSecrets
获取 GitHub OAuth2 登录所需的 client-id 和 client-secret 登录 GitHub:使用你的 GitHub 账号登录到 GitHub。访问开发者设置:点击右上角的头像,选择 Settings,然后在左侧导航栏中选择 Developer settings。创建新的 OAuth 应用…...
self-attention部分代码注释
多头注意力机制(Multi-Head Attention, MHA),是 Transformer 模型的核心组件之一。以下是对代码的逐行解析和详细说明: attention-is-all-you-need-pytorch-master\transformer\SubLayers.py class MultiHeadAttention(nn.Mo…...
idea里的插件spring boot helper 如何使用,有哪些强大的功能,该如何去习惯性的运用这些功能
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
常用的配置文件格式对比(ini,toml,yaml,json,env,settings.py)及应用程序修改自身配置并保留注释
代码与环境配置解耦 git分支的代码应做到“环境无关”:代码本身不硬编码任何环境特定的配置(如数据库连接、密钥、API地址),而是通过外部机制动态注入。 配置与代码分离:将配置信息存储在代码库之外(如环…...
Java IO 和 NIO 的基本概念和 API
一、 Java IO (Blocking IO) 基本概念: Java IO 是 Java 平台提供的用于进行输入和输出操作的 API。Java IO 基于 流 (Stream) 的模型,数据像水流一样从一个地方流向另一个地方。Java IO 主要是 阻塞式 I/O (Blocking I/O),即线程在执行 I/O …...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...

边缘计算网关提升水产养殖尾水处理的远程运维效率
一、项目背景 随着水产养殖行业的快速发展,养殖尾水的处理成为了一个亟待解决的环保问题。传统的尾水处理方式不仅效率低下,而且难以实现精准监控和管理。为了提升尾水处理的效果和效率,同时降低人力成本,某大型水产养殖企业决定…...