ISIS OSPF-链路状态路由协议:
开放式的最短路径优先协议 每台运行了OSPF协议的设备均会共享自身的接口连接情况(LSA---拓 扑信息),所以设备互相共享这些信息之后就可以获取到整个OSPF网 络的拓扑信息,随之依靠SPF算法计算得出路由。 Eigrp RIP--距离矢量路由协议--共享路由表
动态协议
--由运行同一种动态路由协议的路由器通过沟通协商最终计 算得出的路由信息
1.占用资源少---
2.收敛速度快--- 收敛---首次收敛 拓扑结构发生变化重新收敛
3.选路优--- 通过范围划分 外部网关协议---EGP BGP 内部网关协议---IGP---OSPF RIP ISIS EIGRP
根据协议本身的特点 有类别的动态路由协议:
在传递路由信息时不携带子网掩码
RIPv1 无类别的动态路由协议:
在传递路由信息时携带子网掩码
RIPv1--采用广播的方式传递数据包 剩下所有的协议均使用组播发送自身的数据包(IGP)
RIP---224.0.0.9
Ospf--224.0.0.5 224.0.0.6
RIP实际上只能适用在中小型网络环境---16跳的限制 而OSPF能够适应中大型的网络环境
OSPF为了适应中大型的网络环境采用了结构化部署的思想 (区域划分)
区域ID--32位二进制组成,用点分十进制表示 标准的区域划分要求:
区域之间必须存在ABR设备
ABR设备—同时属于两个区域的设备---一台ABR设备可以同时属于多 个区域
区域划分必须按照星形拓扑结构部署
一般把OSPF的中间区域称为骨干区域,=并且要求骨干区域的区域ID 必须是0.0.0.0(area 0)
OSPF网络如果进行了区域划分,这样的网络称为多区域OSPF网络,如 果没有进行区域划分称单区域OSPF网络
五个数据包
OSPF的hello包作用:
周期性的发现建立和保活邻居关系
周期保活---运行了OSPF协议的路由器会以10S为周期发送HEELO报 文,hello报文中会携带本设备的RID,对端收到后就可以判断本设备 存活,如果40s没有收到HEELO包,就认为该设备故障,会清空从该 设备学到的LSA。
OSPF的计时器
hello时间--默认是10s/30S
Dead-time死亡时间---默认是四倍的hello时间
RID---运行了OSPF的路由器设备为了区分和标识不同的路由器身份设 计的路由器编号--本质是32位二进制,用点分十进制表示 获取R-ID的方式有两种
手工配置--由工程师自行配置,符合要求即可(IP地址格式,不能重 复)
自动生成--设备会选择自身环回接口数值最大的作为自身的RID-如果 设备没有配置环回会选择接口IP地址数值最大的作为RID
DBD包-
数据库描述包:会携带数据库中收集到的LSA信息的摘要值 LSDB--链路状态数据库--存储收集到的LSA信息
LSR-
链路状态请求包
LSU-
链路状态更新包
LSACK-
-链路状态确认包
OSPF的状态机
邻居建立的过程 当收到对端发送的hello报文中携带自身的RID,才可以进入2-way 确保hello报文的可靠传递,保证对端一定收到了我发送的hello报文
2-way--必须收到对端发送的hello报文中携带本地的RID才可以进入 该状态,该状态标志着邻居关系的建立
条件匹配——只有条件匹配成功的路由器才可以进入下面的状态,如 果条件匹配失败则停留在邻居状态,仅使用heelo包进行周期保活。
预启动状态--主从关系的选举--OSPF协议并不希望同时共享LSA信 息,因为这样会在某一时刻很多设备同时共享这样会导致链路带宽被 占用过多,导致数据传输收到影响
选举规则:会比较设备RID的大小,rid大的设备将成为主设备 进行主从关系选举的OSPF数据包是DBD包,并且该DBD包没有携带真正 的LSA摘要信息
准交换状态---使用真正携带摘要信息的DBD包传递LSA摘要信息
1.建立邻居:启动配置之后,ospf将向本地所有的运行了ospf 协议的端口发送hello包(224.0.0.5),hello包中携带自己的 RID用来区分不同路由器的身份(不携带路由信息),同时携带 自己已知的邻居RID,之后会将这些RID存储在自己的邻居表 中。
2.条件匹配:邻居表建立完成之后,会进行条件匹配,如匹配 成功则开始进入下一个状态,如果匹配失败则会停留在邻居关 系。---之后仅hello包进行保活。
3.如果匹配成功,则开始建立邻接关系-之后会使用未携带数据 DBD包(并没有携带LSDB的摘要信息)进行主从关系的选举。主 路由器会优先进入下一个状态,会优先发送摘要进行比对,比 对之后,会请求自己本地没有的lsa信息。对端会发送真正携带 lsa信息的LSU包,会利用LSACK进行确认。本地的链路状态数据 库建立完成,生成本地链路数据库表。---Full 分区 新分区 1 的第 7 页 库建立完成,生成本地链路数据库表。---Full
4.完成收敛----基于本地的链路状态数据库收集的lsa,根据自 己的spf算法计算得出最短路径树。生成路由表。
5.收敛完成后,会使用hello包每10s发送一次,用来保活邻居 关系。ospf会每30min进行一次周期更新。
条件匹配---在一个广播域中需要选择一台路由器(DR)和剩下所有路 由器建立邻接关系,同时需要选择一台备份设备,充当DR的备份,当 DR设备出现故障需要行使DR的工作。
DR和BDR的选举规则:先看接口优先级,之后会根据设备的RID大小选 择RID大的作为DR次大的作为BDR设备
[Huawei-GigabitEthernet0/0/0]ospf dr-priority 10---修改接口DR 选举优先级,数值大的作为DR设备
OSPF的DR和BDR选举是非抢占的,简单来说就是DR和BDR选择 出来之后,新加入设备不会抢占DR和BDR的身份
OSPF的数据报文
OSPF是一种跨层封装的协议,协议号是89没有传输层(减少封 装和解封装的时间,加快收敛)
OSPF的公共头部所有OSPF报文均携带的信息
版本---表明是OSPFV2 还是OSPFV3
类型---标准该数据包是OSPF的哪一种数据包
1-hello包
2--dbd包
3-LSR
4-LSU
5-LSACK
认证类型:0 ---空认证 1-simple :简单认证(明文认证) 2--MD5
报文长度---头部+数据包本身的数据量
网络掩码--接口发出hello时会携带该接口的掩码。 在建立邻居时会比较两端设备的掩码,如果掩码不一致则会导 致建邻失败——注意:只有以太网链路才会检测掩码 hello时间和死亡时间,注意这两个参数如果两端对应不上也会 导致建邻失败。
可选项-是OSPF的一些特性(OSPF的特殊区域的标记会在选项 字段携带,如果字段不统一则会导致建邻失败)
路由器优先级---ospf dr-priority用来条件匹配选择DR设备的参数
指定路由器--DR的身份
备份指定路由器---BDR的身份(RID):注意在一个广播域中
所有设备的DR和BDR的认知必须统一。
只有DR和BDR会监听224.0.0.6的组播地址
作用:
1.用来主从关系选举(没有携带lsa摘要信息的DBD报文)
2.用来减少OSPF重复更新,利用携带LSA摘要信息的DBD进行本地数据库比对
3.主从关系选举之后由主设备会主导后续的DBD报文交互的有 序性(确保DBD报文的可靠传输)---隐性确认
接口最大传输单元:接口MTU值,
[r2-GigabitEthernet0/0/0]ospf mtu-enable
--OSPF协议默认是不进行接口MTU检测的,如果 想要开启该功能需要手工配置。如果两端均开启了接口MTU检 测功能如果接口MTU不一致会导致状态停留在预启动状态。
I:如果I为置为1则代表该DBD包是进行主从关系选举的DBD包
M:MORE,如果M标志位置为1则代表本设备后续还有DBD报 文需要发送,如果置为0则代表该数据包已经是最后一个DBD 报文。
MS:标注该DBD报文是主设备发送的DBD报文
序列号的作用:隐性确认,去确保DBD报文的有序可靠传输
在华为体系下,是由从设备主动发送携带LSA-摘要信息的DBD 包
LSR--链路状态请求报文
必须靠LSA的三元组才能唯一的标识一条LSA 数据包的五元组—— 数据的源IP地址 目标IP地址 源端口号 目标端口号 协议号
OSPF--LSACK的确认,是对每一条请求的LSA进行确认
OSPF---接口网络类型 OSPF接口工作在不同的网络环境下工作方式有所区别
P2P--点到点网络
MA--多点接入网络
BMA--支持广播/组播
NBMA--只能单播
display ospf interface GigabitEthernet 0/0/0 --查看OSPF接口 网络类型的命令
OSPF的开销值计算公式=参考带宽(默认值是100MBPS)/真实 带宽 如果算出来的值小于1则直接按1来算,如果大于1的小数,小数 部分直接舍弃
bandwidth-reference --修改OSPF参考带宽的指令
常见问题
问题1
只有中心获取到了一个分支的hello报文,分支之间没有获取到 任何hello报文
原因:OSPFV2通过组播发送数据包,但是MGRE环境只能支持单 播,所以必须在中心开启伪广播 [r1-Tunnel0/0/0]nhrp entry multicast dynamic
问题2
中心开启伪广播之后,中心和一个分支建立了邻接关 系,但是分支之间没有信息,其次有一个分支只和中心保持init 状态。
建议直接更改隧道接口的接口网络类型为P2MP,直接方中心和 分支不进行DR和BDR的选举,就不会造成认知不统一的问题
P2mp---首先没有真实实际的网络类型是P2MP,是一种专门设 计出来的网络类型
同时为了加快收敛,可以修改OSPF计时器 [r1-Tunnel0/0/0]ospf timer hello 10 -
解决方法: [r1-Tunnel0/0/0]ospf network-type broadcast--需要修改OSPF协 议在mGRE隧道接口下的默认接口网络类型为 broadcast.
问题三
如果中心和分支的DR和bdr认知不一致会导致网络中 一些由DR设备发送的LSA信息残缺,导致没有办法获取到完整 的路由信息。
[r2-Tunnel0/0/0]ospf dr-priority 0--解决方法就是让分支设备放弃 选举DR和BDR
解决方法2. [r1-Tunnel0/0/0]ospf dr-priority 10--让中心的设备接口DR选举 优先级为最高。
如果想要还原环回接口的默认掩码:[r2-LoopBack0]ospf network-type broadcast
Attempt---只有在NBMA环境下才会出现,等待对端也指定发 送的对象
在NBMA环境下因为不支持组播报文,所以即时宣告了OSPF接 口,接口依然没有办法发送hello(224.0.0.5是一个组播报 文),所以必须手工指定建立邻居的对象IP地址 [Huawei-ospf-1]peer 12.0.0.2 --指定建邻的设备IP地址,双方都需要指 定