HuaweiTechnologiesCo.,Ltd.华为技术有限公司1OSPF专题1.1OSPFRouter-ID的作用,选举规则?OSPF的Router-ID是一台路由器在自治系统中的唯一标识。OSPF的router-id可以手工指定,手工指定的router-id具有最高的优先级。命令如下:[Router]OSPF100router-id1.1.1.1如果没有通过手工指定router-id,系统会从当前接口的IP地址中自动选取一个作为路由器的router-id。其选择顺序是:优先从Loopback地址中选择最大的IP地址作为路由器的ID号,如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为路由器的ID号。为了保证router-id的稳定性,一旦通过选举产生了router-id,即使有更优的地址出现(更大的loopback或物理接口地址)、删除OSPF进程后再重新配置OSPF进程、resetOSPFprogress都不会重新选举router-id,除非作为原有router-id的IP地址本身被删除或IP地址所在接口(逻辑接口、子接口)被删除,并且resetOSPFprogress。1.2OSPF特殊区域中的默认路由下发规则?Stub区域:由于Stub区域不允许携带OSPF自治系统外部路由的4类和5类LSA泛洪到该区域(Stub区域不能有ASBR),所以Stub区域除了ABR外其他路由器都没有OSPF自治系统外部路由,为了解决该区域的路由器访问OSPF自治系统外部网络的需求,Stub区域的ABR会自动产生一条Link-id为0.0.0.0,掩码为0.0.0.0的summaryLSA(3类),并在通告到整个Stub区域。Totallystub区域:TotallyStub区域和Stub区域的不同在于TotallyStub区域除了不允许携带OSPF自治系统外部路由的4类和5类LSA防洪到该区域,也不允许携带OSPF其他区域路由的3类LSA泛洪到TotallyStub区域.为了解决Totallystub区域内的路由器访问OSPF其他区域或访问OSPF自治系统外部网络的需求,TotallyStub区域的ABR会自动产生一条Linkid为0.0.0.0网络掩码为0.0.0.0的SummaryLSA(3类),并且通告到整个Totallystub区域。NSSA区域:NSSA区域和Stub区域相比的不同在于,NSSA区域允许有ASBR路由器,NSSA区域过滤的是通过OSPF骨干区域学到的4类和5类LSA,不包括NSSA区域的ASBR学到的7类LSA.NSSA区域的ABR会自动产生一条Link-id为0.0.0.0,掩码为0.0.0.0的summaryLSA(3类),并在通告到整个NSSA区域,该缺省路由将作为NSSA区域所有路由器的网络出口。TotallyNSSA区域:TotallyNSSA区域和NSSA区域不同之处在于,TotallyNSSA不允许携带OSPF区域间的路由。TotallyNSSA区域的ABR也会自动下发一条Link-id为0.0.0.0,掩码为0.0.0.0的summaryLSA(3类),并通告到整个TotallyNSSA区域,该缺省路由将作为该区域所有路由器的网络出口。1.3OSPF特殊区域中如果存在两个ABR,那么这两个ABR都下发缺省路由,不是会形成环路吗?不会形成环路,当特殊区域中的ABR接收到同一区域ABR发来的带有默认路由的SLA时,它只会将其放入LSDB(LSADatabase)里,但不会用其计算路由,从而避免环路。如果OSPF路由器已经发布了含缺省路由的LSA,就不会再学习其它路由器发布的相同类型的缺省路由LSA(路由计算时不再计算其它路由器发布的相同类型的缺省路由LSA)。1.4如果在一个NSSA区域有两个ABR,他们都会将Type7LSA转换成Type5LSA吗?不会的,RFC3101中规定,当NSSA区域有多个ABR时,只有RouterID最大的ABR负责将Type7LSA转换成Type5LSA。1.5OSPF有哪些种路由过滤方式,这些方式的区别是什么?OSPF的路由过滤方式很多,主要有filter-policy、filter、route-policy。这几种路由过滤方式的区别主要体现在两点:1、Filter-policy和filter仅能实现路由的过滤,route-policy不仅可以实现路由过滤,还能实现给路由添加或修改标签,添加或修改优先级等等。2、OSPF的路由过滤有两种实现方式,一种是对路由表的过滤,这种方式仅对配置过滤的路由器起作用,不会阻止LSA的产生和泛洪,所以也不会影响其他路由器产生路由,Filter-policyimportOSPF属于这种方式。第二种方式是阻止LSA的产生,本机以及同区域或同自治系统的其他路由器产生相应的路由,除了filter-policyimportOSPF都属于第二种方式。1.6Virtual-link和sham-link的区别是什么?Virtual-link是为了解决OSPF的不规则区域问题而产生的,正常情况下OSPF的所有非骨干区域都要直接和骨干区域(area0)相连,如果由于前期规划问题等原因导致某个非骨干区域必须通过另一个非骨干区域来连接骨干区域的话,就要用到virtual-link。如下图所示:为了让Area2能够和骨干区域相连,需要在R3和R2之间建立一条virtual-link。OSPF的VPN配置下,PE2通过从远端PE1通过Mbgp学到的路由引入到OSPF后只能还原成3类/5类/7类LSA,如果CE之间存在后门链路,,作为公网mpls链路的备份。则在CE上通过后门链路学到的路由是区域内路由,由于从MBGP学到的路由,这样就导致了数据只能通过后门链路而不会优选MPLS链路,未解决此问题产生了sham-link,sham-link的主要作用是可以还原1类和2类LSA.1.7OSPF几种常用LSA的作用?RouterLSA(type1):每一台路由器都会产生RouterLSA,routerlsa描述了该路由器的所有链路和接口,并指明了他们的状态和每条链路出方向的cost,以及该链路上所有已知的OSPF邻居。RouterLSA只在区域内部进行泛洪。NetworkLSA(type2):NetworkLSA由DR产生,用来描述一个MA(multipleaccess)网络中所有路由器,NetworkLSA列出了MA网络中与本路由器相连的所有路由器,包括DR本身。NetworksummaryLSA(type3):此类型LSA由ABR生成,用来通告区域间的路由,传播范围是除了Totallystub和TotallyNSSA区域以外的OSPF区域。ASBRSummaryLSA(type4):由ABR产生,用来通告ASBR的位置,传播范围是除了ASBR所在区域以及stub、totallystub、NSSA、totallyNSSA区域以外的整个OSPF区域。之所以需要四类LSA是因为5类LSA在传播过程中,通告者字段始终是ASBR,所以除了本区域以外的路由器,其他区域的路由器都不知道通告者的位置。而三类LSA在传播过程中遇到ABR,通告者字段就会自动修改为ABR的router-id,所以每个区域都知道通告者的位置。四类LSA在传播过程中遇到ABR,通告者字段就会自动修改为ABR的router-id。AutonomoussystemexternalLSA(type5):由ASBR产生,用来通告到达OSPF自治系统外部目的地址或者缺省路由的LSA,传播范围是整个OSPF区域。NSSAEXTERNALLSA(TYPE7):由ASBR产生,用来通告到达OSPF自治系统外部目的地址或缺省路由的LSA,只在NSSA区域内泛洪。之所以有7类LSA是因为NSSA区域就是用来过滤远端学到的4类和5类LSA的,但是本地产生或学到的外部路由不应该被过滤,所以起了一个产生了7类LSA。1.8Stub区域和NSSA区域的区别?简单的讲就是Stub区域不能包含ASBR,NSSA区域可以包含ASBR.1.9OSPF支持多进程,那么交换机的一个接口也可以属于不同的OSPF进程吗?不能。OSPF支持多进程是指在同一台交换机上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立,不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。但是交换机的一个接口只能属于某一个OSPF进程。1.10OSPF在建立或维持OSPF邻居或邻接关系之前,需要准备哪些参数?运行OSPF协议的接口编号、发送Hello和Dead报文的时间间隔、OSPF的最大重传次数、重传LSA的时间间隔以及泛洪更新LSA的时间间隔。1.11OSPF协议路由的计算有那些过程?OSPF协议路由的计算过程可简单描述如下:a)每台OSPF设备根据自己周围的网络拓扑结构生成链路状态通告LSA(LinkStateAdvertisement),并通过更新报文将LSA发送给网络中的其它OSPF设备。b)每台OSPF设备都会收集其它路由器发来的LSA,所有的LSA放在一起便组成了链路状态数据库LSDB(LinkStateDatabase)。c)OSPF设备将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。d)每台OSPF设备根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。1.12ABR和ASBR有什么区别?ABR可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。ASBR是与其他AS交换路由信息设备,它可能是区域内路由器,也可能是ABR。只要一台OSPF设备引入了外部路由的信息,它就成为ASBR。1.13OSPF定义了哪几种网络类型?OSPF定义了四种网络类型,分别是点到点网络,广播型网络,NBMA网络和点到多点网络。点到点网络是指只把两台路由器直接相连的网络。广播型网络是指支持两台以上路由器,并且具有广播能力的网络。非广播多路访问(NBMA网络)。在NBMA网络上,OSPF模拟在广播型网络上的操作,但是每个路由器的邻居需要手动配置。NBMA方式要求网络中的路由器组成全连接。点到多点网络是将整个非广播网络看成是一组点到点网络。每个路由器的邻居可以使用底层协议例如反向地址解析协议(InverseARP)来发现。对于不能组成全连接的网络应当使用点到多点方式。点到多点网络类型不是一种默认的网络类型。1.14邻居和邻接关系的区别?OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文。收到Hello报文的OSPF路由器会检查报文中所定义的一些参数,如果双方一致就会形成邻居关系。形成邻居关系的双方不一定都能形成邻接关系。只有当双方成功交换DD报文,并交换LSA之后,才形成真正意义上的邻接关系。1.15在所有类型的OSPF网络中都会产生DR和BDR吗?不是所有网络类型都会产生DR和BDR,只有广播型网络和NBMA网络中才有DR和BDR。1.16OSPF每种报文类型各自实现什么功能?OSPF共有五种报文类型。Hello报文用于发现和维护邻居关系,在广播型网络和NBMA网络上Hello报文也用来选举DR和BDR。DatabaseDescription报文通过携带LSA头部信息描述链路状态摘要信息。LinkStateRequest报文用于发送下载LSA的请求信息,这些被请求的LSA是通过接收DD报文发现的,但是本路由器上没有的。LinkStateUpdate报文通过发送详细的LSA来同步链路状态数据库。LinkStateAck报文通过泛洪确认信息确保路由信息的交换过程是可靠的。除了Hello报文以外,其他所有报文只在建立邻接关系的路由器之间发送。1.17OSPF路由器分为几种类型?OSPF路由器根据在AS中的不同位置,可以分为四类。区域内路由器IR(Inte