HCIE技术沙龙资料整理1.docx
《HCIE技术沙龙资料整理1.docx》由会员分享,可在线阅读,更多相关《HCIE技术沙龙资料整理1.docx(11页珍藏版)》请在冰豆网上搜索。
HCIE技术沙龙资料整理1
HCIE技术沙龙资料整理part1
1OSPF
1.1OSPF形成邻接关系所经历各个阶段有何意义?
1)失效状态(Down)这是一个邻居会话的初始状态,用来指明在最近一个RouterDeadInterval的时间内还没有收到来自邻居路由器的Hello数据包。
除非在NBMA网络中的那些邻居路由器,否则,Hello数据包是不会发送给那些失效的邻居路由器的。
在NBMA网络环境中,Hello数据包是每隔PollInterval的时间发送一次的。
如果一台邻居路由器从其他更高—些的邻居状态转换到了失效状态,那么路由器将会清空链路状态重传列表、数据库摘要列表和链路状态请求列表。
2)尝试状态(Attempt)这种状态仅仅适用于NBMA网络上的邻居,在NBMA网络上邻居路由器是手工配置的。
当NBMA网络上具有DR选取资格的路由器和其邻居路由器相连的接口开始变为有效(Active)时,或者当这台路由器成为DR或
BDR时,这台具有DR选取资格的路由器将会把邻居路由器的状态转换到Attempt状态。
在Attempt状态下,路由器将使用HelloInterval的时间代替PollInterval的时间来作为向邻居发送Hello数据包的时问间隔。
3)初始状态(Init)这一状态表明在最近的RouterDeadInterval时间里路由器收到了来自邻居路由器的Hello数据包,但是双向通信仍然没有建立。
路由器将会在Hello数据包的邻居字段中包含这种状态下或更高状态的所有邻居路由器的路由器ID。
4)双向通信状态(2-Way)这一状态表明本地路由器已经在来自邻居路由器的Hello数据包的邻居字段中看到了它自己的路由器ID,这也就意味着,一个双向通信的会话己经成功建立了。
在多址网络中,邻居路由器必须在这个状态或更高状态时才能有资格被选作该网络上的DR或BDR。
如果在Init状态下从邻居路由器那里收到一个数据库描述数据包,也可以引起邻居状态直接转换到2-Way状态。
5)信息交换初始状态(Exstart)在这一状态下,本地路由器和它的邻居将建立起主/从关系,并确定数据库描述数据包的序列号,以便为数据库描述数据包的信息交换做准备。
在这里,具有最高路由器ID的邻居路由器将成为“主”路由器。
6)信息交换状态(Exchange)在这一状态下,本地路由器将向它的邻居路由器发送可以描述它整个链路状态数据库信息的数据库描述数据包。
同时,在这个Exchangc的状态下,本地路由器也会发送链路状态请求数据包给它的邻居路由器,用来请求最新的LSA。
7)信息加载状态(Loading)在这一状态下,本地路由器将会向它的邻居路由器发送链路状态请求数据包,用来请求最新的LSA通告。
虽然在Exchange状态下已经发现了这些最新的LSA通告,但是本地路由器还没有收到这些LSA通告。
8)完全邻接状态(Full)在这一状态下,邻居路由器之间将建立起完全邻接关系,这种邻接关系出现在路由器LSA和网络LSA中。
1.1.1Init会完成那些操作?
发送Hello报文
1.1.22-Way在不同的网络类型中完成那些操作?
在广播网络选举DR和BDR,广播链路中DRother处于2-Way状态。
1.1.3Exstart主要完成什么工作?
协商主从,决定确定数据库描述数据包的序列号。
如果两端MTU不匹配,则两端会卡在Exstart状态。
1.1.4Exchange主要完成什么工作?
发送链路状态完整摘要信息,进行数据库同步。
1.1.5Loading主要完成什么工作?
该过程实际上是Exchange的一个延续,Loading状态并非一定要经历。
1.2OSPF有哪些特点?
1)使用了区域的概念这样可以有效减少路由选择协议对路由器的CPU和内存的占有;划分区域还可以降低路由选择协议的通信量。
2)支持CIDR
3)支持无大小限制的、任意的度量值(打破类似RIP条数限制,实际上也是有限制的,参照LSA中metric所在字段长度就知道了)
4)支持等价负载分担(华为设备:
maximumload-balancingnumber;缺省为8,最大也为8)
5)使用保留的组播地址减少对不宣告OSPF设备的影响(这里可以讨论下224.0.0.5和224.0.0.6的区别)
6)支持安全的路由选择认证(注意:
所有的路由认证均不是对报文进行加密,而是对源的认证)
7)使用可以跟踪外部路由的路由标记(类似RIP的routertag字段)
1.2.1OSPF为何要分区域?
使用了区域的概念这样可以有效减少路由选择协议对路由器的CPU和内存的占有;划分区域还可以降低路由选择协议的通信量。
1.2.2OSPF的加密是加密整个数据包吗?
OSPF的加密实际上就是邻居的验证,邻居验证并不会加密数据包文。
1.2.3OSPF的metric有没有大小限制?
OSPF的metric是由LSA携带的,LSA中有固定的bit来表示metric,所以metric是有大小限制的。
1.2.4OSPF为什么用组播进行更新?
使用保留的组播地址减少对不宣告OSPF设备的影响,只有运行了OSPF的设备(即对OSPF流量感兴趣的设备)才会去侦听OSPF流量。
在广播网络中,DR/BDR同样会侦听组播地址224.0.0.5。
1.2.5OSPF如何跟踪外部路由?
OSPF可以为不同类型的外部路由打上不同的tag,通过tag来进行跟踪。
1.2.6OSPF虚链路有什么作用?
通过一个非骨干区域连接一个区域到骨干区域;通过一个非骨干区域连接一个分段的骨干区域两边的部分区。
虚链路属于区域0。
虚链路中LSA是永不过期的,Hello是被抑制的。
1.2.7OSPF工作在那个层次之上?
?
OSPF工作做IP之上,IP协议号是89。
1.3OSPF建立邻居条件有哪些?
1)两端路由器接口的地址掩码是否一致(根据原理,实际上只有在广播网络才是严格掩码信息的。
RFC2328原文:
onpoint-to-pointnetworksandonvirtuallinks,theNetworkMaskinthereceivedHelloPacketshouldbeignored)。
另外P2MP也会检查子网掩码,但是华为设备可以通过命令ospfp2mp-mask-ignore命令用来设置在P2MP网络上忽略对网络掩码的检查。
2)两端路由器接口所在区域性质(这里所说的区域性质比如该区域是骨干区域,还是普通区域,还是末节区域)
3)两端路由器接口的认证类型和认证信息是否一致
4)两端路由器接口的HELLO、DEAD时间间隔是否一致
5)两端路由器的MTU是否一致(这里可以提下即使两端接口配置不同的网络类型:
比如一边是点到点,另外一段是广播,邻居也是可以起的)
1.3.1HELLO报文包含那些信息?
Hello时间间隔、可选项、路由优先级、路由器无效时间间隔、指定路由器、备用路由器、邻居。
1.3.2建立邻居一定要检查子网掩码吗?
不一定,只有在BROADCAST,NBMA,P2MP网络类型是严格检查两端接口地址在同一网段的。
而PPP不需要掩码一致。
1.3.3邻居两端一定要求网络类型一致吗?
OSPF协议中并没有规定要检查链路两端的网络类型。
关于链路网络类型的描述是在TYPE1LSA中,而对于HELLO报文中并没有对此的描述,因此首先是可以建立邻居关系;然后在接下来的LSDB同步过程中也没有对网络类型的匹配进行检查,所以两端是可以建立full关系的,但是据此是否就可以说能够正常计算出路由呢?
答案是否定的:
OSPF路由器需要LSDB来构建SPT(ShortestPathTree),由于LSDB的数据库是脱节有问题的(在我的RouterLSA中,我认为你是个广播邻居;而在你的RouterLSA中认为我应该是个P2P邻居),根本无法构建正确的SPT,SPF算法也无法计算出正确的路由。
1.4OSPF支持的网络类型有哪些特点?
1)点到点网络类型:
当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。
a)在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
2)广播网络类型:
当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。
a)通常以组播形式发送Hello报文、LSU报文和LSAck报文。
其中,224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPFDR的预留IP组播地址(注意,DR和BDR也会侦听224.0.0.5)。
b)以单播形式发送DD报文和LSR报文。
3)NBMA网络类型:
当链路层协议是ATM、帧中继时,缺省情况下,OSPF认为网络类型是NBMA。
a)在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
4)P2MP网络类型:
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。
点到多点必须是由其他的网络类型强制更改的。
常用做法是将非全连通的NBMA改为点到多点的网络。
a)以组播形式(224.0.0.5)发送Hello报文;
b)以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
1.5OSPF形成邻居关系需要经历几个阶段?
每个阶段有何意义?
1)初始(down)是一个邻居会话的初始状态,用来指明在最近一个Dead间隔的时间内还没有收到来自邻居路由器的Hcllo数据包。
除非在NBMA网络中的那些邻居路由器,否则,HELLO数据包是不会发送给那些失效的邻居路由器的。
在NBMA网络环境中,HellO数据包是每隔POLLINTERVAL的时间发送一次的。
如果一台邻居路由器从其他更高—些的邻居状态转换到了失效状态,那么路由器将会清空链路状态重传列表、数据库摘要列表和链路状态请求列表。
2)尝试状态(attempt):
这种状态仅仅适用于NBMA网络上的邻居,在NBMA网络上邻居路由器是手工配置的。
当NBMA网络上具有DR选取资格的路由器和其邻居路由器相连的接口开始变为有效(Active)时,或者当这台路由器成为DR或BDR时,这台具有DR选取资格的路由器将会把邻居路由器的状态转换到attempt状态。
在attempt状态下,路由器将使用hellointerval的时间代替pollinterval的时间来作为向邻居发送hello数据包的时问间隔。
3)初始状态(init):
这一状态表明在最近的dead时间里路由器收到了来自邻居路由器的Hello数据包,但是双向通信仍然没有建立。
路由器将会在Hello数据包的邻居字段中包含这种状态下或更高状态的所有邻居路由器的路由器ID。
4)双向通信(2-way):
这一状态表明本地路由器已经在来自邻居路由器的Hello数据包的邻居字段中看到了它自己的路由器ID,这也就意味着,一个双向通信的会话己经成功建立了。
在多址网络中,邻居路由器必须在这个状态或更高状态时才能有资格被选作该网络上的DR或BDR。
如果在Init状态下从邻居路由器那里收到一个数据库描述数据包,也可以引起邻居状态直接转换到2-Way状态。
5)信息交换初始状态(ExStart):
在这一状态下,本地路由器和它的邻居将建立起主/从关系,并确定数据库描述数据包的序列号,以便为数据库描述数据包的信`急交换做准备。
在这里,具有最高路由器D的邻居路由器将成为“主”路由器。
6)信息交换状态(Exchange):
在这一状态下,本地路由器将向它的邻居路由器发送可以描述它整个链路状态数据库信息的数据库描述数据包。
同时,在这个Exchangc的状态下,本地路由器也会发送链路状态请求数据包给它的邻居路由器,用来请求最新的LSA。
7)信息加载状态(Loading):
在这一状态下,本地路由器将会向它的邻居路由器发送链路状态请求数据包,用来请求最新的LSA通告。
虽然在ExGhange状态下已经发现了这些最新的LsA通告,但是本地路由器还没有收到这些LSA通告。
8)完全邻接:
在这一状态下,邻居路由器之间将建立起完全邻接关系,这种邻接关系出现在路由器LSA和网络LSA中。
1.5.1广播网络如何选举DR/BDR有何特点?
1)在路由器和它的邻居路由器之间首先建立2-way,接着检查每台邻居路由器发送的Hello数据包的优先级、DR和BDR字段。
列出所有具有DR和BDR选取资格的路由器的列表表(也就是说,路由器的优先级要大于0,并且它的邻居状态至少要是2-way的);接着,所有的路由器将宣称自己是DR路由器(Hello数据包的DR字段是它们自身接口的地址);所有的路由也将宣称它们自己是BDR路由器(Hello数据包的BDR字段是它们自身接口的地址)。
除非没有选取资格,路由器计算时也将在这个具有选取资格路由器的列表中包括它本身。
2)从具有选取资格的路由器的列表中,创建一个还没有宣告为DR路由器的所有路由器的子集(宣告自己为DR路由器的路由器不能被选取为BDR路由器)。
3)如果在这个子集中的—台或者多台邻居路由器,它们在Hello数据包的BDR字段包含了它们自己的接口地址,那么具有最高优先级的邻居路由器将被宣告为BDR路由器。
在优先级相同的条件下,具有最高路由器ID的邻居路由器将被选作BDR路由器。
4)如果在这个子集中没有路由器宣称自己是BDR路由器,那么具有最高优先级的邻居路由器将被宣告为BDR路由器。
在优先级相同的条件下,具有最高路由器ID的邻居路由器将被选作BDR路由器。
5)如果—台或多台具有选取资格的路由器在Hello数据包的DR字段包含它们自己的接口地址,那么具有最高优先级的邻居路由器将被宣告为DR路由器。
在优先级相同的条件下,具有最高路由器D的邻居路由器将被选作DR路由器。
6)如果没有路由器宣称自己是DR路由器,那么新选取的BDR路由器将成为DR路由器。
7)如果正在执行计算的路由器是新选取的DR或BDR路由器,或者它不再是DR或BDR路由器了,那么将重复以上的2~6步骤。
其实DR/BDR选举就是“字段游戏”,DR的选举资格:
在Hello包中的DRID写的是自己的ID,BDR的选举资格:
在Hello包中的BDRID写的是自己的ID且在DRID字段写的不是自己的ID,具体选举还要看接口优先级和最高Router-id。
1.6OSPF在不同区域发布缺省路由的原则是什么?
1)普通区域:
a)缺省情况下,普通OSPF区域内的OSPF路由器是不会产生缺省路由的,即使它有缺省路由。
b)当网络中缺省路由通过其他路由进程产生时,路由器必须将缺省路由通告到整个OSPF自治域中。
实现方法是在ASBR上手动通过命令进行配置,产生缺省路由。
配置完成后,路由器会产生一个缺省ASELSA(Type5LSA),并且通告到整个OSPF自治域中。
如果ASBR上没有缺省路由,则路由器不会通告缺省路由。
2)StubArea:
a)Stub区域不允许自治系统外部的路由(Type5LSA)在区域内传播。
b)但是ABR会自动产生一条缺省的SummaryLSA(Type3LSA)通告到整个Stub区域内。
3)TotallyStubArea:
a)TotallyStub区域既不允许自治系统外部的路由(Type5LSA)在区域内传播,也不允许区域间路由(Type3LSA)在区域内传播。
b)但是ABR会自动产生一条缺省的SummaryLSA(Type3LSA)通告到整个Stub区域内。
4)NSSAArea:
a)只配置了NSSA区域是不会自动产生缺省路由的。
b)如果希望到达自治系统外部的路由通过该区域的ASBR到达,而其它外部路由通过其它区域出去。
则必须在ABR上手动通过命令进行配置,使ABR产生一条缺省的NSSALSA(Type7LSA),通告到整个NSSA区域内。
c)如果希望所有的外部路由只通过本区域NSSA的ASBR到达。
则必须在ASBR上手动通过命令进行配置,使ASBR产生一条缺省的NSSALSA(Type7LSA),通告到整个NSSA区域内。
d)ASBR产生缺省7类LSA不会在ABR上转换成5类LSA!
!
!
与cisco不同。
5)TotallyNSSAArea:
a)配置TotallyNSSA区域后,ABR会自动产生一条缺省的Type3LSA通告到整个NSSA区域内。
1.7OSPF的邻接无法形成full状态是什么原因?
1)导致无法到达2WAY状态的原因:
a)hello报文中的aredid不一致;
b)hello报文中的netmask不一致;
c)hello报文的发送间隔和超时间隔不一致;
d)hello报文的验证方式和验证key设置不一致;
e)接口配置的IP不在同一网段;(不在一个网段,不通也是可以理解的)
f)Hello报文中设置的flag标志位不一致;
g)试图通过辅助地址建立邻居关系;
h)配置的网络类型为NBMA,没有配置邻居命令或者在映射命令中没有指定broadcast参数;
i)Ospf网路类型为NBMA或Broadcast类型,但所有接口DR优先级均为0;
j)Routerid冲突;
k)系统软件bug或者硬件故障;
2)接着再分析一下无法到达FULL状态的原因:
a)两端接口的MTU设置不一致,导致DD报文无法正常交互。
b)对于BROADCAST或者NBMA网络类型而言,没有DR存在,即都是DRother,导致无法建立邻接关系并进行后续报文的交互。
3)可以到达FULL状态,但无法正常学习到路由的原因:
a)两端配置的OSPF网络类型不匹配。
1.8LSA产生:
常见的LSA都由谁产生?
这些LSA都有何作用?
ABR是否会在area0中产生TYPE4的LSA?
ABR只会在标准区域中生成TYPE4的LSA,而且目的也只是通告其他ASBR的信息。
但如果该ABR自己就是ASBR,它是不会向自己连接的标准区域发送TYPE4的LSA的,这时标准区域内的路由器是通过TYPE1LSA了解到ASBR的信息。
1.9LSA处理:
OSPF对LSA如何进行唯一性标识?
如果收到标识符相同、掩码不同的LSA5,路由器该如何处理?
1)通过LSA头部的LSID(链路状态ID)、LSTYPE(链路状态类型)、AdvertisingRouterID(通告路由器ID)来唯一地标识一个LSA。
但由于一个LSA可能同时会有多个实例,因此要标识一个最新的LSA实例,必须配合LSSequence(序号)、LSChecksum(校验和)、LSAge(老化时间)三个字段。
2)如果路由器要产生一条新的TYPE5LSA,会首先检查LSDB中是否已存在LSID一样的TYPE5LSA,如果不存在那就好办了,直接创建就完事。
如果已经存在那么采取下列原则:
比较将要新生成的TYPE5LSA的netmask长度与LSDB中已有LSA的netmask长度。
a)如果netmask_new>netmask_old,将新的LSA的LSID字段的中描述的主机位全置1,即将子网广播地址作为新生成LSA的LSID,同时netmask字段采用netmask_new,并通告出去。
b)如果netmaskk_new一个用于产生新的LSA并覆盖原有LSA,一个用于重新生成原有的LSA。
产生一个用于覆盖原有LSA的新LSA,LSID仍保持不变,LSSequence为原有LSA的Sequence+1,COST为新LSA的COST值,netmask字段采用netmask_new;另外再产生一个用于恢复原有LSA的新LSA,将LSID为原有LSA的LSID的子网广播地址,即将原有LSID的主机位置1;LSSequence为1;COST为原有LSA的COST值,netmask字段采用netmask_old。