打鱼谋生 发表于 2010-11-14 09:51:00

ospf协议概念和工作原理(2)

<div class="t_msgfont" id="message73820">
<div id="firstpost">——前文已经提到过,在OSPF路由协议的定义中,可以将一个路由域或者一个自治系统AS划分为几个区域<br/><br/>。在OSPF中,由按照一定的OSPF路由法则组合在一起的一组网络或路由器的集合称为区域(AREA)。 <br/><br/>——在OSPF路由协议中,每一个区域中的路由器都按照该区域中定义的链路状态算法来计算网络拓扑结构<br/><br/>,这意味着每一个区域都有着该区域独立的网络拓扑数据库及网络拓扑图。对于每一个区域,其网络拓扑<br/><br/>结构在区域外是不可见的,同样,在每一个区域中的路由器对其域外的其余网络结构也不了解。这意味着<br/><br/>OSPF路由域中的网络链路状态数据广播被区域的边界挡住了,这样做有利于减少网络中链路状态数据包在<br/><br/>全网范围内的广播,也是OSPF将其路由域或一个AS划分成很多个区域的重要原因。 <br/><br/>——随着区域概念的引入,意味着不再是在同一个AS内的所有路由器都有一个相同的链路状态数据库,而<br/><br/>是路由器具有与其相连的每一个区域的链路状态信息,即该区域的结构数据库,当一个路由器与多个区域<br/><br/>相连时,我们称之为区域边界路由器。一个区域边界路由器有自身相连的所有区域的网络结构数据。在同<br/><br/>一个区域中的两个路由器有着对该区域相同的结构数据库。 <br/><br/>——我们可以根据IP数据包的目的地地址及源地址将OSPF路由域中的路由分成两类,当目的地与源地址处<br/><br/>于同一个区域中时,称为区域内路由,当目的地与源地址处于不同的区域甚至处于不同的AS时,我们称之<br/><br/>为域间路由。 <br/><br/>OSPF的骨干区域及虚拟链路(Virtual-link) <br/><br/>——在OSPF路由协议中存在一个骨干区域(Backbone),该区域包括属于这个区域的网络及相应的路由器<br/><br/>,骨干区域必须是连续的,同时也要求其余区域必须与骨干区域直接相连。骨干区域一般为区域0,其主<br/><br/>要工作是在其余区域间传递路由信息。所有的区域,包括骨干区域之间的网络结构情况是互不可见的,当<br/><br/>一个区域的路由信息对外广播时,其路由信息是先传递至区域0(骨干区域),再由区域0将该路由信息向其<br/><br/>余区域作广播。 <br/><br/>——在实际网络中,可能会存在backbone不连续的或者某一个区域与骨干区域物理不相连的情况,在这两<br/><br/>种情况下,系统管理员可以通过设置虚拟链路的方法来解决。 <br/><br/>——虚拟链路是设置在两个路由器之间,这两个路由器都有一个端口与同一个非骨干区域相连。虚拟链路<br/><br/>被认为是属于骨干区域的,在OSPF路由协议看来,虚拟链路两端的两个路由器被一个点对点的链路连在一<br/><br/>起。在OSPF路由协议中,通过虚拟链路的路由信息是作为域内路由来看待的。下面我们分两种情况来说明<br/><br/>虚拟链路在OSPF路由协议中的作用。 <br/><br/>1.当一个区域与area0没有物理链路相连时 <br/><br/>——前文已经提到,一个骨干区域Area 0必须位于所有区域的中心,其余所有区域必须与骨干区域直接相<br/><br/>连。但是,也存在一个区域无法与骨干区域建立物理链路的可能性,在这种情况下,我们可以采用虚拟链<br/><br/>路。虚拟链路使该区域与骨干区域间建立一个逻辑联接点,该虚拟链路必须建立在两个区域边界路由器之<br/><br/>间,并且其中一个区域边界路由器必须属于骨干区域。 <br/><br/>——在上面所示的例子中,区域1与区域0并无物理相连链路,我们可以在路由器A及路由器B之间建立虚拟<br/><br/>链路,这样,将区域2作为一个穿透网络(Transit-network),路由器B作为接入点,区域1就与区域0建<br/><br/>立了逻辑联接。 <br/><br/>2.当骨干区域不连续时 <br/><br/>——OSPF路由协议要求骨干区域area0必须是连续的,但是,骨干区域也会出现不连续的情况,例如,当<br/><br/>我们想把两个OSPF路由域混合到一起,并且想要使用一个骨干区域时,或者当某些路由器出现故障引起骨<br/><br/>干区域不连续的情况,在这些情况下,我们可以采用虚拟链路将两个不连续的区域0连接到一起。这时,<br/><br/>虚拟链路的两端必须是两个区域0的边界路由器,并且这两个路由器必须都有处于同一个区域的端口。 <br/><br/>——在上面的例子中,穿过区域1的虚拟链路将两个分为两半的骨干区域连接到一起,路由器A与B之间的<br/><br/>路由信息作为OSPF域内路由来处理。 <br/><br/>——另外,当一个非骨干区域的区域分裂成两半时,不能采用虚拟链路的方法来解决。当出现这种情况时<br/><br/>,分裂出的其中一个区域将被其余的区域作为域间路由来处理。 <br/><br/>残域(Stub area) <br/><br/>——在OSPF路由协议的链路状态数据库中,可以包括AS外部链路状态信息,这些信息会通过flooding传递<br/><br/>到AS内的所有OSPF路由器上。但是,在OSPF路由协议中存在这样一种区域,我们把它称为残域(stub <br/><br/>area),AS外部信息不允许广播进/出这个区域。对于残域来说,访问AS外部的数据只能根据默认路由(<br/><br/>default-route)来寻址。这样做有利于减小残域内部路由器上的链路状态数据库的大小及存储器的使用<br/><br/>,提高路由器计算路由表的速度。 <br/><br/>——当一个OSPF的区域只存在一个区域出口点时,我们可以将该区域配置成一个残域,在这时,该区域的<br/><br/>边界路由器会对域内广播默认路由信息。需要注意的是,一个残域中的所有路由器都必须知道自身属于该<br/><br/>残域,否则残域的设置没有作用。另外,针对残域还有两点需要注意:一是残域中不允许存在虚拟链路;<br/><br/>二是残域中不允许存在AS边界路由器。 <br/>6.OSPF协议路由器及链路状态数据包分类 <br/><br/>6.1 OSPF路由器分类 <br/><br/>——当一个AS划分成几个OSPF区域时,根据一个路由器在相应的区域之内的作用,可以将OSPF路由器作如<br/><br/>下分类: <br/><br/>——内部路由器:当一个OSPF路由器上所有直联的链路都处于同一个区域时,我们称这种路由器为内部路<br/><br/>由器。内部路由器上仅仅运行其所属区域的OSPF运算法则。 <br/><br/>——区域边界路由器:当一个路由器与多个区域相连时,我们称之为区域边界路由器。区域边界路由器运<br/><br/>行与其相连的所有区域定义的OSPF运算法则,具有相连的每一个区域的网络结构数据,并且了解如何将该<br/><br/>区域的链路状态信息广播至骨干区域,再由骨干区域转发至其余区域。 <br/><br/>——AS边界路由器:AS边界路由器是与AS外部的路由器互相交换路由信息的OSPF路由器,该路由器在AS内<br/><br/>部广播其所得到的AS外部路由信息;这样AS内部的所有路由器都知道至AS边界路由器的路由信息。AS边界<br/><br/>路由器的定义是与前面几种路由器的定义相独立的,一个AS边界路由器可以是一个区域内部路由器或是一<br/><br/>个区域边界路由器。 <br/><br/>——指定路由器—DR:在一个广播性的、多接入的网络(例如Ethernet、TokenRing及FDDI环境)中,存<br/><br/>在一个指定路由器(Designated Router),指定路由器主要在OSPF协议中完成如下工作: <br/><br/>——指定路由器产生用于描述所处的网段的链路数据包—network link,该数据包里包含在该网段上所有<br/><br/>的路由器,包括指定路由器本身的状态信息。 <br/><br/>——指定路由器与所有与其处于同一网段上的OSPF路由器建立相邻关系。由于OSPF路由器之间通过建立相<br/><br/>邻关系及以后的flooding来进行链路状态数据库是同步的,因此,我们可以说指定路由器处于一个网段的<br/><br/>中心地位。 <br/><br/>——需要说明的是,指定路由器DR的定义与前面所定义的几种路由器是不同的。DR的选择是通过OSPF的<br/><br/>Hello数据包来完成的,在OSPF路由协议初始化的过程中,会通过Hello数据包在一个广播性网段上选出一<br/><br/>个ID最大的路由器作为指定路由器DR,并且选出ID次大的路由器作为备份指定路由器BDR,BDR在DR发生故<br/><br/>障后能自动替代DR的所有工作。当一个网段上的DR和BDR选择产生后,该网段上的其余所有路由器都只与<br/><br/>DR及BDR建立相邻关系。在这里,一个路由器的ID是指向该路由器的标识,一般是指该路由器的环回端口<br/><br/>或是该路由器上的最小的IP地址。 <br/><br/>6.2 OSPF链路状态广播数据包种类 <br/><br/>——随着OSPF路由器种类概念的引入,OSPF路由协议又对其链路状态广播数据包(LSA)作出了分类。<br/><br/>OSPF将链路状态广播数据包共分成5类,分别为: <br/>类型1:又被称为路由器链路信息数据包(Router Link),所有的OSPF路由器都会产生这种数据包,用于<br/><br/>描述路由器上联接到某一个区域的链路或是某一端口的状态信息。路由器链路信息数据包只会在某一个特<br/><br/>定的区域内广播,而不会广播至其它的区域。 <br/><br/>——在类型1的链路数据包中,OSPF路由器通过对数据包中某些特定数据位的设定,告诉其余的路由器自<br/><br/>身是一个区域边界路由器或是一个AS边界路由器。并且,类型1的链路状态数据包在描述其所联接的链路<br/><br/>时,会根据各链路所联接的网络类型对各链路打上链路标识,Link ID。表一列出了常见的链路类型及链<br/><br/>路标识。 </div></div>
<script type="text/javascript">function forumhottag_callback(data){ tags = data; }</script>

<script src="cache/hottags_forum_cache_jsonp.txt" type="text/javascript"></script>

jianghe56 发表于 2010-12-6 19:10:00

学习了
页: [1]
查看完整版本: ospf协议概念和工作原理(2)