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

第三章,GRE和MGRE

VPN---虚拟专用网络

image-20220930150457489

VPN的核心技术----隧道技术---封装

GRE---通用路由封装

配置

image-20240322190730146

GRE的配置:
R1:
[r1]interface Tunnel 0/0/0  ---创建一个虚拟的隧道接口
[r1-Tunnel0/0/0]ip address 192.168.3.1 24   ---给隧道接口分配一个IP地址
[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

R3:
[r3]interface Tunnel 0/0/0
[r3-Tunnel0/0/0]ip address 192.168.3.3 24
[r3-Tunnel0/0/0]tunnel-protocol gre 
[r3-Tunnel0/0/0]source 23.0.0.3
[r3-Tunnel0/0/0]destination 12.0.0.1

一定要记住需要添加通往隧道的路由信息

GRE的报文结构和封装过程

image-20230301104724366

1、R1从连接私网的接口收到报文后,检查报文头部中的目的IP地址字段,在路由表查找出接口,如果发现出接口是隧道接口,则将报文发送给隧道模块来处理。
2、隧道模块收到该报文后,会首先根据乘客协议的类型和当前GRE隧道配置的校验和参数,对报文进行GRE封装--加GRE报文头部。
3、设备给报文添加传输协议报文头部,即IP报文头。该IP报文头部的源地址和目的地址是隧道中配置的源目信息。
4、最后,设备根据新添加的IP报文头部的地址,在路由表中查找相应的出接口,并发送报文。

5、接收方设备从连接公网的接口收到报文后,首先分析IP报文头部,如果发现协议类型字段的数值为47,表明内层为GRE,于是接口将报文交付给GRE模块处理。又GRE模块去掉IP报文头部和GRE头部信息,并根据内层的IP头部信息进行数据转发。

Keepalive检测

  • Keepalive检测功能用于在任意时刻检测隧道是否处于正常状态。

    • 如果对端不可达,可以即使关闭隧道,避免形成路由黑洞。

  • 逻辑

    • 设备在本地创建一个计数器,并周期性发送keepalive报文,如果没有得到回复,则每发送一次报文,计数器加一。当计数器超过10,则认为对端不可达。周期性时间为10S。

[r1-Tunnel0/0/0]keepalive   ---开启接口的keepalive检测

只需要开一段就可以了

 

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

image-20240322200958778

在MGRE的网络类型结构中,是存在多个节点,但是MGRE本身在发送数据时,还是以点到点的形式发送,并不存在广播或者组播行为,所以,这种网络架构,可以被近似的看做是NBMA网络

现实中的公网IP地址可能是不固定的,所以出现了NHRP协议

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

在私网环境中,选择一个出口物理IP地址不会改变的设备作为NHRP的中心(NHS--下一跳服务器)。剩下的分支节点就可以确定的知晓中心节点的隧道地址和物理地址。
    然后,NHRP要求所有的分支节点都需要将自己的物理接口IP和隧道IP发送给NHS,并由NHS记录下来,这样,中心节点会保存有所有分支节点的地址映射关系。在发送数据时,查询该记录关系即可。
    
    中心-分支:Hub and Spoke架构

配置

MGRE的shortcut配置(所有路由的下一跳均为hub节点)

中心节点:
[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  ---修改接口的封装协议为P2MP
[r1-Tunnel0/0/0]source 15.0.0.1 --规定公网的源IP地址

spoke节点:
interface Tunnel0/0/0
 ip address 192.168.5.2 255.255.255.0 
 tunnel-protocol gre p2mp
 source GigabitEthernet0/0/0  ---分支节点的IP地址不固定
 nhrp entry 192.168.5.1 15.0.0.1 register   
 1、在本地记录中心节点的隧道地址和物理地址的对应关系;

2、该命令代表需要向中心节点(15.0.0.1)发送NHRP注册报文(注册报文中包含本地的隧道IP地址和物理IP地址);

3、第一个IP是隧道IP,第二个IP为公网IP

        

        

[r2]display nhrp peer all   查看NHRP表项

非shorcut多的命令


[r1-Tunnel0/0/0]nhrp redirect  ---在hub节点开启重定向功能。开启后,hub会主动为其他设备发送重定向报文
[r2-Tunnel0/0/0]nhrp shortcut   ---使能shortcut功能,如果不开启,则分支节点会丢弃重定向报文,每个分支节点都需要配置

非shortcut方式的数据流通过程

1、R2访问R3---192.168.2.1  192.168.3.1--->ICMP
2、R2发送两个报文给hub节点,分别为ICMP和NHRP请求报文(R2请求R3)
3、R1将R2的两个报文转发给R3设备
4、R3处理ICMP报文-->发送ICMP应答报文给中心节点;并且向中心节点发送NHRP请求(R3请求R2的信息)
5、R3处理NHRP请求报文,在该报文中知晓源IP地址为25.0.0.2,故直接向该节点回复报文,告知其映射关系
6、R1转发R3的两个报文信息给R2设备
7、R2处理ICMP报文-->直接回复给R3
8、R2处理NHRP请求-->直接回复给R3

作业

录讲作业:讲解在MGRE环境中,spoke节点之间获取对方的映射关系的过程。讲解shortcut和非shortcut两种方式。

MGRE环境下的RIP网络搭建

image-20240326183557619

非shortcut方式:
[r1]rip 1
[r1-rip-1]version 2
[r1-rip-1]network 192.168.1.0  ----主类宣告方式
[r1-rip-1]network 192.168.5.0  ----宣告:1、激活接口;2、发布路由。

[r1-Tunnel0/0/0]nhrp entry multicast dynamic   ---开启中心节点伪广播(给所有人以单播形式发送一次报文)

[r1-Tunnel0/0/0]undo rip split-horizon  ---关闭该接口的水平分割机制

综合实验

image-20221009154550417

http://www.xdnf.cn/news/168013.html

相关文章:

  • 算法效率的钥匙:从大O看复杂度计算 —— C语言数据结构第一讲
  • 《数据结构初阶》【顺序表 + 单链表 + 双向链表】
  • JAVA:单例模式
  • 【含文档+PPT+源码】Python爬虫人口老龄化大数据分析平台的设计与实现
  • Python爬虫(6)静态页面解析实战:BeautifulSoup与lxml(XPath)高效提取数据指南
  • Kafka批量消费部分处理成功时的手动提交方案
  • C# 类的基本概念(声明类)
  • 技术分享 | Oracle-RAC修改IP信息
  • Redis超详细入门教程(基础篇)
  • redis_Windows中安装redis
  • Spring_MVC 中的 JSON 数据处理与 REST 风格开发
  • qt.qpa.plugin: Could not find the Qt platform plugin “cocoa“ in “ “
  • 蓝桥杯 2. 确定字符串是否是另一个的排列
  • 详解最新链路追踪skywalking框架介绍、架构、环境本地部署配置、整合微服务springcloudalibaba 、日志收集、自定义链路追踪、告警等
  • 第十六届蓝桥杯大赛软件赛省赛 C/C++ 大学B组 [京津冀]
  • 基于强化学习的智能交通控制系统设计
  • Eigen矩阵操作类 (Map, Block, 视图类)
  • 【JavaScript】逻辑运算符--非布尔值的与或运算、赋值运算符
  • 4月26日随笔
  • springboot应用使用shell脚本打包成部署压缩包(支持xjar)
  • AI心理健康服务平台项目面试实战
  • 使用Xshell中自带的传输新建文件功能实现上传下载文件
  • 树相关处理
  • UniApp 的现状与 WASM 支持的迫切性
  • w308汽车销售系统的设计与实现
  • 腾讯CSIG一面
  • 05--Altium Designer(AD)的详细安装
  • SM30 权限检查
  • 高中数学联赛模拟试题精选第18套几何题
  • GPU加速-系统CUDA12.5-Windows10