对于OSPF的学习重点总结: 一个DR,三个表,五种包,七种状态,路径寻优,实时更新!
OSPF介绍: 一种链路状态和内部网关协议,所谓链路状态就是指:链路上的路由器与哪些路由器相邻以及它们之间的距离(度量值)是多少,来确定一条最短路径。内部网关则指的是:一个自治系统内的网关之间交换路由信息的协议。
一个DR:
DR是根据一定的规则选出来的指定路由器,还有一个是备份指定路由器BDR(即备胎)!在一个OSPF网络中,所有的路由器只分为:指定路由器(DR/BDR)和非指定路由器(DROTHER)!
作用:和所有的DROTHER建立邻居关系(2-way),DROTHER把自己的LSA发给DR,DR拥有整个网络的完整拓扑!!!然后它再把这个完整的拓扑信息发给每一个非指定路由,好处是节约时间和资源。
选举规则:
-
最高优先级值的路由器被选为DR(默认优先级相同:1),次高优先级的为BDR(优先级被设置为0的不参与选举)
-
若优先级相同,则比较router-id,拥有最高router-id的成为DR,次高的成为BDR。router-id可以通过工程师指定
-
逻辑端口最大的IP地址,越大越优先
-
物理端口最大的IP地址,越大越优先
注:所有DR,BDR,DRothers说的都是接口,而不是设备
三个表:
- 邻居列表:列出每台路由器全部已经建立邻接关系的邻居路由器
- 链路状态数据库:列出网络中其他路由器的信息,以显示全网的拓扑
- 路由表:列出经SPF算法算出的到达相连网络的最佳路径
五种包:
- Hello:用来建立和维护邻居关系。(10秒发送一次,死亡时间40s,4倍关系,可以修改)
- DBD:检查路由器的数据库之间是否同步。用来协商主从关系。
- LSR:请求链路状态,向另外一台设备请求特定的链路状态 ,在数据库同步过程中使用,请求其他角色发送自己失去的LSA最新版本。
- LSU:Link-State Update 链路状态更新,LSU包括几种类型的LSA,LSU负责泛洪LSA,和相应LSR。LSA只会发送给之前以LSR请求的LSA的直连邻居,进行泛洪的时候,邻居路由负责把收到的LSA信息重新封装在新的LSU中。LSU包含了网络地址、掩码、度量值。
- LSACK:链路状态确认,路由器必须对每个收到的LSA进行LSACK确认,但可以用一个LSACK确认多个LSA。(hello 包除外)
七种状态:
- Down State(出现情况:没宣告邻居、hello包过了40s超时没到)
- Init State:发送了Hello包(还没收到),作用:确认对端的router-id
- Two-way State:收到了一个Hello包且Hello包中包括自己的router-id(对方回复的),作用:选举DR,收集LSU
- Exstart State:发送 DBD包,确认主从关系,router-id大的为主,先发包
- Exchange State:交互DBD 相互学习
- Loading State:LSR与LSU的交互过程
- Full State:所有交互已经完成
路径寻优:
当要进行数据包传输时,通过以上过程来确定一条最短路径
实时更新:
链路信息在定好的时间内,定时更新链路状态