摘要:(1)类型1.又被称为路由器链路信息数据包(RouterLink),所有的OSPF路由器都会产生这种数据包,用于描述路由器上连接到某一个区域的链路或是某一端口的状态信息。路由器链路信息数据包只会在某一个特定的区域内广播,而不会广播至其他区域。在类型1的链路数据包中,OSPF路由器通过对数据包中某些特定数据位的设定,告诉其余的路由
(1)类型1.又被称为路由器链路信息数据包(RouterLink),所有的OSPF路由器都会产生这种数据包,用于描述路由器上连接到某一个区域的链路或是某一端口的状态信息。路由器链路信息数据包只会在某一个特定的区域内广播,而不会广播至其他区域。
在类型1的链路数据包中,OSPF路由器通过对数据包中某些特定数据位的设定,告诉其余的路由器自身是一个区域边界路由器或是一个AS边界路由器。而且,类型1的链路状态数据包在描述其所连接的链路时,会根据各链路所连接的网络类型对各链路打上链路标识--LinkID.表5-7所示为常见的链路类型及链路标识。
(2)类型2.又被称为W络链路信息数据包(NetworkLink)。网络链路信息数据包是由指定路由器产生的,在一个广播性、多点接入的网络,如以太网、令牌环网及FDDI网络环境中,这种链路状态数据包用来描述该网段上所连接的所有路由器的状态信息。
指定路由器(DR)只有在与至少一个路由器建立相邻关系后才会产生网络链路信息数据包,在该数据包中含有对所有己经与DR建立相邻关系的路由器的描述,包括DR路由器本身。类型2的链路信息只会在包含DR所处的广播性网络的区域中广播,不会广播至其余的OSPF路由区域。
(3)类型3和类型4.类型3和类型4的链路状态广播在OSPF路由协议中又称为总结链路信息数椐包(SummaryLink),该链路状态广播是由区域边界路由器或AS边界路由器产生的。SummaryLink描述的是到某一个区域外部的路由信息,这一个目的地址必须在同一个AS中〃SummaryLink也只会在某一个特定的区域内广播。类型3与类型4两种总结性链路信息的区别在于,类型3是由区域边界路由器产生的,用于描述到同一个AS中不同区域之间的链路状态:而类型4是由AS边界路由器产生的,用于描述不同AS的链路状态信息。值得一提的是,只有类型3的SummaryLink才能广播进一个残域,因为在一个残域中不允许存在AS边界路Eb器。残域的区域边界路由器产生一条默认的SummaryLink对域内广播,从而在其余路由器上产生一条默认路由信息。采用S_atyLink可以减小残域中路由器的链路状态数据库的大小,进而减少对路由器资源的利用,提高路由器的运算速度。
(4)类型5.类型5的链路状态广播称为AS外部链路状态信息数据包。类型5的链路数据包是由AS边界路由器产生的,用于描述到AS外的目的地的路由信息,该数据包会在AS中除残域以外的所有区域中广播。一般来说,这种链路状态信息描述的是到AS外部某一特定网络的路由信息,在这种情况下,类型5的链路状态数据包的链路标识采用的是目的地网络的IP地址;在某些情况下,AS边界路由器可以对AS内部广播默认路由信息,在这时,类型5的链路广播数椐包的链路标识采用的是默认网络号码0.0.0.0。
9.OSPF协议工作过程
OSPF路由协议针对每一个区域分别运行一套独立的计算法则,对于区域边界路由器来说,由于一个区域边界路由器同时与几个区域相连,因此一个区域边界路由器上会同时运行几套OSPF计算方法,每一个方法针对一个OSPF区域。下面介绍OSPF协议运算的全过程。
10.区域内部路由
当一个OSPF路由器初始化时,先初始化路由器自身的协议数据库,然后等待低层次协议(数据链路层)提示端口是否处于工作状态。
如果低层协议得知一个端口处于工作状态时,OSPF会通过其Hello协议数据包与其余的OSPF路由器建立交互关系。一个OSPF路由器向其相邻路由器发送Hello数据包,如果接收到某一路由器返回的Hello数据包,则在这两个0SPF路由器之间建立起OSPF交互关系,这个过程在0SPF中被称为adjacency.在广播性网络或是在点对点的网络环境中,OSPF协议通过Hello数据包自动地发现其相邻路由器,这时OSPF路由器将Hello数据包发送至一特殊的多点广播地址,该多点广播地址为ALLSPFRouters.在一些非广播性的网络环境中,需要经过某些设置来发现0SPF相邻路由器。在多接入的环境中,如以太网的环境,HeHo协议数据包还可以用于选择该网络中的指定路由器(DR)。
一个OSPF路由器会与其新发现的相邻路由器建立OSPF的adjacency,并且在一对0SPF路由器之间作链路状态数据库的同步。在多接入的网络环增中,非DR的0SPF路由器只会与指定路由器DR建立adjacency,并且做数据库的同步。OSPF协议数据包的接收及发送正是在一对0SPF的adjacency间进行的。
0SPF路由器周期性地产生与其相连的所有链路的状态信息,有时这些信息也被称为链路状态广播(LinkStateAdvertisement,LSA)。当路由器相连接的链路状态发生改变时,路由器也会产生链路状态广播信息,所有这些广播数据是通过Flood的方式在某一个OSPF区域内进行的。Flooding算法是一个非常可靠的计算过程,它保证在同一个0SPF区域内的所有路由器都具有一个相同的OSPF数据库。根据这个数据库,0SPF路由器会将自身作为根,计算出一个最短路径树,然后该路由器会根据最短路径树产生自己的OSPF路由表。
11.建立OSPF交互关系adjacency
OSPF路由协议通过建立交互关系来交换路由信息,但并不是所有相邻的路由器都会建立OSPF交互关系。下面简要介绍OSPF建立adjacency的过程。
OSPF协议是通过Hello协议数据包来建立及维护相邻关系的,同时也用其来保证相邻路由器之间的双向通信。OSPF路由器会周期性地发送Hello数据包,当这个路由器看到自身被列于其他路由器的Hello数据包里时,这两个路由器之间会建立起双向通信。在多接入的环境中,Hello数据包还用于发现指定路由器(DR),通过DR来控制与哪些路由器建立交互关系。
两个OSPF路由器建立双向通信之后的第二个步骤是进行数据库的同步,数据库同步是所有链路状态路由协议的最大的共性。在OSPF路由协议中,数据库同步关系仅仅在建立交互关系的路由器之间保持。
OSPF的数据库同步是通过OSPF数据库描述数据包(DatabaseDescriptionPackets)来进行的。OSPF路由器周期性地产生数据库描述数据包,该数据包是有序的,即附带有序列号,并将这些数据包对相邻路由器广播。相邻路由器可以根据数据库描述数据包的序列号与自身数据库的数据作比较,若发现接收到的数据比数据库内的数据序列号大,则相邻路由器会针对序列号较大的数据发出请求,并用请求得到的数据来更新其链路状态数据库。
将OSPF相邻路由器从发送Hello数据包,建立数据库同步至建立完全的OSPF交互关系的过程分成几个不同的状态,如下所述。
通信工程师备考资料免费领取
去领取