OSPF 基础(1)

OSPF 基础

OSPF:开放式最短路径优先协议
无类别链路状态路由协议—组播更新协议:224.0.0.5/6
触发更新、周期更新(30min);跨层封装到网络层–协议号89

基于LSA更新导致更新量很大,如果需要为中大型网络服务则会使网络很卡,所以OSPF需要结构化部署,周期的维护
结构化部署:区域划分、地址规划
区域划分规则:
1、星型结构:所有非骨干必须直连到骨干区域 区域0为骨干 大于0为非骨干
2、ABR:区域边界路由器

一、数据包
HELLO -- 邻居的发现、建立、保活
DBD  --数据库描述包 -- 数据库目录信息
LSR   --链路状态请求
LSU  ---链路状态更新---携带各种LSA
LSack ----链路状态确认

LSA:链路状态通告–在不同条件下产生不同的拓扑或路由信息,被分为各种类别;
LSDB:链路状态数据库—所有的LSA的集合

二、OSPF的状态机
Down:本地一旦发出hello包,进入下一状态
Init初始化:本地接收到的hello包中若存在本地的RID,进入下一状态
2way双向通信:邻居关系建立标志 (条件匹配后先后进入下一状态)
Exstart预启动:使用类hello 的DBD包进行主从关系选举,RID数值大为主,主优先进入下一状态
Exchange准交换:使用真正的DBD进行数据库目录的共享,需要ACK
Loading 加载:使用LSR/LSU/LSack来获取未知的LSA信息
Full转发:邻接关系建立的标志
条件匹配:点到点网络直接进入下一状态;MA网络将进行DR/BDR选举(40S),非DR/BDR间不能进入下一状态
三、OSPF的工作过程

首先在启动配置完成后,本地收发hello包,从而建立邻居关系,生成邻居表,再进行条件的匹配(网络类型),若匹配失败将停留于邻居关系,仅hello包周期保活即可,如果匹配成功者间可以建立邻接(毗邻)关系,然后通过DBD共享数据库目录,LSR/LSU/LSack来,取未知的LSA信息,当收集完网络中所有的LSA后,生成数据库表–LSDB,LSDB建立完成后,本地基于SPF选路规则,计算本地到达所有未知网段的最短路径,然后将其加载到路由表中,从而完成收敛,收敛完成后只需hello包周期保活
30min周期的DBD比对,若不一致将使用LSR/LSU/LSack重新获取,使LSDB同步

OSPF收敛=LSA洪泛=LSDB同步

结构突变:
1、新增网段---直连新增网段的设备使用DBD告知邻居,邻居再使用LSR/LSU/LSack来获取
2、断开网段---直连断开网段的设备使用DBD告知邻居,邻居再使用LSR/LSU/LSack来获取
3、无法沟通---dead time 计时到后,邻居关系断开,删除所有从该邻接处学习到的所有LSA信息;
四、配置:

在这里插入图片描述
启动时需要配置进程号,仅具有本地意义
route-ID:点分十进制表示,全网唯一,可手工配置,如果不配置环回接口上最大数值的ip地址,无环回接口时则以物理接口最大数值的IP地址
宣告的作用:

1、激活   
2、拓扑   
3、区域划分

启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:
Hello包----用于邻居的发现、关系的建立和保活

邻居间hello包中必须有4个参数完成一致(只要4个参数一致就能建立邻居关系),否则无法建立邻居关系:

1、hello 和dead time   
2、区域ID  
3、认证字段  
4、末梢区域标记

首先,ospf 的所有报文都有一个报文头部(跨层封装,无传输层),携带一些必要的信息,如下图

在这里插入图片描述
ospf的hello包内容:
在这里插入图片描述

show ip ospf neighbor 查看邻居表
在这里插入图片描述
FULL为这台路由器与2.2.2.2的状态,DROTHER为2.2.2.2在这台路由器的身份,接口是本地接邻居的接口

邻居关系建立后,进行条件匹配,匹配失败为邻居关系,hello包周期保活即可;
匹配成功将使用DBD/LSR/LSU/LSack获取未知的LSA信息,生成LSDB—数据库表:
show ip ospf database 查看数据库的目录
show ip ospf database router 1.1.1.1 具体查看某条LSA
数据库表:在这里插入图片描述
LSA:
在这里插入图片描述
DBD包:exstart和exchange中均出现; exstart状态时,没有携带目录信息,仅用于主从关系选举;
1、DBD包中携带MTU,强制要求邻接间MTU值必须一致,否则将卡在该状态
2、在exstart状态的DBD时,使用隐型确认;—基于序列号
从使用主的DBD序号来确认主的信息
3、标记位 I 为1标识本地发出的第一个DBD 包
M为0标识本地的发出最后一个DBD包
MS为1标识主,为0标识从
在这里插入图片描述

主从关系的选举过程及隐式确认:
在ospf中,数据包是跨层封装的(没有传输层),所以不可靠,为了达到可靠的目的,ospf用DBD中的seq来实现一种确认(隐式确认)
首先,有AB两台路由器,都运行ospf,在主从关系(使用DBD原因,判断进行到的状态)确认的过程中,首先A发送数据包(类hello的DBD)给B,seq=21 RID= 1.1.1.1认为自己是主,B收到后,回了 seq=334 RID= 2.2.2.2,认为自己是主,A收到后发现B的RID大(此时主从关系以明确,B是主),就跟着以B的seq回包,B看见A的包中有自己的seq ,就确认自己是主,A是从(这一个包就是起确认的作用),然后AB发送真正的DBD。(主先发送真的DBD)

主从关系的作用:在发送DBD的时候,没有ACK确认,为了使传输可靠。

当LSDB同步完成后,本地基于数据库最短选路规则,计算到达所有未知网段的最短路径,然后将其加载到路由表中:
在这里插入图片描述
使用O标识OSPF本区域内通过拓扑计算所得路由
使用O IA标识其他区域路由器通过ABR导入所得
使用O E1/2标识其他协议或其他进程产生后,通过ASBR重发布进入
使用O N1/2标识其他协议或其他进程产生后,通过ASBR重发布进入,同时本地处于NSSA特殊区域;

管理距离为110;度量为cost值;
Cost值=开销值=参考带宽/接口带宽 默认参考带宽为100M;
OSPF优选cost值之和最小的路径;
注:到接口实际带宽大于参考带宽时,度量为1;可能导致选路不佳
可以修改默认的参考带宽,切记整个网络所有设备参考带宽需一致
r1(config-router)#auto-cost reference-bandwidth ?
1-4294967 The reference bandwidth in terms of Mbits per second
r1(config-router)#auto-cost reference-bandwidth 1000

五、OSPF的邻居建立成为邻接关系的条件

基于网络类型------点到点 MA多路访问
在点到点网络中,邻居关系必须成为邻接关系,否则无法正常收敛
在MA网络若全网均为邻接关系,那么将可能出现大量重复性的LSA洪泛;
为避免该现象,将进行DR/BDR的选举;所有的非DR/BDR间不得建立成为邻接关系;

选举规则:
1、先比较接口优先级----- 默认1;大优;0标识不参选,点到点接口默认为0;
2、先级相同,比较设备的RID,数值大优;

干涉选举的方法:
1、修改DR最大优先级,BDR次大
r1(config)#interface fastEthernet 0/0
r1(config-if)#ip ospf priority 3
注:DR选举非抢占,故修改优先级后必须重启设备的OSPF进程
r1#clear ip ospf process
Reset ALL OSPF processes? [no]: yes

2、修改DR最大优先级,BDR次大;剩余所有设备优先级修改为0;
不需要重启设备的进程;切记不得将所有设备优先级修改为0,至少必须存在DR;

六、OSPF的接口网络类型

OSPF协议在不同网络类型下的接口上,不同的工作方式;
OSPF接口工作方式

r1#show ip ospf interface lo0 查看OSPF协议在某个接口上的工作方式

网络类型                           OSPF接口工作方式
环回                                  LOOPBACK                          无hello包 以32位主机掩码发送路由
点到点(HDLC/PPP)     POINT_TO_POINT                hello time 10s 不选DR
BMA (以太网)              BROADCAST                         hello time 10s 选DR
NBMA (MGRE)           POINT_TO_POINT                 hello time 10s 不选DR
注:点到点的工作方式,仅适用于一个网段两个节点的网络;
故在MGRE环境下若适用tunnel口默认的工作方式,那么一个网段内若存在两个以上节点(非全连式结构)将出现邻居关系翻滚(中心站点,收到谁的包就和谁建立连接,并且断开其他的连接)

解决邻居关系翻滚:
1、所有节点修改 BROADCAST(ospf发hello是组播)
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network broadcast
注:若MGRE环境下,不同接口处于不同的网络类型;若hello time一致将建立邻居关系,当工作机制的不同导致LSA更新出现问题;必须所有节点处于相同的工作方式

注2:MGRE环境下,若构建的OSPF工作环境不是一个全连结构(网段内所有设备间均建立邻居关系),那么一旦使用broadcast工作方式,就必须将DR固定在中心站点位置,否则将出现DR位置混乱,导致网络无法正常收敛;
2、所有节点修改为点到多点模式;
点到多点为cisco为OSPF协议额外设置的工作方式
r1(config)#interface tunnel 0
r1(config-if)#ip ospf network point-to-multipoint

点到多点的工作:hello time30;无DR选举;生成访问各个节点的精确路由;

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值