OSPF笔记
OSPF基本理解
OSPF基础
五种报文三张表三个阶段
五种报文
Hello:
携带参数,建立和维持邻居关系
在多路访问网络中选举DR、BDR
DBD:
携带LSA头部信息,向邻居描述LSDB
LSR:
向邻居请求特定的LSA
LSU:
携带LSA,向邻居通告拓扑信息
LSAck:
对LSU中的LSA进行确认
三张表
邻居表 —— 存储双向通信的OSPF路由器列表信息
拓扑表 —— 描述拓扑信息的LSA存储在LSDB中
路由表 —— 对LSA进行SPF计算,得到的最佳路由
三个阶段
1.通过Hello报文发现形成邻居 —— 形成邻居表
2.邻接路由器间泛洪LSA,直到LSDB同步 —— 形成LSDB,形成拓扑表
3.每台路由器进行SPF运算,得到最佳路径放入路由表中 —— 形成路由表
路由通告(第二阶段)详细
邻接路由器交换DBD,发现少了对方某条路由。
通过LSR请求缺失路由信息。
对方回应LSU发送缺失路由信息。
发送LSAck确认收到了需要的路由信息。
双方LSDB相同,路由通告结束。
工作状态总结
(1) 启动进程,从接口发送Hello包
(2) 收到Hello包,检查参数,匹配,则把hello包中的router-id放入邻居表,标识为Init状态;并将该Router ID,添加到Hello包(自己将要从该接口发送出去的Hello包)的邻居列表中。
(3) 收到的hello包的邻居列表中含有自己的Router ID,则标识为Two-way状态。
(4) 点对点链路形成邻接关系,广播、NBMA网络类型的链路,进行DR选举。
(5) 形成邻接关系,进入exstart(准启动)状态。通过DBD报文选举主从路由器。
(6) 主从路由器选举完成,进入Exchange(交换)状态,通过DBD报文描述LSDB。
(7) 进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认。
(8) 进入FULL状态,LSDB同步,同一个区域的OSPF路由器都拥有相同链路状态数据库
(9) 定期发送Hello包,维护邻居关系。
(10) 每台路由器独立进行SPF计算,选择最佳路径,放入路由表。
邻居邻接关系建立
建立邻居邻接
Down第一步中,希望建立完全OSPF邻居邻接关系的路由器之间交换OSPF HELLO包。双方的OSPF邻居都处于Down状态,这是邻居会话的初始状态。
Init当路由器从邻居收到了一个HELLO包,但没有在邻居的HELLO包中看到自己的路由器ID时,它将转换为Init状态。在此状态中,路由器将记录所有的邻居路由器ID,并开始将它们包含在发给邻居的HELLO包中。
2-Way当路由器在从邻居收到的HELLO包中看到自己的路由器ID时,它将转为2-Way状态。这表示已和邻居之间建立了双向通信。在多路访问链路上,在2-Way状态将确定DR(指定路由器)和BDR(备份指定路由器)角色,这会优化广播网段中的信息交换过程。
同步OSPF数据库
ExStart下一步中,路由器开始交换OSPF数据库(OSPF DATABASE)内容。此过程第一阶段是确定主/从(MASTER/SLAVE)关系,并选择邻接建立的初始序列号。路由器通过交换DBD包来完成此操作。当路由器收到初始的DBD包时,它把发出这个DBD包的邻居状态转为ExStart,使用DBD携带的LSA填充自己的数据库汇总列表,并发送自己的空DBD包。在DBD交换过程中,有更高路由器ID的路由器将成为主路由器,它是唯一可以增加序列号值的路由器。
Exchange主/从关系选择完成后,可以开始交换数据库。此时邻居状态转为Exchange,在此状态通过发送包含数据库汇总列表中所有LSA头部的DBD包,向邻居描述自己的数据库。数据库汇总列表描述了路由器数据库中所有的LSA,但不包含OSPF数据库的具体内容。为了描述数据库内容,OSPF邻居必须交换一个或多个DBD包。
Loading路由器将自己的数据库汇总列表与从邻居收到的列表进行比较,如果有不同,它将缺失的LSA增加到链路状态请求列表中(LSR)。此时,邻居进入Loading状态。发送一个LSR包给邻居,请求LSR列表中缺失LSA的完整内容。邻居使用LSU包进行应答,其中包含缺失LSA的完整版本。
Full最后,当邻居拥有完整版本的LSDB后,两邻居状态都将变成Full,表示路由器上的数据库已同步且邻居完全邻接。P152
LSA类型
LSA类型1 – 路由器LSA Router LSA
LSA类型2 – 网络LSA Network LSA
LSA类型3 – 网络汇总LSA Network Summary LSA
LSA类型4 – ASBR汇总LSA ASBR Summary LSA
LSA类型5 – 自治系统外部LSA AS External LSA
LSA类型7 – NSSA外部LSA NSSA External LSA
LSA类型 | 由谁产生的 | 作用 | 路由表显示 |
---|---|---|---|
LSA 1 | 每个OSPF路由器 | 描述区域内部与路由器直连的链路的信息 | O |
LSA 2 | DR | 描述广播型网络信息 | O |
LSA 3 | ABR | 描述区域间信息 | O IA |
LSA 4 | ABR | 描述ASBR可达信息 | OIA |
LSA 5 | ASBR | 描述引入的外部路由 | O E2 / O E1 |
LSA 7 | ASBR | 在NSSA区域中描述引入的外部路由 | O N2 / O N1 |
区域类型
骨干区域
标准区域
标准的OSPF区域,能发起也能接收区域内路由、区域间路由、外部路由
骨干区域也是一个标准区域。
特殊区域
1、Stub 末梢区域 Stub Area 末梢区域,区域内路由器不需要根据特定的外部路由来选择离开区域的出口。区域的ABR会阻止5类LSA进入,减少了LSA数量,同时该区域的ABR会自动下发一条使用3类LSA描述的缺省路由。另外ABR依然会将区域间路由即3类LSA注入到stub区域。此时stub区域存在1类、2类、3类以及使用3类描述缺省路由的LSA。
2、Totally Stub Area 在Stub基础上,进一步减少3类LSA,但是保留使用3类LSA描述的缺省路由。stub 区域不能引入外部路由。
3、非完全末梢区域(Not-So-Stub-Area) Stub 区域阻挡4、5类LSA进入区域,并且禁止接入此区域的路由器引入外部路由。当区域内的路由器需要引入外部路由时,stub不满足组网需要,但是也要使用stub的特性减少LSA数量。此时,使用NSSA。NSSA阻挡4、5类LSA进入区域,并且允许路由器引入少量的外部路由。被引入的外部路由以7类LSA描述,并且7类LSA只能在NSSA区域内洪泛,不允许进入Area0,为了使的被NSSA引入的外部路由能够在OSPF其他区域内学习到,NSSA的 ABR会将7类LSA转换为5类LSA,然后注入到Area0,从而洪泛到其他区域。另外NSSA中的ABR会下发7类LSA描述的缺省路由,指导路由转发到Area0区域。NSSA引入的外部路由,应该是末端组网,缺省路由不能指向此末端组网。
4、Totally NSSA NSSA的ABR将3类LSA阻挡,过滤掉域间路由,但是保留描述缺省路由的3类LSA。
大白话浓缩下
stub过滤4,5类lsa,ABR会产生缺省的3类lsa,区域内不能引入外部路由
total stub过滤3,4,5类lsa,ABR会产生缺省的3类lsa,区域内不能引入外部路由
nssa过滤4,5类lsa,ABR会产生缺省的7类lsa,该区域能引入外部路由
total nssa过滤3,4,5类lsa,ABR会产生缺省的3类lsa,该区域能引入外部路由