HCIP的学习(4)

GRE和MGRE

在这里插入图片描述

VPN---虚拟专用网络。指依靠ISP(运营商)或其他公有网络基础设施上构建的专用的安全数据通信网络。该网络是属于逻辑上的。

核心机制—隧道机制(封装技术)

GRE—通用路由封装

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

在这里插入图片描述

[r1]interface Tunnel 0/0/0  ---创建一个虚拟隧道接口(接口序号只能变最后一个数字,范围:0/0/0-0/0/511)
[r1-Tunnel0/0/0]ip address 192.168.3.1 24
[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配完,r3也要配置测试隧道是否成功建立:
[r1]ping 192.168.3.3     ----ping对方的隧道地址PING 192.168.3.3: 56  data bytes, press CTRL_C to breakReply from 192.168.3.3: bytes=56 Sequence=1 ttl=255 time=20 msReply from 192.168.3.3: bytes=56 Sequence=2 ttl=255 time=20 msReply from 192.168.3.3: bytes=56 Sequence=3 ttl=255 time=30 msReply from 192.168.3.3: bytes=56 Sequence=4 ttl=255 time=30 msReply from 192.168.3.3: bytes=56 Sequence=5 ttl=255 time=30 ms

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

[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测试:
[r1]ping -a 192.168.1.1 192.168.2.1   ---要使用-a规定源IP,不然路由器会使用12.0.0.1去测试

扩展:接收方在接收到报文时看到封装后的目的IP是自己的,往常逻辑会直接对三层进行解封装,但是GRE不同,接口看到报文的协议号为47(GRE协议号:47),就会直接将报文完整的交给隧道接口,因为它本身接口没有开启GRE协议,就算解封装了不认识GRE也会直接将报文丢了

keepalive机制

keepalive机制是用来检测隧道对端是否可达。(一般一端开启即可,因为发送和回复的报文都是keepalive报文,
内容都是一样的)
当某端开启该机制后,会周期性发送keepalive报文,对端收到后会回复keepalive报文。当一定次数未收到回复
报文,则认为该隧道不可用。(默认3次,每一次发送时间间隔为5秒)[r1-Tunnel0/0/0]keepalive 
[r1-Tunnel0/0/0]keepalive period 10 retry-times 5   ---用来更改次数与时间间隔(5次,间隔10秒)period:设置发送周期retry-times:重传次数

MGRE—多点通用路由封装

NHRP—下一跳解析协议

MGRE环境是属于P2MP网络,可以近似的看做是NBMA网络。但是其本质还是点到点。Hub and Spoke架构---中心到站点架构在私网环境中,选择一个出口物理IP不变的设备作为NHRP的中心节点(NHS)。这样,剩下的分支就
可以知晓中心的隧道IP和物理IP地址。然后NHRP协议要求所有分支将自己的物理IP和隧道IP的对应关系
发送给NHS(一旦发生改变就会发送)。这样NHS就拥有所有分支的地址映射关系,并记录在本地。
在发送数据报文之前,查询NHS决定封装数据。

在这里插入图片描述

中心:
[r1]interface Tunnel0/0/0
[r1-Tunnel0/0/0]ip address 192.168.5.1 255.255.255.0 
[r1-Tunnel0/0/0]tunnel-protocol gre p2mp  ---修改接口的封装协议为MGRE
[r1-Tunnel0/0/0]source 15.0.0.1[r1-Tunnel0/0/0]nhrp network-id 1    --默认值为0(范围:1-4294967295),改不改都行,要改所有的设备都要改分支:
[r2] Tunnel0/0/0
[r2-Tunnel0/0/0]ip address 192.168.5.2 255.255.255.0 
[r2-Tunnel0/0/0]tunnel-protocol gre p2mp
[r2-Tunnel0/0/0]source GigabitEthernet0/0/0   ---规定封装源为GE0/0/0接口的IP地址
[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register   --第一个IP为隧道地址,第二个为物理地址(都是中心的)1、告知本端,hub节点的隧道IP与物理IP的对应关系;2、向hub节点注册本地的隧道IP与物理IP的对应关系;补全路由信息:
[r1]ip route-static 192.168.2.0 24 192.168.5.2
[r1]ip route-static 192.168.3.0 24 192.168.5.3[r2]ip route-static 192.168.1.0 24 192.168.5.1  ----下一跳均为Hub节点
[r2]ip route-static 192.168.3.0 24 192.168.5.1[r3]ip route-static 192.168.1.0 24 192.168.5.1
[r3]ip route-static 192.168.2.0 24 192.168.5.1

DSVPN(动态智能VPN技术):可以随时增加和删除虚拟隧道专线和节点(下面两者相加组成)

  • MGRE
  • NHRP
shortcut方式:分支路由汇聚到总部,每一个分支编写的路由信息的下一跳均为hub节点。非shortcut方式:非便捷方式,分支之间相互学习路由。下一跳分别是分支的隧道IP地址。而非hub节点。

扩展:

Hub - Spoke:NHRP映射表静态关系

Spoke - Spoke:NHRP映射表动态关系

在非shortcut方式下,NHRP映射表动态关系:7200S(2小时)老化时间

非shortcut

在这里插入图片描述

解释:(图中的数字为报文顺序)

  1. 首先,在r2里有着3.0网段下一条对应虚拟网段接口5.3,虚拟网段接口5.1对应真实接口吓一跳15.0.0.1,r3中有着2.0网段下一条对应虚拟网段接口5.2,虚拟网段接口5.1对应真实接口吓一跳15.0.0.1
  2. r2要发送信息给3.0网段时,知道要发送给虚拟网段接口5.3,但NHRP表中没有对应虚拟网段接口5.3的真实端口IP,发现缺少(有误就封装中心的对应真实接口,让中心转发)。而此时有ICMP数据需要发送(ICMP数据发送优先级比填补缺少对应高),所以先发送ICMP数据给r1(hub),随后发送NHRP报文,问r1要r3的地址信息。
  3. r1先接收到ICMP报文,查看是给r3的,就进行转发给r3,随后接收到NHRP报文,虽然r1有r3的地址信息,但r1不会直接回复,会转发给r3(征求r3意见)
  4. r3先接收到ICMP报文,正常回复ICMP报文,随后接收到NHRP请求报文,r3直接发送给r2(因为NHRP请求报文中有原IP信息:25.0.0.2),虽然NHRP请求报文中有r2的NHRP映射关系,但r3并不会保存下来,因为在r3看来并不是我主动要的,优先度最低,不可信。只有自己要的才是可信的,但r2接收到r3发送的NHRP应答报文,会直接将r3虚拟网段接口5.3的对应真实接口35.0.0.3写进NHRP映射表中,因为这是r2主动请求的。
  5. 此时,r1将r3发送的ICMP报文转发给r2,r2要再发送ICMP报文就直接发送给r3
  6. 而r3要去回复ICMP报文报文时,发现NHRP表中没有对应虚拟网段接口5.2的真实端口IP,他也要发送NHRP请求报文给r1,然后r1转发给r2,r2再直接发送NHRP应答报文给r3,当r3将虚拟网段接口5.2的对应真实接口25.0.0.2写进NHRP映射表中时,两者的虚拟隧道就算建立起来了。
  7. 当r2与r3两者都不发消息,不发消息超过7200S(2小时)老化时间,这条隧道就会被拆除。

shortcut

在这里插入图片描述

解释:(图中的数字为报文顺序)

  1. r2要发送ICMP报文给r3,先发送给r1(因为是shortcut方式,所以去往3.0网段下一跳写的就是5.1,5.1在NHRP映射表中有,所以在r2看来没有错误),r1接收后将ICMP报文转发给r3,再给r2发送重定向报文(原因和携带内容下面配置后面有写)。
  2. r2接收到重定向报文,像r1发送NHRP请求报文,r1再转发给r3,r3接收到NHRP请求报文,就直接给r2发送NHRP应答报文。
  3. 有区别的是:r3接收到第一次r1转发的ICMP报文,会给r1发送ICMP回复报文,r1接收后,也会转发给r2,但也会给r3发送一个重定向报文(原理与上面一样),r3也会给r1发送一个NHRP请求报文,与上面一样,最后r2与r3都NHRP映射表数据都改了,就建立了一个虚拟隧道
在shortcut方式下,如果需要分支之间独立建立隧道,则需要添加如下配置:[r1-Tunnel0/0/0]nhrp redirect   ---hub节点配置,开启重定向功能(r1发现数据从r2发送进入Tunnel0/0/0,
又从Tunnel0/0/0出去转发给r3,发现是次优路径,才会给r2发送重定向报文,报文里面有3.0网段对应的
真实端口IP为192.168.5.3)
[r2-Tunnel0/0/0]nhrp shortcut    ---在spoke节点配置,使能shortcut功能,未开启该功能,则代表分支站点
无法响应重定向报文。(如果不开启,r2收到r1的重定向报文,会认为自己可以正常收发消息(去3.0网段下
一跳为5.1,5.1又映射为15.0.0.1),没有错误,不需要更改,直接将重定向报文丢弃)
[r3-Tunnel0/0/0]nhrp shortcut

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/772064.shtml

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

相关文章

代码随想录 图论

目录 797.所有可能得路径 200.岛屿数量 695.岛屿的最大面积 1020.飞地的数量 130.被围绕的区域 417.太平洋大西洋水流问题 827.最大人工岛 127.单词接龙 841.钥匙和房间 463.岛屿的周长 797.所有可能得路径 797. 所有可能的路径 中等 给你一个有 n 个节点的…

什么是V R美术馆|V R互动体验店加盟|虚拟现实元宇宙

VR美术馆是利用虚拟现实(VR)技术构建的数字化美术馆,通过虚拟展厅和虚拟展览等形式展示艺术作品、举办艺术展览,为用户提供一种沉浸式的艺术体验。用户可以通过穿戴VR头显等设备,在虚拟环境中自由浏览各种艺术作品&…

20240319-1-过拟合与欠拟合

过拟合欠拟合面试题 1. 如何理解高方差与低偏差? 模型的预测误差可以分解为三个部分: 偏差(bias), 方差(variance) 和噪声(noise). 偏差 偏差度量了模型的期望预测与真实结果的偏离程度, 即刻画了学习算法本身的拟合能力。偏差则表现为在特定分布上…

RocketMq方便测试,提供一个controller的接口,支持拉取消息,查看消息内容

通过一个REST API接口动态地启动RocketMQ的消费者,并基于传入的参数(topicName,filterExpression,consumerGroupId)决定要监听哪些消息。在Spring Boot项目中,这通常不是推荐的做法,因为消息消费…

启动Hbase shell时有许多日志信息的解决办法

一、问题描述 在使用HBase时,当我们启动HBase shell时,会显示大量的日志信息,这些日志信息可能会干扰我们的操作,我们希望在启动HBase shell时不显示这些日志信息。 二、解决方案 方案一:修改配置文件 我们可以通过修改HBase的…

数据采集用,集成了主流工业通讯协议

IoTClient 是一个物联网设备通讯协议实现客户端,集成了主流工业通讯协议,包括主流PLC通信读取、ModBus协议、Bacnet协议等。该组件基于.NET Standard 2.0,适用于.NET的跨平台开发,可在Windows、Linux等系统上运行,甚至…

c++初阶------c++代码模块

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

centos7二进制安装openstack train版本双网口五节点

这里写目录标题 材料准备宿主机安装KVM 网络规划硬件规划本案例局限性密码规划虚拟机准备网络准备centos7模板机准备 数据库安装安装rabbitMQ消息队列安装memcached服务安装Etcd安装keystone身份服务创建数据库用户keystone安装keystone组件创建admin并启动keystone监听验证key…

由浅到深认识Java语言(18):权限修饰符包Object类

该文章Github地址:https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.c…

学习网络编程No.15【高级IO之多路转接】

引言: 北京时间:2024/3/19/11:16,若是说记忆有克星的话,那么一定是时间。若是说耐心有克星的话,那么一定是人的心态。连续几天睡眠问题,加上环境影响,上篇博客还有部分知识只能放在该篇博客介绍…

scFEA安装

scFEA: A graph neural network model to estimate cell-wise metabolic using single cell RNA-seq data github链接GitHub - changwn/scFEA: single cell Flux Estimation Analysis (scFEA) Try the below web server! Package Tutorial seurat对象使用scFEAscFEA/scFEA_t…

第 K 小/大 题目总结(持续更新...)

2386.找出数组的第 K 大和 此题为找数组任意子序列第k小和模板 1508. 子数组和排序后的区间和 此题为找数组连续子序列第k小和模板

git cherry pick merge部分提交

cherry pick merge 指定某次提交 1. git history 选择要从哪个分支merge 2. 找到提交记录,选择cherry pick 3.这个时候就可以直接push了

vba单元格

Sub 修改单元格() Dim r1 As Range 定义一个range类型的变量 Set r1 Range(Cells(1, 2), Cells(1, 5)) 1行2列到1行5列 x cells(3,1) 得到指定行列的值 Dim r As Range 定义一个range类型的变量 Set r Range("a1:a4") a1单元格到a4单元格 r.Interior.Color …

tesseract OCR引擎怎样安装?

要安装Tesseract OCR引擎,可以按照以下步骤进行操作: 在计算机上安装Tesseract OCR的依赖项。这些依赖项包括Tesseract库、Leptonica图像处理库和语言数据文件。可以使用包管理器(如apt-get、brew或choco)来安装这些依赖项。 下载…

代码随想录Day20:二叉树Part6

Leetcode 654. 最大二叉树 讲解前: 这道题其实思路并不难,无非就是找到当前数组的最大值作为root节点,然后对数组进行切割之后再对左右两个数组进行递归重复操作 class Solution:def constructMaximumBinaryTree(self, nums: List[int]) -…

C语言获取输出相关函数scanf、gets、fgets等

提示:文章 文章目录 前言一、背景二、 2.1 2.2 总结 前言 前期疑问: 本文目标: 一、背景 二、 2.1 fgets 2024年3月26日19:31:46 今天写了个牛客的题目,坐标移动 坐标移动代码链接 里面我用gets,但是提示warni…

【统计】什么事 R 方

将线性模型拟合到时间序列时,通常使用最小二乘法在模型 y ^ ( t ) a b t \hat{y}(t) a bt y^​(t)abt中找到系数 a a a和 b b b,其中 y ^ ( t ) \hat{y}(t) y^​(t)是时间 t t t的预测值,而的观测值是 y ( t ) y(t) y(t)。 残差平方和又…

LeetCode第二天(628. 三个数的最大乘积)

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 我的答案:(只通过了63个用例,没考虑到两个负数相乘得正的情况) class Solution {public int maximumProduct(int[] nums) …

ResultMap 映射

过在 MyBatis 的映射文件中使用 <result> 标签进行映射后&#xff0c;SQL 查询语句就可以使用 Java 实体类中的属性名来编写。当你在 ResultMap 中使用 <result> 标签将数据库表的字段名和 Java 实体类的属性名进行映射后&#xff0c;MyBatis 在执行 SQL 查询时会自…