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

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平台&#xff0…...

父组件用的是原生监听,子组件用的是onClick,子组件添加了stopPropagation还是没有阻止传播

父组件用事件监听,子组件用onClick,即使子组件加了stopPropagation还是没有阻止冒泡。父组件可能使用原生的addEventListener来绑定事件,而子组件用的是React的onClick事件。这时候,虽然子组件调用了e.stopPropagation()&#xff…...

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 …...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

SpringTask-03.入门案例

一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

JVM 内存结构 详解

内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: ​ 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

32单片机——基本定时器

STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...