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

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]int 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.lryc.cn/news/325908.html

相关文章:

  • MySQL写shell的问题
  • 每天学习一会java(第一天)----条件运算符
  • hyperf 二十八 修改器 一
  • ubuntu20.04安裝輸入法
  • 2024年【熔化焊接与热切割】考试报名及熔化焊接与热切割找解析
  • 聚类分析|基于层次的聚类方法及其Python实现
  • 前端实现导出xlsx功能
  • 算法系列--动态规划--⼦数组、⼦串系列(数组中连续的⼀段)(1)
  • RESTful架构
  • 从IO操作与多线程的思考到Redis-6.0
  • MNN介绍、安装和编译
  • 【计算机图形学】AO-Grasp: Articulated Object Grasp Generation
  • 「媒体宣传」财经类媒体邀约资源有哪些?-51媒体
  • 学习资料记录
  • 数据结构进阶篇 之 【二叉树】详细概念讲解(带你认识何为二叉树及其性质)
  • vue.js制作学习计划表案例
  • nginx localtion 匹配规则
  • Git:分布式版本控制系统
  • [STL]priority_queue类及反向迭代器的模拟实现
  • vue2 脚手架
  • 【OpenStack】OpenStack实战之开篇
  • Python实现WebSocket通信
  • MATLAB 自定义生成直线点云(详细介绍) (47)
  • UniTask 异步任务
  • 【git分支管理策略】如何高效的管理好代码版本
  • css的transition详解
  • agent利用知识来做规划:《KnowAgent: Knowledge-Augmented Planning for LLM-Based Agents》笔记
  • 01 React新建开发环境
  • nginx--解决响应头带Set-Cookie导致的验证失败
  • InstructGPT的流程介绍