请问 OSPF特殊区域中的Stub、Totally Stub、NSSA、Totally NSSA 的区别 特性 作用!
OSPF简介
4.1.1 ospf概述
开放最短路径优先协议ospf(open shortest path first)是ietf组织开发的一个基于链路状态的内部网关协议。目前使用的是版本2(rfc2328),其特性如下:
适应范围――支持各种规模的网络,最多可支持几百台路由器。
快速收敛――在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
无自环――由于ospf根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
区域划分――允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。
等价路由――支持到同一目的地址的多条等价路由。
路由分级――使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
支持验证――支持基于接口的报文验证以保证路由计算的安全性。
组播发送――协议报文支持以组播形式发送。
4.1.2 ospf协议基本原理
在不考虑区域划分的情况下,ospf协议的路由计算过程可简单描述如下:
每个支持ospf协议的路由器都维护着一份描述整个自治系统拓扑结构的链路状态数据库lsdb(link state database)。每台路由器根据自己周围的网络拓扑结构生成链路状态广播lsa(link state advertisement),通过相互之间发送协议报文将lsa发送给网络中其它路由器。这样每台路由器都收到了其它路由器的lsa,所有的lsa放在一起便组成了链路状态数据库。
lsa是对路由器周围网络拓扑结构的描述,lsdb则是对整个网络的拓扑结构的描述。路由器很容易将lsdb转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。显然,各个路由器得到的是一张完全相同的图。
每台路由器都使用spf算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由,外部路由信息为叶子节点,外部路由可由广播它的路由器进行标记以记录关于自治系统的额外信息。显然,各个路由器各自得到的路由表是不同的。
此外,为使每台路由器能将本地状态信息(如可用接口信息、可达邻居信息等)广播到整个自治系统中,在路由器之间要建立多个邻接关系,这使得任何一台路由器的路由变化都会导致多次传递,既没有必要,也浪费了宝贵的带宽资源。为解决这一问题,ospf协议定义了“指定路由器”dr(designated router)与“备份指定路由器”bdr(backup designated router),关于dr与bdr详细机制,请参见4.1.4 3. dr和bdr一节。
ospf协议支持基于接口的报文验证以保证路由计算的安全性;并使用ip多播方式发送和接收报文(224.0.0.5和224.0.0.6)。
4.1.3 ospf的基本概念
1. 路由器id号
一台路由器如果要运行ospf协议,必须存在router id。router id可以手工配置,如果没有配置router id,系统会从接口的ip地址中自动选择一个作为router id。其选择顺序是:如果配置了loopback接口地址,则选择最后配置的ip地址作为router id,如果没有配置loopback接口地址,则选择其他接口中最先配置的ip地址作为router id。
2. dr和bdr
指定路由器dr(designated router)
在多路访问网络中,如果路由器之间两两建立邻接关系,会导致在路由交换时同一个lsa在网络内部被多次重复传递,浪费了宝贵的带宽资源。为了解决这一问题,ospf协议规定,在多路访问网络中必须选举dr,网络中的路由器只和dr(以及后面提到的bdr)建立邻接关系并交换路由,两台非dr和bdr路由器之间不建立邻接关系,也不交换路由信息。
哪一台路由器会成为本网段内的dr并不是人为指定的,而是由本网段中所有的路由器共同选举出来的。
备份指定路由器bdr(backup designated router)
如果dr由于某种故障而失效,这时必须重新选举dr,并与之同步。这需要较长的时间,在这段时间内,路由计算是不正确的。为了能够缩短这个过程,ospf提出了bdr的概念。bdr实际上是对dr的一个备份,在选举dr的同时也选举出bdr,bdr也和本网段内的所有路由器建立邻接关系并交换路由信息。当dr失效后,bdr会立即成为dr。
3. 区域(area)
随着网络规模日益扩大,当一个巨型网络中的路由器都运行ospf路由协议时,路由器数量的增多会导致lsdb非常庞大,占用大量的存储空间,并使得运行spf算法的复杂度增加,导致cpu负担很重;并且,网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“动荡”之中,造成网络中会有大量的ospf协议报文在传递,降低了网络的带宽利用率。而且每一次变化都会导致网络中所有的路由器重新进行路由计算。
ospf协议通过将自治系统划分成不同的区域(area)来解决上述问题。区域是在逻辑上将路由器划分为不同的组。区域的边界是路由器,这样会有一些路由器属于不同的区域,连接骨干区域和非骨干区域的路由器称作区域边界路由器――abr,abr与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
ospf划分区域后,可以减少网络中lsa的数量,ospf的扩展性也得以增强。对于位于as边缘的一些非骨干区域,为了更多的缩减其路由表规模和降低lsa的数量,可以将它们配置为stub区域。
stub区域不能引入外部路由,为此又产生了nssa区域的概念。nssa区域中允许type7 lsa的传播。type7 lsa由nssa区域的asbr产生,当它到达nssa的abr时,就会转换成as-external lsa,并通告到其他区域。
4. 骨干区域和虚连接
骨干区域(backbone area)
ospf划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(area id)是0,通常被称为骨干区域。
虚连接(virtual link)
由于所有区域都必须与骨干区域连通,特别引入了虚连接的概念,使那些物理上和骨干区域分离的区域仍可在逻辑上保持和骨干区域的连通性。
5. 路由聚合
as被划分成不同的区域,每一个区域通过ospf边界路由器(abr)相连,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。
abr在计算出一个区域的区域内路由之后,根据聚合相关配置,将其中多条ospf路由聚合成一条发送到区域之外。
例如,图4-1中,area 19内有三条区域内路由19.1.1.0/24,19.1.2.0/24,19.1.3.0/24,如果此时配置了路由聚合,将三条路由聚合成一条19.1.0.0/16,在rta上就只生成一条描述聚合后路由的lsa。
4.1.4 ospf的网络类型
1. ospf的4种网络类型
ospf根据链路层协议类型将网络分为下列四种类型:
广播(broadcast)类型:当链路层协议是ethernet、fddi时,ospf缺省认为网络类型是broadcast。在该类型的网络中,通常以组播形式(224.0.0.5和224.0.0.6)发送协议报文。
nbma(non-broadcast multi-access,非广播多点可达网络)类型:当链路层协议是帧中继、atm或x.25时,ospf缺省认为网络类型是nbma。在该类型的网络中,以单播形式发送协议报文。
点到多点p2mp(point-to-multipoint)类型:没有一种链路层协议会被缺省的认为是p2mp类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将nbma改为点到多点的网络。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。
点到点p2p(point-to-point)类型:当链路层协议是ppp、hdlc时,ospf缺省认为网络类型是p2p。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。
2. nbma网络的配置原则
nbma网络是指非广播、多点可达的网络,比较典型的有atm和帧中继网络。
对于接口类型为nbma的网络需要进行一些特殊的配置。由于无法通过广播hello报文的形式发现相邻路由器,必须手工为该接口指定相邻路由器的ip地址,以及该相邻路由器是否有dr选举权等。
nbma网络必须是全连通的,即网络中任意两台路由器之间都必须有一条虚电路直接可达。如果部分路由器之间没有直接可达的链路时,应将接口配置成p2mp方式。如果路由器在nbma网络中只有一个对端,也可将接口类型改为p2p方式。
nbma与p2mp网络之间的区别:
nbma是指那些全连通的、非广播、多点可达网络。而点到多点的网络,则并不需要一定是全连通的。
在nbma上需要选举dr与bdr,而在点到多点网络中没有dr与bdr。
nbma是一种缺省的网络类型,点到多点必须是由其它的网络强制更改的。最常见的做法是将nbma改为点到多点的网络。
nbma用单播发送报文,需要手工配置邻居。点到多点采用组播方式发送报文。
3. dr和bdr
在广播网和nbma网络中,任意两台路由器之间都要传递路由信息。如果网络中有n台路由器,则需要建立nx(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,ospf协议定义了指定路由器dr(designated router),所有路由器都只将信息发送给dr,由dr将网络链路状态发送出去。
如果dr由于某种故障而失效,则网络中的路由器必须重新选举dr,再与新的dr同步。这需要较长的时间,在这段时间内,路由的计算是不正确的。为了能够缩短这个过程,ospf提出了bdr(backup designated router)的概念。
bdr实际上是对dr的一个备份,在选举dr的同时也选举出bdr,bdr也和本网段内的所有路由器建立邻接关系并交换路由信息。当dr失效后,bdr会立即成为dr。由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要再重新选举出一个新的bdr,虽然一样需要较长的时间,但并不会影响路由的计算。
除dr和bdr之外的路由器(称为dr other)之间将不再建立邻接关系,也不再交换任何路由信息。这样就减少了广播网和nbma网络上各路由器之间邻接关系的数量。
如图4-2所示,用实线代表以太网物理连接,虚线代表建立的邻接关系。可以看到,采用dr/bdr机制后,5台路由器之间只需要建立7个邻接关系就可以了。
4. dr/bdr的选举过程
dr和bdr不是人为指定的,而是由本网段中所有的路由器共同选举出来的。路由器接口的dr优先级决定了该接口在选举dr、bdr时所具有的资格。本网段内dr优先级大于0的路由器都可作为“候选人”。
选举中使用的“选票”就是hello报文。每台路由器将自己选出的dr写入hello报文中,发给网段上的每台运行ospf协议的路由器。当处于同一网段的两台路由器同时宣布自己是dr时,dr优先级高者胜出。如果优先级相等,则router id大者胜出。如果一台路由器的优先级为0,则它不会被选举为dr或bdr。
只有在广播或nbma类型接口才会选举dr,在点到点或点到多点类型的接口上不需要选举dr。
dr是指某个网段中概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是dr,在另一个接口上有可能是bdr,或者是dr other。
若dr、bdr已经选择完毕,当一台新路由器加入后,即使它的dr优先级值最大,也不会立即成为该网段中的dr。
dr并不一定就是dr优先级最大的路由器;同理,bdr也并不一定就是dr优先级第二大的路由器。
4.1.5 ospf的协议报文
ospf有五种报文类型:
hello报文(hello packet):
最常用的一种报文,周期性的发送给本路由器的邻居。内容包括一些定时器的数值、dr、bdr(backup designated router)以及自己已知的邻居。
dd报文(database description packet):
两台路由器进行数据库同步时,用dd报文来描述自己的lsdb,内容包括lsdb中每一条lsa的摘要(摘要是指lsa的head,通过该head可以唯一标识一条lsa)。这样做是为了减少路由器之间传递信息的量,因为lsa的head只占一条lsa的整个数据量的一小部分,根据head,对端路由器就可以判断出是否已有这条lsa。
lsr报文(link state request packet):
两台路由器互相交换过dd报文之后,知道对端的路由器有哪些lsa是本地的lsdb所缺少的,这时需要发送lsr报文向对方请求所需的lsa。内容包括所需要的lsa的摘要。
lsu报文(link state update packet):
用来向对端路由器发送所需要的lsa,内容是多条lsa(全部内容)的集合。
lsack报文(link state acknowledgment packet)
用来对接收到的lsu报文进行确认。内容是需要确认的lsa的head(一个报文可对多个lsa进行确认)。
4.1.6 ospf的lsa类型
1. 五类基本的lsa
根据前面几节的介绍可以了解,链路状态广播报文lsa是ospf协议计算和维护路由信息的主要来源。在rfc2328中定义了五类lsa,描述如下:
router-lsas:第一类lsa(type-1),由每个路由器生成,描述本路由器的链路状态和花费,只在路由器所处区域内传播。
network-lsas:第二类lsa(type-2),由广播网络和nbma网络的dr生成,描述本网段的链路状态,只在dr所处区域内传播。
summary-lsas:包含第三类lsa和第四类lsa(type-3,type-4),由区域边界路由器abr生成,在与该lsa相关的区域内传播。每一条summary-lsa描述一条到达本自治系统的、其它区域的某一目的地的路由(即区域间路由:inter-area route)。type-3 summary-lsas描述去往网络的路由(目的地为网段),type-4 summary-lsas描述去往自治系统边界路由器asbr的路由。
as-external-lsas:第五类lsa(type-5),也可以写成ase lsa,由自治系统边界路由器asbr生成,描述到达其它as的路由,传播到整个as(stub区域除外)。as的缺省路由也可以用as-external-lsas来描述。
2. 第七类lsa
在rfc1587(ospf nssa option)中增加了一类新的lsa:type-7 lsas。
根据rfc1587的描述,type-7 lsas与type-5 lsas主要有以下两点区别:
type-7 lsas在nssa区域(not-so-stubby area)内产生和发布;但nssa区域内不会产生或发布type-5 lsas。
type-7 lsas只能在一个nssa内发布,当到达区域边界路由器abr时,abr可以选择将type-7 lsas中的部分路由信息转换成type-5 lsas发布,type-7 lsas不直接发布到其它区域或骨干区域。
4.1.7 h3c s7500系列以太网交换机支持的ospf特性
在h3c s7500系列以太网交换机的实现中,支持以下ospf特性:
支持stub区域:定义了stub区域以节省该区域内路由器接收ase路由时的开销。
支持nssa区域:定义了nssa区域,以克服stub区域对于拓扑结构的限制。nssa是not-so-stubby area的简写。
支持ospf多进程(multi-process),可以在一台路由器上运行多个ospf进程。
可以和其它动态路由协议共享所发现的路由信息:在现阶段,支持将rip等动态路由协议和静态路由作为ospf的外部路由引入到路由器所属的自治系统中去,或将ospf自身发现的路由信息发布到其它路由协议中去。
授权验证字:ospf对同一区域内的相邻路由器之间可以选择明文串验证字和md5加密验证字两种报文合法性验证手段。
路由器接口参数的灵活配置:在路由器的接口上,可以配置ospf的参数包括:输出花费、hello报文发送间隔、重传间隔、接口传输时延、路由优先级、相邻路由器“失效”时间、报文验证方式和报文验证字等。
虚连接:支持创建和配置虚连接。
丰富的调试信息:提供了丰富的调试信息帮助用户诊断故障。