O S P F协议总结
第一部分 O S P F的一些基本概念
在链路状态路由协议中,路由器和路由器之间交换的是链路状态。而距离矢量路由协议中,路由器与路由器之间交换的是路由表。链路状态路由协议能够识别更多的网络信息,所以选出的路由比距离矢量路由协议选出的路由更优。在O S P F中,一共维护着三个数据库:所有的邻居,区域内所有的路由器(链路状态),到达目的地最佳路径。O S P F是通过链路状态表中整个区域的链路状态来计算出路由表的。
O S P F中的三张表:邻居表(a d j a c e n c y d a t a b a s e),拓扑表,路由表。
O S P F的网络在设计时应该设计为层次性的网络,这是一个强制要求。有两个级别的层次一个为主干区T r a n s i t a r e a(b a c k b o n e o r a r e a0),另一个为非主干区域R e g u l a r a r e a s(n o n b a c k b o n e a r e a s)。可以认为,在区域内部交换的是链路状态,而在区域和区域之间交换的则是路由信息。
O S P F区域的特点:
1.减小路由表的条目;
2.本地化拓扑结构,只在本区域传播,将拓扑变化影响减到最小;
3.详细的L S A的洪泛将终结在区域的边界上;
4.需要层次化的网络设计;
5.一般情况下,所有的非主干区域都应该与主干区域相连,非主干区域之间是不会交换信息的;
A B R称为区域边界路由器,作用就是将非主干区域和主干区域连接起来。
链路状态数据结构(邻居表):
1.O S P F通过交换H e l l o包来发现邻居;
2.通过检查H e l l o包中的一些选项或者变量后建立邻居关系的;
3.在点到点的广域网环境中,邻居之间是全互联的;
4.在局域网环境中,所有路由器只与D R和B D R形成邻接关系(a d j a c e n c y),而其他的路由器(D R O T H E R s)之间则只是t w o-w a y的关系;
5.路由更新和拓扑信息之在邻接关系的路由器之间进行传播;
所有的路由更新,以及链路状态信息都是通过网络中的D R和B D R传输的。也就是说,所有的D R O T H E R都会与D R还有B D R建立邻接关系(a d j a c e n c y)。
S P F算法:在每个路由器的链路状态表中都应用D i j k s t r a’s S P F算法。
1.每个路由器上都会有一个链路状态数据库;
2.每个路由器都会先将自己作为一个根,然后建立起一个S P F树;
3.最优路径的计算是到达目的地的所有路径开销的总和;
4.最优路径将被放到路由表中;
L S A的操作:
1.首先,与自己的链路状态表对比一下,看看是否在其中;
2.如果没有的话,把它加到自己的链路状态数据库中,同时发出一个确认包;
3.如果有的话,比较顺序号,如果顺序号相同,则忽略。如果小于自己的,则给源发送一个L S U;
4.然后洪泛传输自己的L S A给其他路由器;
5.运行S P F算法,重新计算路由表;
P S:L S A传输的时候,每次只能传输一跳。
第二部分 O S P F包的类型
O P S F中几种包的类型:
1.H e l l o包,建立邻居关系;
2.数据库的描述包;
3.链路状态请求;
4.链路状态的更新;
5.链路状态的确认;
O S P F是通过发送H e l l o包来建立邻居关系的,O S P F的H e l l o包是通过多播向外发送的,所有运行O S P F的路由器都会接收这个多播包。 H e l l o包中的内容:R o u t e r I D、H e l l o和死亡时间间隔、邻居、区域I D、R o u t e r的优先级、D R的I P地址、B D R的I P地址、验证密码、s t u b区域标记。在O S P F中,为红色字体的那些内容必需要相同才能形成邻居关系。
D R O T H
E R之间的稳定状态是t w o-w a y状态,D R或B D R与D R O T H E R之间的稳定状态是f u l l s t a t e状态。 所有路由器给D R s发送L S U的多播地址时224.0.0.6,D R给其他路由器发送L S U的多播地址是224.0.0.5。L S A的顺序号:
1.每一个记录在链路状态数据库中的L S A都包含一个顺序号;
2.顺序号是一个4b y t e的数字从0X80000001到0X7f f f f f f f;(如果到达最大号,网络可能会出现短暂的波动。也是攻击O S P F网络的一个方法)
3.O S P F的L S A在每隔30分钟回洪泛一次,来同步数据库信息。每次都将顺序号增加一;
4.当同时收到两个L S A时,通过顺序号的高低来判断版信息的新旧;
第三部分 O S P F的基本配置(单区域)
R o u t e r(c o n f i g)#r o u t e r o s p f p r o c e s s-i d
R o u t e r(c o n f i g-r o u t e r)#n e t w o r k a d d r e s s i n v e r s e-m a s k a r e a[a r e a-i d]
R o u t e r#s h o w i p r o u t e o s p f(显示所有通过o s p f学习到的路由)
R o u t e r#s h o w i p o s p f i n t e r f a c e(显示o s p f的r o u t e r I D,a r e a I D,邻接关系等信息)
R o u t e r#s h o w o s p f(显示o s p f的r o u t e r I D,计时器等信息)
R o u t e r#s h o w o s p f n e i g h b o r s[d e t a i l](显示o s p f邻居信息,包括D R和B D R的信息)
O S P F的R o u t e r I D:
1.路由器了解O S P F网络是通过R o u t e r I D的;
2.链路状态数据库是使用R o u t e r I D来区分的;
3.默认的情况下,R o u t e r I D是使用在启用O S P F进程时路由器上活跃端口中I P地址最大的I P地址作为R o u t e r I D的;
4.如果在路由器上设置了l o o p b a c k端口,则由启用O S P F进程时路由器上活跃l o o p b a c k端口中I P地址最大的I P地址作为R o u t e r I D的;
5.可以使用r o u t e r-i d这个命令来更改O S P F的R o u t e r I D;
第四部分 O S P F的网络类型
点对点的链路:
1.通常一个串行口都是运行P P P或者H D L C的链路层封装;
2.也有可能是点到点的子接口,通常是帧中继和A T M;
3.在点到点的链路上不需要D R或者B D R;
4.O S P F对链路类型的检测是自动检测的;
5.O S P F包发送仍然是使用多播包到224.0.0.5;
多路访问的广播网络:
1.通常使用的技术就是L A N和令牌环网;
2.需要进行D R和B D R的选举;
3.只有D R和B D R才需要和全网络内的路由器形成邻接关系;
4.D R发送包使用的是多播包到224.0.0.5;
5.其他路由器发送包到D R或者B D R使用多播包到224.0.0.6;