动态路由协议 链路状态协议 OSPF协议

OSPF(Open Shortest Path First)开放式最短路径优先

会使用到的cisco packet Trecer命令

#特权模式
show ip route
show ip ospf neighbor
#全局模式
route ospf  "process"
#端口模式
net "ip" "mask" "area number"
  • 链路状态协议
  • 度量值cost=10^8/接口带宽
  • 10秒发送一个Hello包
  • 组播地址:224.0.0.5 & 224.0.0.6
  • 管理距离:110

距离矢量协议和链路状态协议两大类路由协议区别。

一共有5种不同

  1. 算法不同。
  2. 距离矢量协议传递的是路由条目,链路状态协议传递的是数据库。(数据库非路由表)
  3. 链路状态协议,只宣告进阻,不通告路由。
  4. 链路状态协议通过数据库自己计算出路径。
  5. 链路状态协议知道所有的拓扑。
链路状态协议

这是一个内部网关协议,也是一个动态路由协议,也叫链路状态协议

通过给邻居发送链路状态信息,每一个路由器再根据数据库中的拓扑结构计算出路由。

度量值

距离矢量协议通过累加经过的路由器来计算开销值,链路状态是通过端口的带宽来确定度量值。

  • 计算方式:度量值=108/端口bit
  • 例如:1 = 108/100000000bit
  • 10000000bit=100Mb
  • 累加端口方式:源路由器的出接口,以及目标路由器以及中间路由的入接口。
  • 带宽更大的接口,理论上传输效率会更快,开销也更大。
组播地址
  • 宣告端口网段为OSPF以后就会监听224.0.0.5接口
地址作用
224.0.0.5发送Hello包、选举DR/BDR、DR/BDR对Other发送组播更新
224.0.0.6只用于Other路由器给DR/BDR发送Update数据更新

224.0.0.5用于DR/BDR路由器发送更新消息给Other路由的IP地址,在OSPF进程中的路由器都会接受组播类的信息。这里路由还是由各个Other路由器自行计算,关于DR/BDR和Other路由器在下面会有介绍。

224.0.0.6是给Other路由器更新updata,只有DR/BDR收得到,所以就是给专门给Other路由器访问DR/DBR用的。

管理距离

管理距离也叫AD值,越小越优先。
OSPF的管理距离比RIP的管理距离要小,在拥有相同路由的时候,会优先使用OSPF。

OSPF路由协议的特性

  • 没有自动汇总功能
  • 无类路由
  • OSPF协议号:89(在网络层)
  • 五种数据报文:Hello,DBD,LSR,LSU,ACK
  • 默认支持4条负载均衡,最大支持16条,并且只支持等价负债均衡。在开销相同时,出接口不同的链路会负载均衡。

自动汇总功能

OSPF传输的是数据库,所有路由条目都是自身计算出来的,无法进行自动汇总。

RIP传递的是路由表,本身不知道拓扑结构,通过自动汇总将子网掩码变短,将所有包含的路由一股脑放过去。

五种报文

从开始到建立路由使用五种报文

报文说明
Hello打招呼
Database Description数据库描述
Link-State Request链路状态请求
Link-State Update链路状态请求
Link-State Acknowledgement链路状态确认

数据包发送流程

  • Hello:形成邻居状态
  • Database Description:形成邻居关系以后,发送自身的数据库进行对比,再请求与自身不同的数据
  • Link-State Request:发送请求更新数据包
  • Link-State Update:回复更新数据包
  • Link-State Acknowlegement:回复确认更新包

OSPF的八种状态(邻居状态)

状态说明
Down关闭
Attempt非广播网络状态
Init半连接状态
2-way连接状态
Exstart单播更新DBD
Exchange发送请求和更新
Loding传递数据包
FULL结束
Down状态

启用OSPF后才会有这种状态

Init状态
  1. 在启用OSPF协议以后会监听组播接口,通过组播地址224.0.0.5发送Hello包
  2. 接收到Hello包的路由器会审核其中的内容
  3. 审核通过再将发送Hello包的路由器的Route-ID加入到邻居表中,并且将状态改为init

数据包需要审核的内容(除Route-ID外其余必须一致才能通过审核)

内容说明
Route-ID环回接口/活动的物理接口的最大值
区域号0骨干区域,其余非骨干区域
认证类型接口认证,区域认证
Hello时间缺省值10s,单独修改死亡时间不影响
死亡时间缺省值40s,Hello时间的固定4倍

Route-ID 是路由器与路由器之间的名字,可自己设计,如果没有设置就会选择IP最大的环回接口,若环回接口也为配置,就选择物理端口的最大IP地址,大小关系从左到右,且必须唯一。

区域号

因为网络越来越大,设备开销也越来越大,OSPF就有了区域的划分,相同的区域同步一样的数据库,可以减少路由器本身开销,可强核心弱分支。

区域号说明
0骨干区域
其余(1-255)非骨干区域
  • 非骨干区域必须和骨干区域相连,否则区域将会独立。
  • 区域划分是根据接口来划分的,都是以链路为最小单位划分的,两边接口都是同一区域才能通信。
  • 在同一路由器上有多个区域的路由器被叫做ABR也叫区域边界路由器
2-way
  1. 对方接受到Hello包,认证成功,将Route-ID加入邻居表
  2. 对方路由器将邻居表信息加入到Hello包,继续发送
  3. 路由器接收到对方路由器发送Hello包中包含自身的Route-ID,然后单播回复Hello包
  4. 确认双方都有信息后将状态转变成2-way
选举DR/BDR

DR(designate router)指定路由器
BDR(backup designate router)备份指定路由器

为了避免在Exstart状态DBD包发送量过大,如果有10台路由器就会发送10*10-1次DBD包,所以在2-way采取了措施。就是选举DR/BDR,在进入Exstart状态后每一个人只会去向DR/DBR交换数据库,没有被选举上的路由器叫做Other,Other路由器在建立到邻居就不用再继续交换了,转发量减小到两个包的转发量。

如何需要选举DR/DBR

  1. 查看优先级,列出能参选的DR/BDR的和声明自己就是DR/BDR

  2. 建立一个没有声明自己就是DR的子集。声明自己是DR的不能被选成BDR

  3. 在此子集中,优先级大、Router-ID大的成为BDR

  4. 然后选择DR。若无声明自己是DR的话,则新选的BDR成为DR

Hello包的作用:发现邻居,对一些数据的协商,保持邻居的- - keeplive状态,选举DR/DBR

224.0.0.6
选举流程

  • 首先都发Hello包,判断出来以后最优的是BDR,然后等40秒,也就是Hello包的超时时间。

  • 等待有没有路由器声明是DR,在第四个Hello包后,确认了在这个组播范围内没有DR,BDR就会成为DR。

  • 在有DR以后,就算时间相差很短,有一个优先级更高的路由器,DR也不会变更了,之后再选一个BDR补上。

  • 但是other路由器将会永远停留在2-way状态。

Exstart状态

需要发送DBD包,Other路由器只对DR/BDR发送,交换完成立刻进入Exchange状态。

Exchange状态

通过组播发送LSR和LSU,让各个路由器计算路由。

Loding状态

持续的进行组播更新,多个网段更新,通过泛洪式更新,都发送组播,不论广播域和邻居关系,实现数据库同步。

然后计算路由表。

所有人的状态都发完DR/BDR就变成FULL状态。

FULL

完毕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值