router(三):ospf

八、OSPF
名词解释:
OSPF:Open Shortest Path First开放式最短路径优先 ;
IGP:Interior Gateway Protocol内部网关协议;
AS:autonomous system自治系统;
LSA :Link State Advertisement 链路状态广播数据包;
ABR:Area Border Router 区域边界路由器;
BR:Backbone Router 骨干路由器;
ASBR:Autonomous System Boundary Router自治系统边界路由器;
NSSA:not-so-stubby area 非完全Stub区域
NBMA:Nonbroadcast Multi-access 非广播多路访问
1、router-id:(1)手工配置;(2)loopback口上数值最高的IP;(3)所有物理接口数值最高的IP。
2
3、LSA(Link State Advertisement 链路状态通告):LSA描述了路由器所有的链路、接口、路由器的邻居以及链路状态信息。
4、OSPF定义的5种网络类型:
(1)点到点网络; 比如T1线路,是连接单独的一对路由器的网络,点到点网络上的有效邻居总是可以形成邻接关系的。OSPF包的目标地址使用的是224.0.0.5,这个组播地址称为AllSPFRouters。
(2)广播型网络(以太网、令牌环);
这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5,运载这些OSPF包的帧的目 标MAC地址为0100.5E00.0005;而除了DR/BDR以外的OSPF包的目标地址为224.0.0.6,这个地址叫AllDRouters.
(3)非广播多路访问(NBMA)网络,比如X.25,Frame Relay,和ATM。
不具备广播的能力,因此邻居要人工来指定,在这样的网络上要选举DR和BDR,OSPF包采用unicast的方式
(4)点到多点网络;
是NBMA网络的一个特殊配置,可以看成是点到点链路的集合. 在这样的网络上不选举DR和BDR。
(5)虚链路。


所有的网络类型可以归纳为两种网络类型:(1)传送网络;(2)末梢网络。OSPF在末梢网络上通告主机路由(也就是掩码为255.255.255.255的路由)。
5、指定路由器(DR)和备份指定路由器(BDR)
DR将完成如下工作:
1. 描述这个多址网络和该网络上剩下的其他相关路由器.
2. 管理这个多址网络上的flooding过程.
3. 同时为了冗余性,还会选取一个BDR,作为双备份之用.
DR BDR选取规则: DR BDR选取是以接口状态机的方式触发的
指定路由器是路由接口的特性,而不是整个路由器的特性。
DR BDR选取过程:
1. 在和邻居建立双向(2-Way)通信之后,检查邻居的Hello包中Priority,DR和BDR字段,列出所有可以参与DR/BDR选举的邻居.所有 的路由器声明它们自己就是DR/BDR(Hello包中DR字段的值就是它们自己的接口地址;BDR字段的值就是它们自己的接口地址)
2. 从这个有参与选举DR/BDR权的列表中,创建一组没有声明自己就是DR的路由器的子集(声明自己是DR的路由器将不会被选举为BDR)
3. 如果在这个子集里,不管有没有宣称自己就是BDR,只要在Hello包中BDR字段就等于自己接口的地址,优先级最高的就被选举为BDR;如果优先级都一样,RID最高的选举为BDR
4. 如果在Hello包中DR字段就等于自己接口的地址,优先级最高的就被选举为DR;如果优先级都一样,RID最高的选举为DR;如果选出的DR不能工作,那么新选举的BDR就成为DR,再重新选举一个BDR。
5. 要注意的是,当网络中已经选举了DR/BDR后,又出现了1台新的优先级更高的路由器,DR/BDR是不会重新选举的
6. DR/BDR选举完成后,DRother只和DR/BDR形成邻接关系.所有的路由器将组播Hello包到AllSPFRouters地址 224.0.0.5以便它们能跟踪其他邻居的信息,即DR将洪泛LSU到224.0.0.5;DRother只组播LSU到AllDRouter地址224.0.0.6,只有DR/BDR监听这个地址.

8.1 OSPF基本原理和实现
8.1.1 邻居和邻接关系
邻接关系建立的4个阶段:
1.邻居发现阶段,邻居关系的建立和维持都是靠Hello包完成的
2.双向通信阶段:Hello报文都列出了对方的RID,则BC完成.
3.数据库同步阶段:
4.完全邻接阶段: full adjacency

8.1.2 区域
(1)路由器分类:内部路由器;骨干路由器;区域边界路由器(ABR);自主系统边界路由器(ASBR)
(2)分段区域:区域之间设计为双条链路,这样任何一条失效都不会使他们变成分段的区域。
(3)虚链路:是指一条通过非骨干区域连接到骨干区域的链路。虚链接必须配置在2个ABR之间
SPF网络分为以下2个级别的层次:
(1)骨干区域 (backbone or area 0)
(2)非骨干区域 (nonbackbone areas)
各非骨干区域间是不可以交换信息的,他们只有与骨干区域相连,通过骨干区域相互交换信息。
非骨干区域和骨干区域之间相连的路由叫边界路由(ABRs-Area Border Routers),只有ABRs记载了各区域的所有路由表。各非骨干区域内的非ABRs只记载了本区域内的路由表,若要与外部区域中的路由相连,只能通过 本区域的ABRs,由ABRs连到骨干区域的BR,再由骨干区域的BR连到要到达的区域。

8.1.3 链路状态数据库
8.1.4 路由表
8.1.5 认证
8.1.6 按需电路上的OSPF
8.1.7 OSPF 数据包格式
(1)数据包头部

(2)hello 数据包:包含邻居路由器的列表。用来建立和维护邻接关系。在广播类型和点到点类型的网络里,Hello报文以组播的方式发送给组播地址ALLSPFRouters(224.0.0.5)。在NBMA类型、点到多点和虚链路类型的网络里,Hello数据包以单播的方式发给每台单独的邻居路由器。
目的:
1.用于发现邻居
2.在成为邻居之前,必须对Hello包里的一些参数协商成功
3.Hello包在邻居之间扮演着keepalive的角色
4.允许邻居之间的双向通信
5.它在NBMA(Nonbroadcast Multi-access)网络上选举DR和BDR(NBMA中默认30s发送一次,多路访问和点对点网络上默认10s发送一次)
Hello Packet包含以下信息:
1.源路由器的RID
2.源路由器的Area ID
3.源路由器接口的掩码
4.源路由器接口的认证类型和认证信息
5.源路由器接口的Hello包发送的时间间隔
6.源路由器接口的无效时间间隔
7.优先级
8.DR/BDR
9.五个标记位(flag bit)
10.源路由器的所有邻居的RID


(3)数据库描述数据包(DBD):用于正在建立的邻居关系,主要目的是描述始发路由器数据库中的一些或者全部LSA,以便接收路由器能够确定所收到的LSA在其数据库中是否已经有一个匹配的LSA。

(4)链路状态请求数据包(LSR):包含的是一系列描述被请求的LSA的字段。

(5)链路状态更新数据包(LSU):包含的是一个LSA的列表。

(6)链路状态确认数据包(LSAck)

类型

名称 介绍
类型1 路由器LSA(Router LSA) 每个路由器都将产生Router LSA,这种LSA只在本区域内传播,描述了路由器所有的链路和接口,状态和开销.
类型2 网络LSA(Network LSA) 在每个多路访问网络中,DR都会产生这种Network LSA,它只在产生这条Network LSA的区域泛洪描述了所有和它相连的路由器(包括DR本身)
类型3 网络汇总LSA(Network Summary LSA) 由ABR路由器始发,用于通告该区域外部的目的地址.当其他的路由器收到来自ABR的Network Summary LSA以后,它不会运行SPF算法,它只简单的加上到达那个ABR的开销和Network Summary LSA中包含的开销,通过ABR,到达目标地址的路由和开销一起被加进路由表里,这种依赖中间路由器来确定到达目标地址的完全路由(full route)实际上是距离矢量路由协议的行为
类型4 ASBR汇总LSA(ASBR Summary LSA) 由ABR发出,ASBR汇总LSA除了所通告的目的地是一个ASBR而不是一个网络外,其他同NetworkSummary LSA
类型5 AS外部LSA(AS External LSA) 发自ASBR路由器,用来通告到达OSPF自主系统外部的目的地,或者OSPF自主系统那个外部的缺省路由的LSA.这种LSA将在全AS内泛洪
类型6 组成员LSA(Group Membership LSA)  
类型7 NSSA外部LSA(NSSA External LSA) 来自非完全Stub区域(not-so-stubby area)内ASBR路由器始发的LSA通告它只在NSSA区域内泛洪,这是与LSA-Type5的区别.
类型8 外部属性LSA(External Attributes LSA)  
类型9 Opaque LSA(链路本地范围)  
类型10 Opaque LSA(本地区域范围)  
类型11 Opaque LSA(AS范围)  

 

(1)LSA头部

(2)路由器LSA

(3)网络LSA,始发于指定路由器(DR)

(4)网络汇总LSA和ASBR汇总LSA

(5)自主系统外部LSA,由ASBR路由器始发的。是用来通告OSPF自主系统外部的目的网络的。

(6)NSSA外部LSA

8.2 配置OSPF
(1)反向掩码
8.3 OSPF末节区域:这种区域不接受本自治系统以外的路由信息,位于Stub边界的ABR将宣告一条默认路由到所有的Stub区域内的内部路由器。
1、末节区域限制:
a) 所有位于stub area的路由器必须保持LSDB信息同步, 并且它们会在它的Hello包中设置一个值为0的E位(E-bit),因此这些路由器是不会接收E位为1的Hello包,也就是说在stub area里没有配置成stub router的路由器将不能和其他配置成stub router的路由器建立邻接关系。
b) 不能在stub area中配置虚链接(virtual link),并且虚链接不能穿越stub area。
c) stub area里的路由器不可以是ASBR.stub area可以有多个ABR,但是由于默认路由的缘故,内部路由器无法判定哪个ABR才是到达ASBR的最佳选择。
2、完全末节区域:不接受外部自治系统路由或来自本自治系统内其他区域的的汇总路由(Cisco专有特性)。
3、次末节区域(NSSA):允许外部路由被宣告OSPF域中来,同时保留Stub Area的特征,因此NSSA里可以有ASBR,ASBR将使用type7-LSA来宣告外部路由,但经过ABR,Type7被转换为Type5.7类 LSA通过OSPF报头的一个P-bit作Tag,如果NSSA里的ABR收到P位设置为1的NSSA External LSA,它将把LSA类型7转换为LSA类型5.并把它洪泛到其他区域中;如果收到的是P位设置为0的NSSAExternal LSA,它将不会转换成类型5的LSA,并且这个类型7的LSA里的目标地址也不会被宣告到NSSA的外部NSSA在IOS11.2后支持.
总结1:OSPF中的数据库
(1)邻居关系数据库:邻居关系数据库是一个OSPF路由器的列表,这些路由器的hello数据包是可以被相互看见的。每个路由器上的邻居关系数据库中管理着各种详细的资料。如路由器ID和状态。
(2)拓扑数据库:拓扑数据库中包含有来自所有从某个地区接收到的链路状态通告数据包中的信息。路由器使用这些拓扑数据库中的信息作为Dijkstra算法的输入。
(3)路由表:存放到达各个目的网络的最有效路径。

 

疑问:
1、DBD 报文除了触发,是否30min发一次?
2、DR(BDR)是从达到2-Way或更高状态的邻居中选举出来的。
3、Exchange:向邻居发送DD包
2、DBD报文在two-way之后,但是在DR选举前还是后?
---应该在选举之后,因为DBD报文值路由器和DR之间才交互的。
九、OSPFv3
1、区域内前缀LSA:前缀发生变化或者末梢的链路状态发生变化,这些信息将在区域内前缀LSA中进行扩散,而区域内前缀LSA不会触发SPF的运行。

posted @ 2019-02-02 14:20  小蚂蚁_CYJ  阅读(1050)  评论(0编辑  收藏  举报