1、OSPF报文类型及封装
OSPF报文直接封装在IP报文里,协议号89。有5种协议报文:Hello报文、DD报文、LSR报文、LSU报文、LSAck报文,各报文的作用如下图所示:
HELLO包目的:
- 1、发现邻居;
- 2、建立邻居前,协商一些参数;
- 3、在邻居间扮演keeplive的角色,允许邻居双向通信;
- 4、在NMA网络里选举DR与BDR。
一般的网络里,hello的时间间隔为10s,在NBMA网络中的hello间隔为30s,一般超过4倍时间间隔后,邻居会down掉!即dead掉。
2、OSPF的状态机
从上图可以看出每个状态的情况如下:
- Down状态:初始状态,没有收到对端的hello报文;
- Init状态:已经收到了邻居的hello报文,但在对方的hello报文的邻居列表中没有自己的router id;
- 2-way状态:收到了邻居的hello报文,在hello报文的邻居列表中看到了自己的router-id;
- Exstart状态:通过不携带LSA的DD报文来协商被本端与邻居的主从关系,最终按照master的序列号交换DD报文;
- Exchange状态:邻居之间交换携带有LSA的DD报文;
- Loading状态:Drother通过比较DD报文与LSDB,向DR发送LSR请求自己没有的LSA,DR回复LSU给Drother,Drother回复LSACK给DR进行确认;
- Full状态:此时路由器(DRother)结束更新自己的LSDB,变为稳定状态;
3、LSA报文格式
ospf常见LSA及其作用:
ospf各类路由缺省优先级:
4、OSPF常用名词解释
OSPF路由聚合
- ABR的路由聚合:聚合后以第三类LSA传递给同as内的其他区域;
- ASBR的路由聚合:对于非NSSA区域,聚合后以第五类LSA传递给as内的所有区域;
OSPF中DR与BDR的选举
- 首先比较优先级(初始情况下优先级都为1),其次比较router id;
- BDR相当于DR的备份;
- 只有广播与NBMA网络才会选举DR/BDR,点到点以及点到多点的接口类型上不会选举DR;
ABR、ASBR
- 连接骨干区域和非骨干区域的路由器,在OSPF中称作区域边界路由器;
- 连接OSPF路由域和其它路由协议域的路由器都是ASBR,可以认为ASBR是引入OSPF外部路由信息的路由器。并不是指单纯AS系统中的自治系统边界路由器;
OSPF虚连接
- 解决骨干区域被分割的问题;
- 解决骨干区域与非骨干区域无法保持连接的问题;
5、OSPF路由的引入
- 区域内路由;
- 区域间路由;
- 第一类外部路由:指的是接收的IGP路由(静态、RIP),这类路由可信度较高。到第一类外部路由的花费值=本路由器到相应的ASBR的花费值+ASBR到该路由目的地址的花费值。
- 第二类外部路由;指的是EGP路由。这类路由的可信度较低,到第二类外部路由的花费值=ASBR到该路由目的地址的花费值。
- OSPF中生成缺省路:无论对于ABR或者ASBR,都会生成一条第五类LSA或者第七类LSA;当命令后跟always则不需要存在默认路由;
6、OSPF的区域类型
OSPF的区域类型有很多:标准区域、主干、末节、绝对末节、NSSA、绝对NSSA
- 标准区域:默认的OSPF区域类型
- 主干区域:就是area 0
- 末节区域(stub区):不接受第四类、五类LSA,如果要到AS外部,Stub区域的ABR将通过Summary-LSA向本区域内发布一条缺省路由,并且只在本区域扩散,不能包含ASBR;此时其他的第三类Summary-LSA还可以传递;
- 绝对末节(totally stub区):不接受五类LSA与三类LSA、第四类LSA,也不能包含ASBR, ABR只向区域内发布一条缺省路由的Summary-LSA,不生成任何其它Summary-LSA;
- NSSA区:这是一种特殊的区域,它定义了七类LSA,NSSA具备了末节与绝对末节的优点,但是可以包含ASBR 配置,能够以受限方式引入AS外部路由,从而生成第七类LSA,传递给ospf其他区域通过ABR进行7类转五类。NSSA实际是Stub区域的扩展;不接受五类LSA、第四类LSA;
- 绝对NSSA区:不接受五类LSA、第四类LSA、第三类LSA,是绝对末节区域stub区的一种扩展;
7、OSPF种的三张表
OSPF中的三张表:邻居表、LSDB、路由表。
8、OSPF常见故障问题
总结一下OSPF不能建立邻居关系的常见原因:
- 1、hello时间间隔与dead时间间隔不同;
- 2、区域号码不相同;
- 3、特殊区域(如stub和nssa)的区域类型不匹配;
- 4、认证密码与类型不匹配;