OSPF(开放路径最短优先)

发布时间 2023-04-20 18:05:02作者: 爱吃青椒不爱吃西红柿


ospf优先级:内部优先级默认为10,外部优先级默认为150

1.ospf的三张表
(1)邻居表 <记录邻居状态和关系>
(2)拓扑表 <链路状态数据库>
(3)路由表 <对链路状态数据库进行SPF计算得出的OSPF路由表>
2.ospf路由器的类型
(1)IR,区域内部路由器 <所有接口都在同一区域>
(2)BR,骨干路由器 <有接口在骨干区域>
(3)ABR,区域边界路由器 <连接骨干区域和非骨干区域>
(4)ASBR,自治系统边界路由器 <连接外部自治系统,并引入外部路由>
3.Router ID
Router-ID 是非抢占的,若出现一个更大的IP,仍保持原来的router-id。只有手动配置或router-id对应的接口IP地址消失,重启ospf进程后router-id发生改变。
4.ospf的网络类型
(1)广播多路访问型:
以太网默认的网络类型、需要选举DR/BDR、hello-time为10秒、dead-time为40秒、组播发送协议报文。
(2)非广播多路访问型
帧中继接口的默认网络类型、需要选举DR/BDR、hello-time为30秒,dead-time为120秒、单播发送协议报文需要手动指定邻居。
(3)点到点网络
ppp默认的网络类型、不选举DR/BDR、hello-time为10秒、dead-time为40秒、组播发送协议报文。
(4)点到多点网络
由其他网络类型修改、不选举DR/BDR、hello-time为30秒、dead-time为120秒、模拟组播发送协议报文,可以自动发现邻居。

在设置网络类型,要注意以下几个方面:
P2MP类型必须是由其他的网络类型强制更改
一般情况下,链路两端ospf接口的网络类型必须一致,否则不可用建立邻居关系

5.ospf五种报文
Hello:建立和维护ospf邻居关系。
DBD:链路状态数据库描述。OSPF 路由器通过交换 DBD 报文,来统计自己缺少的 LSA 并向对端发送 LSR 报文进行请求。
LSR:链路状态请求报文。用于向邻居请求自己 LSDB 中没有的 LSA。
LSU:将邻居需要的LSA打包成LSU发给邻居,只有 LSU 报文中会包含完整的 LSA。
LSAck:LSAck 用于向邻居确认收到的 LSU,如果没收到 LSAck 的话,邻居会不断的重传LSU。

6.ospf的邻居状态机
(1)Down:表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
(2)Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔向对端发送Hello报文。
(3) Init:本状态表示已经收到了邻居的HELLO报文,但对方并没有收到我发的HELLO报文。
(4)2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
(5)ExStart:路由器和它的邻居之间通过互相交换DD报文来决定发送时的主/从关系。
(6) Exchange:路由器将本地的LSDB用DD报文来描述,并发给邻居。
(7) Loading:路由器发送LSR报文向邻居请求对方的DD报文。
(8)Full:在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即,本路由器和邻居建立了 邻接 状态。

7.LSA类型
(1)LSA type1
传播范围:仅在区域内传播
产生者:每台路由器都会产生
(2)LSA type2
传播范围:仅在区域内传播
产生者:由DR产生
(3)LSA type3
传播范围:传递至除Totally stub和Totally NSSA区域之外的所有区域
产生者:由ABR产生
(4)LSA type4
传播范围:在除ASBR本区域之外的其他普通区域传递
产生者:由ABR产生
(5)LSA type5
传播范围:传递至除特殊区域外的所有其他普通区域
产生者:由ASBR产生
(7)LSA type7
传播范围:只在NSSA本区域传递
产生者:由ASBR产生的关于NSSA的信息

8.特殊区域
(1)stub区域:不接收4 5类LSA,由ABR自动产生一条缺省路由的Type3 LSA下发至该区域,骨干区域不能被配置为特殊区域,如果要将一个区域配置成Stub区域,则该区域中的所有路由器必须都要配置成Stub路由器,Stub区域内不能存在ASBR,虚连接不能穿越Stub区域建立。
(2)totally stub区域:不接收3 4 5类LSA,由ABR自动产生一条缺省路由的Type3 LSA下发至该区域,骨干区域不允许设置为特殊区域,Stub区域不允许存在ASBR。
(3)nssa区域:不接收4 5类LSA,但本区域存在ASBR;本区域引入的外部路由以Type7 LSA传递,当该外部路由传递至其他普通区域时,由Router-id最大的ABR进行7转5;手动配置ABR下发一条Tyep7的缺省路由LSA。
(4)totally nssa区域:不接收3 4 5类LSA,但本区域存在ASBR;本区域引入的外部路由以Type7 LSA传递,当该外部路由传递至其他普通区域时,由Router-id最大的ABR进行7转5;由ABR自动产生一条缺省路由的Type3 LSA下发至该区域

NSSA区域和Stub区域的区别:
两者的差别在于,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中,同时又不会学习来自OSPF网络其它区域的外部路由

9.OSPF选路原则:
1.区域内路由>区域间路由>1类外部路由>2类外部路由
2.类型一致,对比Cost

10.虚连接
通过在一个中间区域的2个ABR上配置虚连接来使两端的区域实现逻辑上的连接,解决非骨干区域不能和骨干区域相连。

11.ospf路由聚合
(1)ABR聚合:把一个区域的LSA聚合后发布到相邻区域;只能对Type 3类的LSA进行聚合;ABR的聚合不会影响本机的路由,只会影响下游路由器的路由;ABR聚合后会在ABR本机上产生一条该聚合路由的黑洞路由来防止环路出现。
(2)ASBR聚合:只能对Type 5、7类Lsa进行聚合;ASBR的聚合不会影响本机的路由,只会影响OSPF内部其他路由器的路由;ASBR聚合后会在ABR本机上产生一条该聚合路由的黑洞路由来防止环路出现。

12.ospf安全验证
(1)接口验证:链路两端的接口必须配置一致的密码才能建立邻居关系
(2)区域验证:在区域下配置一致的密码才能加入同一个区域
注意:接口验证高于区域验证,只要接口验证通过,哪怕区域验证挂了也能通过

13.2-way的前提
(1)Router-id无冲突 <修改Router-id需要重置OSPF进程使生效>
(2)区域id一致
(3)掩码长度一致
(4)验证密码一致
(5)hello-time一致
(6)dead-time一致

14.ospf的优点

(1)仅传播对端设备不具备的路由信息,避免网络资源浪费
(2)网络收敛速度快
(3)扩展性好
(4)支持认证(安全性好)

15.影响OSPF邻接关系的因素:
(1)双方Router-id冲突
(2)双方Area-id不一致
(3)广播网络中掩码不一致
(4)网络类型不一致(如果一端是NBMA,另一端不是,则无法建立邻居;其他的情况都是邻接关系可以FULL,但是无法计算路由)
(5)双方接口的MTU不一致(导致邻接状态卡在Exstart或Exchange)
(6)验证未通过
(7)特殊区域类型不一致
(8)Hello-time和Dead-time不一致

DR,BDR选举规则总结:
1.看接口优先级,优先级越大越优先,被选DR,优先级第二,被选BDR.
2.如果优先级一样,选route-id,越大优先.
3.如果路由器没有设置route-id,那么选接口的ip地址,越大越优先。

邻居和邻接:
1.在OSPF中路由器与路由器之间有两种关系分别是邻居和邻接。
2.收到hello报文的路由器检查报文中的参数,如果双方一致就形成邻居关系。
3.当双方成功交换DD报文,交换LSA达到LSDB同步后,建立邻接关系。

 

邻居与邻接详解(了解)
OSPF 邻居关系,分为邻接和邻居两种。LSA 只在邻接关系的邻居之间同步,普通邻居关系之间不同步 LSA 信息。
邻居关系:路由器之间仅通过 Hello 报文,知道目前处于同一区域。
邻接关系:在邻居关系的基础上,DR 和 BDR 之间互相发送 LSA。
我们知道,在运行着多台 OSPF 的路由器中,为了让对方能够发现自己,需要互相发送 HELLO 消息,建立邻居关系。接着发送在路由器之间传送 LSA 碎片。但这就有一个问题,由于每台路由都需要知道完整的拓扑信息,所以所有路由器都需要广播和接受 LSA 的碎片,假设有 n 个路由器之间连接邻接关系,那么将需要建立 n(n-1)/2 个邻接关系。这无疑是对网络资源的很大损耗。
为了解决这个问题就提出了一个 DR 和 BDR 的概念,将路由器的类型分为三种:
DR: 选举成功的路由器 - 理解成掌门
BDR:作为backup 的路由器 - 理解成副掌门,时刻监听掌门状态,掌门一死,副掌门就是掌门。
Other:未选举成功的其他路由器。
接着在一个多路访问链路上,所有的路由器都需要与 DR 路由器建立邻接关系,同时也要与 BDR 路由器建立邻接关系,DR Other 之间,只建立邻居关系,不会同步数据库信息。换句话说,区域中的普通路由器只和老大和老二建立关系。进而依靠这种方式降低 OSPF 进程对路由器资源占用的。