OSPF链路状态协议

OSPF原理

1、建立邻居表,先互相发送HELLO报文,每个设备产生自己的链路状态Link-state(可以理解为设备的自我介绍),LSA(通告信息)中包含自己的直连接口信息和邻居信息,将LSA打包后命名为设备的router ID,router ID为IPv4格式,之后每个设备同步LSA信息

2、同步所有的LSA建立链路状态数据库LSDB

3、使用SPF算法算出最优路径

OSPF报文

OSPF报文封装在IP报文的上层,协议号为89。(RIP协议封装在UDP协议中,端口号为520。TCP的协议号是6,UDP协议号是17)

OSPF报文有5种类型:

HELLO报文

DD(Database Description)报文(描述报文)

LSR(LAS Request)报文(请求报文)

LSU(LAS Update)报文(更新报文)

LASCK(Link State Acknowledgment)报文(确认报文)

HELLO报文

HELLO报文是一种组播报文,组播目标地址为224.0.0.5

组播包需要周期发送,周期为10s,目的让邻居发现自己,并告诉邻居我存活

也称作心跳协议,或者保活机制

超时时间为40s,如果超过40s再没有收到邻居的HELLO报文,则认为邻居故障或者关闭

HELLO包中包含自己的router ID

router ID最优为手动配置

如果没有手动配置则选择环回口最大的IP地址作为自己的router ID

如果没有环回口则选择物理口最大的IP地址作为自己的router ID

如果手动修改router ID,需要重启OSPF

同步LSA

首先设备通过交换DD报文(数据库描述信息:包含每条LSA,包含LSA的版本号等,用于设备的LSA更新),得知自己需要更新的LSA是哪些

然后通过LSR报文说明自己需要更新的LSA

收到LSR报文后,向对方发送LSU报文,报文中包含对方需要的LSA信息

当自己收到LSU报文后,向对方发送LSACK报文,告诉对方我已经收到需要更新的LSA信息了

后四种报文都是用来同步LSA,目的是建立LSDB数据库

此方式为触发式,自带确认机制,比如路由器内部有更新,比如突然多加了个接口,此时设备会直接将LSU发于邻居,用于更新,不用等请求,邻居会回复确认报文。

邻居状态

从无邻居到有邻居再到LSA同步状态分为2个步骤,为邻居状态与领接状态。

首先通过HELLO包建立邻居表,在建立邻居状态的过程中有4种状态:

Down状态:没有邻居,指的是没有收到任何邻居的HELLO包

Attempt尝试状态,特殊情况使用单播方式,尝试寻找特定的邻居,但是这个邻居没有回复我,会出现此状态(也是没有邻居的状态)

Init初始化状态:已经发现了邻居

2-Way双向通信状态:两个邻居之间已经互相接收到对方的HELLO包,称为邻居关系建立成功

领接状态

ExStart预启动状态,Exchange预交换状态:这两个状态在交换DD描述信息

Loading加载状态:在交换LSR,LSU,LSACK

Full交换信息完成状态

DR:指定路由器

BDR为备份指定路由器

DR可以减少同广播域中的LSA泛洪

选取DR后,设备的LSA发送到组播224.0.0.6

所有设备将自己的LSA发送给DR,DR将收集到的所有信息建立LSDB,再发送给各个设备

DR和BDR与广播域中其余设备建立领接关系,其余设备相互之间只建立邻居关系

DR是广播域中的某个接口,而不是某个设备

每一个广播域中都需要选举一个DR,点到点类型网络(如串口相连,后期不会有第三台设备)中不需要选举DR

DR是基于端口的优先级(Priority)的值进行选举,优先级的范围为0-255,默认为1,值最大的将选举为DR,优先级为0时表示不参与选举,如果优先级相同,将比较router ID,最大的为DR

DR被选定后不能轻易的变更,需要变更需要区域内全部重启OSPF,或者将DR优先级修改为0使其退出选举,使新设置的DR生效,命令:接口下ospf dr-priority 0

设备启动OSPF之后(宣告之后),设备之间会在40s选出DR,超过40s不能抢占DR

OSPF区域

Area 0区域0为骨干区域,其余的区域都必须与此区域相连

区域0中的路由器被称为骨干路由器,这些路由器可以连接其他区域,这台路由器被称为ABR(区域边界路由器),被用来连接普通区域与骨干区域

每个区域都维护一个独立的LSDB

ABR拥有两套LSDB数据库,一套是Area 0的数据库,一套为所在普通区域的数据库

OSPF开销

OSPF的cost值(参考值)计算公式为带宽参考值(十的八次方)除以当前带宽

cost值没有小数,全部取整

带宽计算:百兆为100*10的6次方,千兆为1000*10的6次方,万兆为10000*10的6次方

可以通过bandwidth-reference命令来设置带宽参考值:bandwidth-reference 10000(单位为兆)

也可以在接口视图下直接修改cost值,命令为ospf cost 20,cost值将影响设备对路由的cost的评价,会影响选路

OSPF认证

分为2种:区域认证和接口认证

接口认证与RIP认证同理,只在邻居间生效

接口认证命令:接口视图下ospf authentication-mode md5 1(此为认证口令编号,需要双方一致) huawei

区域认证是整个区域所有设备都要认证,在区域间生效

以接口命令的key为先

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

平平无奇小天才丶丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值