GRE的问题 --- 因为GRE搭建的是一个点到点的隧道,所以,导致其扩展性较差(当存在多个私网需要相互连接时,需要彼此之间都搭建GRE隧道才行)

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

NHRP协议 --- 下一跳解析协议 ---- 自动学习隧道地址和物理地址的对应关系的一种方法。

原理:需要在私网中选出一个物理接口不会发生变化的作为NHRP的中心(NHS --- 下一跳服务器)。剩下的分支都需要知道中心的隧道IP 和物理接口IP,他们需要将自己的物理接口IP和隧道IP发送给中心

(如果分支的物理接口的IP地址发生变化,则需要立即将对应关系重新发送)。这样,NHS将会收集所有分支的地址映射关系。之后需要通讯时,查看对应关系,封装对应的接口IP地址即可。分支之间需要

进行通讯,则先将数据发给中心,由中心进行转发。

----- 这种中心站点到分支站点的架构 --- HUB-SPOKE架构

因为MAGRE搭建的逻辑拓扑是一个多节点的网络,但是,发送信息时依然是点到点的发送,无法使用广播或者组播行为,所以,这样的网络我们可以称为NBMA网络。(他属于逻辑上搭建出的NBMA网络,真正意义上物理设备搭建出的NBMA网络是帧中继。)

MGRE的配置过程

给中心站点进行配置(边界路由器出接口的公网IP地址不会发生变化的作为NHS,即中心站点)

[r1]int t 0/0/0  --- 创建隧道接口

[r1-Tunnel0/0/0]ip address 192.168.5.1 24  --- 配置隧道IP地址

[r1-Tunnel0/0/0]tunnel-protocol gre p2mp --- 选择封装类型 ---- 选择MGRE

[r1-Tunnel0/0/0]source 15.0.0.1  --- 定义源IP地址

[r1-Tunnel0/0/0]nhrp network-id 100 --- 创建NHRP域

给分支站点进行配置

[r2]int t 0/0/0

[r2-Tunnel0/0/0]ip address 192.168.5.2 24

[r2-Tunnel0/0/0]tunnel-protocol gre p2mp

[r2-Tunnel0/0/0]source GigabitEthernet 0/0/1 --- 以接口作为封装源,以应对IP地址的变化

[r2-Tunnel0/0/0]nhrp network-id 100 --- 加入NHRP域,必须是和

中心站点创建相同的域

[r2-Tunnel0/0/0]nhrp entry 192.168.5.1 15.0.0.1 register ---

找中心站点进行注册

隧道地址   物理接口

地址

<r1>display nhrp peer all --- 可以查看NHRP信息收集情况

通过RIP获取路由信息

1,中心站点可以收到分支的数据包,但是,分支不能收到中心站点的数据报 --- MGRE环境下不支持广播或者组播行为 ---- 在中心站点开启伪广播 --- 分别给所有节点发送单播以达到广播的效果

[r1-Tunnel0/0/0]nhrp entry multicast dynamic   --- 开启中心

站点伪广播

2,开启伪广播后,分支站点只能收到中心站点的路由信息,却不能收到其他分支站点的路由信息。

--- RIP水平分割导致

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

功能

OSPF --- 开放式最短路径优先协议

选路佳,收敛快,占用资源少

RIP存在3个版本 --- RIPV1,RIPV2  --- IPV4

RIPNG    ---- IPV6

OSPF也存在三个版本 --- OSPFV1(实验室阶段夭折),OSPFV2 --- IPV4

OSPFV3  ---- IPV6

RIPV2和OSPFV2的异同点:相同点:

1,RIPV2和OSPFV2一样,都是无类别的路由协议(传递路由信息的时候携带子网掩码),都支持VLSM和CIDR。

2,OSPFV2和RIPV2(224.0.0.9)都是以组播的形式传递信息。 ---- 224.0.0.5/224.0.0.6

3,OSPFV2和RIPV2都支持等开销负载均衡。不同点:

OSPF和RIP不同,RIP要求仅适用于中小型的网络环境中,OSPF可以应用于中大型的网络环境中。

OSPF为了适应中大型网络环境,需要进行结构化部署。--- 区域划分当网络规模不大时,我们也可以将OSPF网络划分在一个区域内,这样的OSPF网络 --- 称为单区域OSPF网络

如果,一个OSPF网络当中包含多个OSPF区域 --- 称为多区域OSPF网络

区域划分的主要目的 --- 区域内部传递拓扑信息,区域之间传递路由信息

区域边界路由器 --- ABR --- 同时处于多个区域,并且一个接口对应一个区域,至少有一个接口属于骨干区域。

区域之间可以存在多个ABR,一个ABR也可以对应多个区域

区域划分的要求:1,区域之间必须存在ABR

2,区域划分必须按照星型拓扑结构划分 ---- 所有区域需要连接在中心区域上,这个中心我们称之为骨干区域。

为了方便对各个区域进行区分和管理,我们给每个区域设计一个编号 --- 区域ID(area ID) ---- 由32位二进制构成 --- 可以通过点分十进制的形式来表示,也可以直接使用十进制来进行表示。 ---- 规定,骨干区域的区域ID必须是0。

1,OSPF的数据包

OSPF一共存在5种数据包

hello包 --- 用来周期发现,建立和保活邻居关系 hello的周期发送时间 ---- 10S(30S)死亡时间 --- dead time ---- 4倍的hello时间 ----

40S(120S)

因为OSPF传递的是拓扑信息,需要将所有路由器的位置关系表示清楚,所以,需要有一个参数对所有的路由器进行区分和标定。

我们引入RID来完成这个工作。

RID需要满足的条件:1,唯一性(全OSPF网络内部唯一即可);

2,格式统一 --- 由32位二进制构成,采用IP地址的格式

RID的获取方法(两种)

1,手工配置:仅需满足以上两点要求即可。

2,自动获取:如果是自动获取,设备将会在自己环回接口的IP地址中选择最大的作为自己的RID。如果没有环回接口,则将在自己的物理接口上选择IP地址最大的作为RID。 hello包中会携带这个RID。

DBD包  ---- 数据库描述报文 --- 携带的是数据库(LSDB --- 存放

LSA信息的数据库)的目录信息

LSR包 ---- 链路状态请求报文 --- 基于DBD包请求未知的LSA信息

LSU包 --- 链路状态更新报文 --- 真正携带LSA信息的数据包

LSAck包 ---- 链路状态确认报文 --- 确认包

OSPF存在没30MIN一次的周期更新。

2,OSPF的状态机

Two-way --- 标志着邻居关系的建立。

(条件匹配)

EXSTART状态 ---- 主从关系选举 ---- 使用的未携带数据的DBD包(主要是为了和之前的邻居关系进行区分),通过比较RID大小进行主从关系选举,RID大的为主,可以优先进入下一个阶段。

FULL状态 --- 标志着邻接关系的建立。 ---- 邻接关系主要是为了和之前邻居关系进行区分。邻居关系,仅能使用hello包进行周期保活,只有邻接关系,可以去交换LSA信息。

down状态 --- 启动OSPF之后,发出hello包进入下一个状态

init(初始化)状态 --- 收到Hello包中包含本地的RID时进入下一个状态

Two-way(双向通讯)状态 --- 标志着邻居关系的建立

(条件匹配) 条件匹配成功,则进入下一个状态;否则,只能停留在邻居关系,靠Hello包进行周期保活。

Exstart(预启动)状态 --- 使用未携带数据的DBD包进行主从关系选举,比较RID,RID大的为主,可以优先进入下一个状态

Exchange(准交换)状态 --- 使用携带数据的DBD包进行数据库目录摘要的共享。

Loading(加载)状态 --- 查看对端的DBD包中的信息和本地的LSDB数据库目录信息进行对比,基于未知的LSA信息发送LSR包,对端回复LSU包,需要LSACK进行确认。

FULL状态 --- 标志着邻接关系的建立

3,OSPF工作过程     启动配置完成后,OSPF向本地所有运行OSPF协议的接口以组播 224.0.0.5发送hello包。Hello包中携带本地的RID以及本地已知邻居的

RID。之后,将收集到的邻居关系记录在一张表中 --- 邻居表。

邻居表建立之后,将进行条件匹配;失败则将停留在邻居关系,仅使用hello包进行周期保活。

匹配成功,则开始建立邻接关系。首先使用未携带数据的DBD包进行主从关系选举。之后,使用携带数据的DBD包进行数据库目录的共享。之后,本地使用LSR/LSU/LSACK数据包来获取未知的LSA信息;完成本地数据库的建立。 --- LSDB(链路状态数据库) --- 生成数据库表。

最后,基于本地的链路状态数据库,生成有向图,之后,通过SPF算法将有向图转换成最短路径树。之后,计算本地到达未知网段的路由信息,将路由信息添加到路由表中。

收敛完成后,hello包依然需要进行10S(30S)一次的周期保活,没

30MIN进行一次周期更新。

网络结构突变

1,增加一个网段:触发更新,直接通过LSU包将变更信息发送,需要

ACK确认。

2,断开一个网段:触发更新,直接通过LSU包将变更信息发送,需要

ACK确认。

3,无法沟通:死亡时间 --- 40S(120S)

4,OSPF的基本配置

1,启动OSPF进程

[r1]ospf 1 router-id 1.1.1.1  --- 1 进程号,仅具有本地意义;手工配置RID在启动进程时完成

[r1-ospf-1]

2,创建区域

[r1-ospf-1]area 0

[r1-ospf-1-area-0.0.0.0]

3,宣告宣告的目的:1,激活接口 --- 只有激活的接口才能收发OSPF的数据

2,发布路由 --- 只有激活接口对应网段信息才能发布出去

[r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 --- 反掩码 --- 由连续的0和连续的1组成(0对应的位不可变,1对应位可变)

[r1]display ospf peer --- 查看OSPF的邻居表

[r1]display ospf peer brief ---- 查看邻居关系的简表

[r1]display ospf lsdb   --- 查看数据库表

[r1]display ospf lsdb router 2.2.2.2 --- 展开一跳LSA信息

华为设备给OSPF定义的默认优先级为10。

OSPF是以带宽作为开销值的 ---- COST = 参考带宽 / 真实带宽 --华为设备OSPF默认的参考带宽是100Mbps

OSPF开销值为小数时的处理逻辑,当该数值为大于1的小数,则将直接舍弃小数部分取整即可;如果是小于1的小数,则将直接设置为1。

[r1-ospf-1]bandwidth-reference 1000   --- 修改参考带宽值注意,参考带宽修改,则所有设备上都需要改成相同的。

Hello 数据包

Network Mask:表示发送Hello数据包(参与OSPF进程)的路由器接口的网络掩码。仅只有广播介质(MA网络环境中)才会检查此字段值。
Hello Interval:表示每隔多长时间发送一次Hello数据包,单位为秒。对于两台尝试建立OSPF邻接关系的路由器来说,Hello 和 Dead 时间必须一致。其中Broadcast和P2P,此字段值为10s;其他网络环境中,此字段值为30s。
Options:表示(发送Hello数据包的)路由器所支持的能力。
DN位,为MPLS/VPN所用。
O位用于不透明LSA(opaque LSA)详见RFC2370。
DC位表示路由器支持按需电路特性。参考网上博文 OSPF DC按需链路技术 剖析
EA位表示路由器支持(接收及转发)外部属性LSA。
N/P位表示路由器支持非完全端区域(not-so-stubby area,NSSA)。
MC位表示路由器具备组播OSPF能力。
E位,E位置位时,表示路由器具备接收外部LSA的能力。
T位 表示路由器支持ToS(通常为0)。
Router Prionrity :默认情况下,此字段值被设置为1。在选举DR/BDR时起着重要作用;OSPF路由器发送Hello数据包中路由器优先级字段值越高,越有可能成为DR。此字段值为0,则不参与DR选举。
Dead Intervar:默认情况下,此字段值是Hello Interval字段值的4倍。表示一段以秒为单位的时间。
Designated Router:表示DR路由器的IP地址。若DR不存在或尚未发现,此字段值为0.0.0.0。DR通过Hello协议选举而出。具有最高优先级的路由器(所发Hello数据包中路由器优先级字段值最高的路由器)将成为发包接口所处网络内的DR。在路由器优先级字段值相等的情况下,Router-ID值最高的路由器(所发Hello数据包中指定路由器字段值最高的路由器)将成为(发包接口所处网络内的)DR。 可以说OSPF是接口敏感型的协议。
Backup Designated Router:标识BDR,指明BDR的接口IP地址。若无BDR,此字段值为0.0.0.0。BDR通过Hello协议选举而出。
Neighbor:包含通过Hello数据包获知的邻居路由器的Router-ID。

DBD数据包

Interface MTU :此字段值指明发包接口(发送DBD数据包的路由器接口)所能发出的数据包的最大长度,单位为字节。由OSPF虚链路发出的DBD数据包的接口MTU字段值必须设置为0。
Options:与Hello数据包所含字段相同。
I位:此位置1时,则表示邻居双方发出的首个DBD数据包。
M位:此位置1时,则表示DBD数据包尚未发送完毕。
MS位:主/从位。此位置1时,表示在DBD交换过程中,发包路由器为“主”路由器,此位置0时,则为“从”路由器。
DBD Sequence Number:此字段包含由“主”路由器设置的唯一值(序列号),在数据库交换过程中使用。只有“主”路由器才能增加此字段的值(序列号的值)。
LSA Headers:此字段包含若干链路状态数据库包头。

LSR数据包

  • LS Type:标识所请求的LSA类型。

  • LS-ID:表示特定LSA的链路状态ID。

  • Advertising Router:包含生成LSA的路由器的Router-ID。

LSU数据包

OSPF路由器会发此类数据包来实施LSA的泛洪。单个LSU数据包内会包含多条LSA。OSPF路由器也会发送LSU数据包,来回应(邻居路由器发出的)LSU数据包。以泛洪方式发出的LSA由LSA确认数据包进行确认。只要有一条未经确认的LSA,(OSPF路由器就会)每隔重传间隔时间重传一次。

LSack 数据包

用来对每条LSA进行确认。OSPF路由器也会发送LSack数据包,来应答LSU数据包。可用单个LSack数据包一次性确认收到的多条LSA。LSack数据包负责LSU数据包的可靠传输。
链路状态确认数据包以组播的方式发送。若(发送LSack数据包的)路由器为DR/BDR,则IP包头的组播目的IP地址为224.0.0.5(所有SPF路由器地址)。否则,LSack数据包IP包头的组播目的IP地址为226.0.0.6(DR/BDR地址)。

GRE、MGRE的相关知识(OSPF知识点)相关推荐

  1. RIP协议相关知识总结

    以下均为本人查阅各方面的文献资料结合自身理解所转述,现以笔记的形式作个总结. 小生初学计算机网络,以下表述难免会有错误或不足之处,欢迎大家批评指正. 文章目录 问题引入 知识点 自治系统 RIP 距离 ...

  2. 云网络相关知识学习列表

    网络相关知识学习列表 介绍 学习计算机网络相关知识的的技术文档 基础知识 1. 包括TCP/IP知识点 2. UDP协议 3. leaf-spine架构 4. IPv6 5. 大二层网络 6. VLA ...

  3. 中级统计师基础知识中计算机,【2014年中级统计师《统计基础理论及相关知识》预习:计算机操作系统】- 环球网校...

    [摘要]2014年中级统计师<统计基础理论及相关知识>预习:计算机操作系统 2014年统计师考试备考已经开始,为了帮助参加2014年中级统计师考试考生提高备考效果,环球网校为大家整理了中级 ...

  4. 路由相关知识,静态路由、默认路由、浮动路由的概念以及基本设置

    路由相关知识,静态路由.默认路由.浮动路由的概念以及基本设置 选取最佳路由时的标准 路由表 路由表的形成 静态路由概念 静态路由的优点和缺点 默认路由 浮动路由 路由协议分类 静态路由.默认路由.浮动 ...

  5. 单片机小白学步系列(十) 单片机程序下载相关知识

    注:本篇在写<单片机入门指南系列>之前就已经写过,现在发现这篇比较合理的位置,应该是放在<单片机入门指南系列(六) 单片机最小系统--麻雀虽小,五脏俱全>之后的,但是由于之前考 ...

  6. 后端技术:消息队列MQ/JMS/Kafka相关知识介绍

    ?今天给大家分享消息队列MQ/JMS/Kafka相关知识介绍 1.消息队列介绍 首先举个收快递的栗子,传统的收快递,快递小哥把我们的快递送到我们的手里.他需要什么条件嗯? 快递小哥有时间送, 我们有时 ...

  7. 【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸

    类的继承案例解析,python相关知识延伸 作者:白宁超 2016年10月10日22:36:57 摘要:继<快速上手学python>一文之后,笔者又将python官方文档认真学习下.官方给 ...

  8. Hbase简介及常用命令相关知识总结

    文章目录 目录 前言: 1.Hbase简介 1.1.什么是Hbase 1.2.与传统数据库的对比 1.3.Hbase集群中的角色 2.Hbase数据模型 3.Hbase命令 总结: 目录 前言: 对于 ...

  9. python实现单例模式的三种方式及相关知识解释

    python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...

最新文章

  1. Unable to find the ncurses libraries or the required header files解决
  2. 全球及中国无服务器应用程序行业应用调研与投资前景规划报告2022版
  3. js 正则学习小记之左最长规则
  4. oracle dbv使用详解
  5. 升级到Windows 8.1
  6. SpringSecurity认证流程回顾
  7. asinh函数_JavaScript中带有示例的Math.asinh()方法
  8. 很特别的一个动态规划入门教程
  9. H5实现俄罗斯方块(一)
  10. 解决:SpringBoot 搭建聚合项目 报 “程序包XXX不存在”
  11. C Primer Plus 第5章 运算符、表达式和语句 5.2基本运算符
  12. 人生每一件事都是为自己而做
  13. Sublime Text新增GBK编码支持
  14. TAOCP中1.1习题1解答与思考
  15. SAE 搭建微信公众平台
  16. 最全APP测试思想及流程要点,高薪测试人员一定要看
  17. Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)
  18. UI设计师是吃青春饭的? 我来让你彻底了解了解UI!
  19. showModalDialog取得父窗口的语法
  20. Android 虚拟机与类加载机制

热门文章

  1. 页面中插入word文档
  2. 什么是翻拍识别_图像识别api
  3. 干货,教你怎样开一场真正的战略会
  4. 以数组作为函数参数的函数调用
  5. Windows下OpenKE安装教程
  6. 写一篇计算机专业的专升本周记不少于150字
  7. LottieJS动画的安装与使用
  8. spark的kafka的低阶API createDirectStream的一些总结。
  9. US Internet宣布推出号称全球第一个10Gbps光纤上网服务
  10. app 显示一张靓女图片