首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >华为、华三、思科高级网络工程师必经之路(7)我们的爱如同TCP连接,始终可靠,永不掉线——基于华为ENSP的MGRE通用路由封装、NHRP协议保姆级别详解

华为、华三、思科高级网络工程师必经之路(7)我们的爱如同TCP连接,始终可靠,永不掉线——基于华为ENSP的MGRE通用路由封装、NHRP协议保姆级别详解

作者头像
盛透侧视攻城狮
发布于 2024-12-29 01:20:40
发布于 2024-12-29 01:20:40
37800
代码可运行
举报
运行总次数:0
代码可运行

1.MGRE---多点通用路由封装

1.1什么是MGRE协议

  • MGRE(Multipoint GRE)是GRE协议的扩展,允许在一个隧道中建立多个连接点。与传统的GRE隧道只支持两点到点连接不同,MGRE支持多点连接,适用于复杂的网络拓扑结构。
  • MGRE可以通过一个单一的隧道接口支持多个目的地,从而简化了路由配置,减少了所需的隧道数量。

注意:

  • MGRE环境是属于P2MP(点对多点)网络,可以近似的看做是NBMA网络。但是其本质还是点到点。

1.2MGRE 的工作原理简介

  • 隧道接口:MGRE使用一个逻辑接口来处理多个源和目的地。它不像传统的GRE隧道需要为每一条隧道配置单独的接口。
  • 多点目标:MGRE隧道中的数据包可以通过目标地址字段进行路由,将流量发送到多个远程端点。这与传统的GRE隧道不同,传统GRE隧道通常只支持两个点之间的连接。
  • 封装过程:在MGRE隧道中,数据包依然是通过GRE协议进行封装,但多个目的地通过目标IP进行标识,路由器根据封装头部的目标地址来决定数据包的转发路径。

2.NHRP---下一跳解析协议

2.1什么是NHRP---下一跳解析协议

  • NHRP 是一种用于动态解析网络中某个数据包的“下一个跳”的协议。简单来说,NHRP 允许源设备在复杂的网络环境中动态地获取目标设备的下一跳地址(即路由信息),而不是依赖于静态路由或传统的路由表条目。
  • NHRP 在 DMVPN(Dynamic Multipoint VPN)中起着至关重要的作用,它通过为动态隧道提供一种更灵活的路由机制,实现了多点对多点连接。

2.2NHRP 在 Hub and Spoke 架构中的角色

  • NHRP 的主要作用是帮助 Spokes 直接与其他 Spokes 通信,而不必通过中心节点(Hub)。在传统的 Hub and Spoke 架构中,所有远程站点的流量会经过中心 Hub 路由器转发。然而,使用 NHRP 后,Spokes 可以动态地发现和缓存目标 Spoke 的 IP 地址和下一跳信息,从而使流量直接在 Spokes 之间转发,而不是始终通过 Hub。

2.3NHRP 的工作原理

  • 在私网环境中,选择一个出口物理IP不变的设备作为NHRP的中心节点(NHS)。这样,剩下的分支就可以知晓中心的隧道IP和物理IP地址。然后NHRP协议要求所有分支将自己的物理IP和隧道IP的对应关系发送给NHS(一旦发生改变就会发送)。
  • 对此NHS就拥有所有分支的地址映射关系,并记录在本地。
  • 在发送数据报文之前,查询NHS决定封装数据。

2.4NHRP 的工作流程:

  • NHRP 请求:当一个 Spoke(例如 Spoke A)需要与另一个 Spoke(例如 Spoke B)通信时,Spoke A 会向中心 Hub 发送 NHRP 请求,询问如何访问 Spoke B。
  • NHRP 响应:中心 Hub 会返回 Spoke B 的下一跳信息,包括 Spoke B 的 IP 地址。Spoke A 通过这条信息确定与 Spoke B 直接通信的路径。
  • 映射表更新:Spoke A 将从 Hub 接收到的目标地址和下一跳信息(即 Spoke B 的地址)缓存到自己的 NHRP 映射表中。
  • 直接通信:一旦映射表更新,Spoke A 和 Spoke B 可以直接通过 GRE 隧道进行通信,绕过 Hub。

3.NHRP 在 Hub and Spoke(MGRE环境) 架构中的配置

image-20240323161032336
image-20240323161032336

3.1中心(hub)配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface Tunnel0/0/0
 ip address 192.168.5.1 255.255.255.0 
 tunnel-protocol gre p2mp  ---修改接口的封装协议为MGRE
 source 15.0.0.1

3.2分支(spoke)配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface Tunnel0/0/0
 ip address 192.168.5.2 255.255.255.0 
 tunnel-protocol gre p2mp
 source GigabitEthernet0/0/0   ---规定封装源为GE0/0/0接口的IP地址
 nhrp entry 192.168.5.1 15.0.0.1 register   ----第一个IP为隧道地址,第二个为物理地址

1、告知本端,hub节点的隧道IP与物理IP的对应关系; 2、向hub节点注册本地的隧道IP与物理IP的对应关系;

3.3补全静态路由信息

注意:

  • 下一跳均为Hub节点
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[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  
[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
image-20240323161032336
image-20240323161032336

3.4shortcut方式和非shortcut方式

  • shortcut方式:分支路由汇聚到总部,每一个分支编写的路由信息的下一跳均为hub节点。
  • 非shortcut方式:非便捷方式,分支之间相互学习路由。下一跳分别是分支的隧道IP地址。而非hub节点。
在shortcut方式下,如果需要分支之间独立建立隧道,则需要添加如下配置:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r1-Tunnel0/0/0]nhrp redirect   ---hub节点配置,开启重定向功能
[r2-Tunnel0/0/0]nhrp shortcut    ---在spoke节点配置,使能shortcut功能,未开启该功能,则代表分支站点无法响应重定向报文。
DSVPN 补充:
  • DSVPN(Dynamic Secure Virtual Private Network)是一种基于动态技术的安全虚拟专用网络,旨在提供灵活、高效且安全的连接方案,尤其在支持多点到多点的网络架构中非常有用。
  • DSVPN 在某些场景下也可以被称为 DMVPN(Dynamic Multipoint Virtual Private Network),但 DSVPN 更侧重于在传统 VPN 架构中引入动态性和多点通信功能。
DSVPN 的工作原理:
  1. 隧道建立: DSVPN 利用 GRE 隧道(Generic Routing Encapsulation)作为基础协议,并结合 NHRP(Next Hop Resolution Protocol) 来动态发现并解析目标站点的 IP 地址。在该架构中,中心节点(Hub)扮演着关键角色,负责处理网络地址映射和动态路由。
  2. 中心节点与远程节点: 在 DSVPN 中,通常有一个中心节点(Hub),远程站点(Spokes)与中心节点建立隧道连接。Spokes 之间的流量首先经过中心节点,随后中心节点通过动态路由协议提供站点间的通信信息。
  3. 动态更新与自动发现: DSVPN 通过 NHRP 协议动态解决目标站点的下一跳地址,避免了传统VPN中必须手动配置每对站点间隧道的问题。一旦拓扑发生变化,NHRP 可以快速自动更新路由映射。

4.MGRE环境下的RIP网络

image-20240325183521113
image-20240325183521113

4.1RIP协议简单补充[后期详解]

  • 一种基于距离矢量算法的路由协议,用于在计算机网络中交换路由信息。RIP 主要用于小型或中型网络的路由选择和路径更新。

4.2RIP 协议的基本特点:

  1. 距离矢量算法: RIP 使用距离矢量算法来计算从一个路由器到目标网络的最佳路径。每个路由器维护一张路由表,表中记录了到达不同网络的“跳数”(hop count,简称跳数)。跳数越少,路由越优选。
  2. 跳数限制: 在 RIP 协议中,路由的跳数是衡量路径优劣的唯一标准。每经过一个路由器就算一次跳数。RIP 协议最多支持 15 跳(hop)。如果到达目标的跳数超过 15 跳,表示该目标不可达(即 "无限跳")。
  3. 定期更新: RIP 路由器每 30 秒就会发送一次路由更新广播,向其他路由器通告其路由表。路由器收到更新信息后,会根据新收到的路由信息更新自己的路由表。
  4. 路由表: 路由表中每个条目包含目标网络地址、下一跳路由器的地址以及到达该网络的跳数。
  5. 路由选择: RIP 选择跳数最少的路径作为最佳路径。如果有多条路径到同一目标网络,RIP 会根据跳数最少的路径进行选择,若跳数相同,则可能选择其他标准(如最先到达的路径)。

4.3华为ENSP关键配置

image-20240325183521113
image-20240325183521113
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r1]rip 1
[r1-rip-1]version 2
  • 宣告:1、激活接口;2、发布路由。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r1-rip-1]network 192.168.1.0  ---主类宣告
[r1-rip-1]network 192.168.5.0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r1-Tunnel0/0/0]nhrp entry multicast dynamic
  • 在中心开启伪广播功能(以单播报文的形式给每一个邻居发送一次数据)
  • 在MGRE环境中,数据均以单播的形式存在,而中心节点需要一次性给多个节点发送数据,需要使用组播或广播行为,故此时中心节点不会发送任何数据。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r1-rip-1]undo summary  

---关闭自动聚合
[r1-Tunnel0/0/0]undo rip split-horizon   

---关闭水平分割机制;当该机制开启时,R1从改接口学习到的分支节点的路由信息无法再从该接口通告给其他的分支节点。
  • 进行路由汇总;
  • 关闭水平分割可能会导致环路的产生,故选择第二种方式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[r1-Tunnel0/0/0]rip summary-address 192.168.0.0 255.255.0.0 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验