CloudEngine12800交换机TRILL技术白皮书.docx
CIoudEngine12800系列交换机TRILL技术白皮书文档版本01发布日期20150530ITRlLL简介12原理描述52.1 TRILL基本概念62.2 TRlLL报文格式82.2.1 TRILL控制报文82.2.2 TRILL数据报文112.3 TRILL协议机制122.4 TRILL转发流程172.5 TRILLMulti-homing双active接入202.6 TRILLNSR263应用场景283.1 TRILL在数据中心的应用293.2 M-LAG在TRILL双归网络中应用294配置注意事项315配置任务概览346 SlIETRILL386.1 配置TRlLL的基本功能396.1.1 全局使能TRlLL396.1.2 在指定接口上使能TRILL416.1.3 (可选)配置TRILL的接口开销426.1.4 检查配置结果436.2 调整TRILL路由选路436.2.1 指定DesignatedVLAN436.2.2 配置TRILL负载分担446.2.3 配置RB进入过载状态456.2.4 使能TRILL组播组剪枝功能456.2.5 检查配置结果466.3 控制TRlLL网络收敛466.3.1 调整邻接故障的检测时间466.3.2 调整SNP报文和LSP报文属性47蟠邮面贬确朝肺网5i6.3.4 检查配置结果526.4 配置STP/RSTP/MSTP联动TRILL功能526.5 配置M-LAG双归接入TRlLL586.5.1 配置.DFSGroup586.5.2 酉已置peer-link596.5.3 配置绑定DFSGroup606.5.4 检查配置结果616.6 配置TRILL网关626.7 提高TRILL网络的安全性626.7.1 配置TRILL报文认证626.7.2 配置TRILL接口认证636.7.3 检查配置结果647 维护TRILL657.5 复位TRILL667.6 配置TRILLOAM668配置举例678.1 配置TRILL基本功能示例688.2 配置TRILL联动MSTP示例748.3 配置M-LAG双归接入TRlLL示例80介绍TRILL的定义及目的。定义目的1TRILL简介TRILL(TransparentInterconnectionofLotsofLinkS)是一种把三层链路状态路由技术应用于二层网络的协议。TRILL通过扩展ISJS路由协议实现二层路由,可以很好地满足数据中心大二层组网需求,为数据中心业务提供解决方案。在云计算时代,数据中心内部般采用分布式架构处理海量数据的存储、查询、搜索等相关业务。这导致服务器和服务器之间需要进行大量的集群计算,在服务器之间产生了大量的东西向流量。同时集群计算越来越多地利用虚拟机技术来实现,虚拟化的直接后果是使单位计算密度极大提升,物理服务器吞吐量将比虚拟化之前成数倍提升。另外,为了更大幅度地增大数据中心内业务可靠性、降低IT成本、提高业务部署灵活性、降低运维成本,需要虚拟机能够在整个数据中心范围内进行动态迁移。由于上述云计算下数据中心的新特点,使用传统的二层(XSTP)接入,三层汇聚/核心(路由)的层次化网络划分模型构建数据中心网络时逐渐显得力不从心。目前,业界普遍采用大二层胖树架构。为了部署一个无阻塞的大二层网络并能够实现虚拟机的任意迁移,以及适应目前不断增大的网络规模,TRILL协议应运而生。TRILL相对于传统二层协议XSTP和三层路由协议的优势如下表所示:表I-ITRlLL与XSTP对比表云计算数据中心网络要求说明TRILL网络XSTP网络虚拟机任意迁移作为云计算的核心技术之一,服务器虚拟化己经得到越来越广泛的应用。为了更大幅度地增大数据中心内业务可靠性、降低IT成本、提高业务部署灵活性、降低运维成本,需要虚拟机能够在整个数据中心范围内进行动态迁移,而不是局限在一个汇聚或接入交换机范围内进行迁移。TRILL协议部署在大二层网络,可以支持虚拟机在整个数据中心动态迁移。对于传统二层XSTP接入十三层IP路由的网络架构,如果虚拟机跨网段迁移,无法实现迁移前后的IP地址保持一致。所以只能支持虚拟机在一个网段内的迁移。无阻塞、低延迟数据转发云计算时代下的数据中心流量模型和传统运营商流量模型不同,数据中心中主要是服务器和服务器之间的东西向流量。为保证业务正常开展,需要支持网络数据的无阻塞、低延迟转发。TRlLL网络中每台设备都以自身节点作为源节点,基于最短路径算法计算到达其他所有节点的最短路径,如果存在多条等价链路,在生成单播转发表项时候能够形成负载分担。当存在多路径转发时候,能够充分利用网络带宽,网络中的每个节点都能实现线速转发。通过阻塞链路实现单路径的转发,极大的浪费了带宽,并且违背了无阻塞网络架构的思想。云计算数据中心网络要求说明TRILL网络XSTP网络网络规模大对于云计算时代下的大型数据中心,支持的服务器数量要能够达到十万甚至百万级别。为了实现无阻塞转发,网络规模要能够达到几百台甚至上千台交换机,在这种大规模组网情况下,组网协议要能够有效避免环路。网络内部的节点和链路故障时,要能够触发整网快速收敛,业务迅速恢复。另外,要求网络维护简单,方便用户业务部署。网络规模:理论上可以支持100O台左右的交换机。环路避免:引入IS-IS作为控制面协议,天生无环。收敛速度:采用路由协议生成转发表项,并且TRILL头部有hopcount字段能够允许短暂的临时环路,收敛速度能达到亚秒级。维护难度:配置比较简单,很多配置参数比如nicknameSyStemlD等都可以自动生成,多数协议参数采用缺省配置即可;其次,单播、组播统一控制协议,用户只需要维护一套协议。网络规模:有网络直径不超过7的限制,支持一百台左右设备。环路避免:通过阻塞端口破环。收敛速度:协议收敛机制设计的比较保守,收敛速度仅能达到秒级。维护难度:xSTP十三层路由的组网中单播和组播需要维护IGP、PlM等多套路由协议,维护量较大。多租户云计算时代下一个物理数据中心不再被一个租户所独享,而是可以同时被多个租户同时使用,每个租户对应一个虚拟数据中心实例,每个租户仿佛享有独有的服务器、存储、网络资源,租户之间数据流量需要进行隔离。目前TRILL标准采用VLANID作为租户标识,通过VLAN对不同租户流量进行隔离,在云计算产业和大二层组网运营处于起步阶段,VLANID的4096限制不会形成瓶颈。TRILL后续会演进到通过FineLabel来进行租户标识,FineLabel24bit,理论上能够支持16M租户规模,足够满足将来租户规模扩展性的需求。受限于VLAN数量限制,最多只支持4096的规模。云计算数据中心网络要求说明TRILL网络XSTP网络可扩展性为了适应数据中心高速发展的需要,数据中心网络需要具有良好的可扩展性。采用XSTP协议的传统二层网络,可以无缝接入TRILL大二层网络,同时TRlLL支持的网络规模较大,收敛速度较快,可扩展性比较好。网络规模受限,收敛速度较慢,可扩展性比较差。受益TRILL带来了明显的受益:大二层数据中心支持虚拟机无阻塞迁移,大大降低了网络管理的难度。TRILL设备可以和传统XSTP网络无缝连接,降低了网络升级的成本。关于本章介绍TRILL的基本原理。2.1 TRlLL基本概念2.2 TRILL报文格式2.3 TRILL协议机制2.4 TRILL转发流程2.5 TRILLMUIti-homing双active接入2.6 TRILLNSR2原理描述2.1TRILL基本概念本节介绍TRILL协议中的基本概念,如图21所示。图21大二层TRlLL组网图TRlLL网络中的设备名称RBRB(RouterBridge)指运行TRlLL协议的二层交换机。根据RB在TRILL网络中的位置,又可将其分为IngreSsRB、TranSilRB和EgreSSRB三种,分别表示报文进入TRILL网络的入节点、在TRILL网络中经过的中间节点以及离开TRlLL网络的出节点。DRBDRB(DesignatedRouterBridge)指在TRILL网络中作为中间设备被指定承担某些特殊任务的RB,它与IS-IS中的指定中间系统DlS(DesignatedIS)相对应。在TRILL广播网中,两台RB如果处于同一个VLAN(VirtualLocalAreaNetwork),在建立邻居关系时需要根据接口的DRB优先级或者MAC地址的大小来选举DRB。DRB负责与网络中每台设备进行通信,最终使整个VLAN的LSDB(LinkStateDataBase)达到一致状态,减少了多台设备两两通信带来的巨大开销。DRB完成以下工作: 当网络中存在多于两台RB时,产生伪节点LSP(LinkStatePDUs) 发送全序列号报文CSNP(COmPIeteSeqUenCeNUmberPDUs),同步LSDBo 指定DeSignaledVLAN,指定某个CaITierVLAN转发用户报文及TRlLL控制报文。 指定AF(AppointedForwarder),每个CE(CustomEdge)VLAN只能由一个RB作为AF。AFAF是被指定用来转发流量的RB,由DRB负责选举,只有AF负责转发用户流量,非AF禁止转发用户流量。如图2所示,当服务器采用双上行接入TRILL网络时,如果服务器网卡不采用负载分担的方式接入,很容易产生环路。所以需要指定一台RB作为转发用户流量的RB。TRILL中的VLAN表21TRILL中的VLANVLAN名称说明承载流量CEVLAN用以接入TRILL网络的VLAN,通常配置在TRILL网络边缘设备上。用以生成组播路由。普通以太报文。adminVLAN一种特殊的CEVLAN,用于承载TRILL网络网管流量。TRlLL网管流量。CarrierVLANTRILL网络中用于转发TRILL数据报文和协议报文的VLAN。一台RB最多可配置三个不同的CaiTierVLANo入方向上,普通以太报文在CaITierVLAN中被封装成TRILL报文,出方向匕TRlLL报文在CarrierVLAN中被解封装为普通以太报文。TRlLL数据报文和协议报文。DesignatedVLAN在网络规划中,为了实现TRlLL网络的合并或分离,可能会在TRlLL网络配置多个CalTierVLAN,但是只能由一个CaiTierVLAN负责转发TRlLL报文。这个被指定转发TRILL数据报文和协议报文的CarrierVLAN被称为DesignatedVLAN,以下简DVLANoTRILL数据报文和协议报文。NicknameNiCkname相当于IP地址,用来唯一标识一台交换机。一台RB仅支持配置一个NiCkname,且须保证NiCkname全网唯一。NiCkname具有优先级和根优先级两种属性,其主要作用分别为: 优先级主要用来在TRILL网络中解决NiCkname冲突,具体的解决办法是:1 .如果一个TRILL网络中有两台设备的NiCkname相同,则NiCkname优先级较大的被发布,较小的被抑制。2 .如果优先级相同,则比较两台RB的SyStemID,较大的被发布,较小的被抑制。 根优先级的主要作用是用来参与选举组播树根,TRlLL会选取NiCkname根优先级最大的两个RB分别作为两棵组播树的树根。端口类型TRlLL网络中交换机的端口分为以下几种: TrUnk端口:交换机之间进行互联的端口,只允许转发TRILL数据报文和协议报文,不允许转发NaIiVeEIhenlel报文。 ACCeSS端口:接入端口,链路上只收发NatiVeEIhemet报文和协议报文,不收发TRlLL数据报文。 Hybrid端口:混合端口,既可以转发TRlLL数据和协议报文,也可以转发NatiVeEthemet报文。 P2P端口:通常只有P2P类型的网络中,用于连接两台RB的接口,会设置为p2p类型。P2PPort是一种特殊的TnInkPort,所连接的交换机不进行DRB选举。缺省情况下,RB的端口为P2P端口。NET与IS-IS协议类似,TRILL协议采用网络实体名称NET(NetworkEntityTitle)来标识交换机本身的网络层信息。NET由以下三部分组成: AreaID:区域地址用来标识区域。与IS-IS不同的是,TRILL的区域地址规定为“00”。 SystemID:系统ID用来唯一标识一台主机或交换机,在设备的实现中,它的长度固定为48BiL实际应用中,SyStemlD可以自动生成也可以通过配置得到。通过命令networkentity(TRlLL)配置网络实体名称时,可以指定SyStemID的值(请保证配置的SyStemID全网唯一)。若不配置该命令,则设备会自动生成SyStemID。自动生成的SyStemID与RB的桥MAC地址相同。 SEL(Selector):作用类似IP中的“协议标识符”,不同的传输协议对应不同的SELoTRILL协议的SEL为“00”。2.2TRILL报文格式TRILL报文分为TRILL控制报文和TRILL数据报文,以下分别进行介绍。2.2.1 TRILL控制报文TRlLL协议通过在交换机之间交换控制消息来实现通信功能,本节介绍TRILL主要的控制报文。TRILL引入了IS-IS作为控制面协议,使用PDU数据包来进行控制信息处理,并对IS-ISPDU进行了扩展。TRlLLPDU的报文格式和IS-ISPDU一致,只是对TLV进行了扩展,这里仅对报文做简单介绍,报文字段详细描述请见CloudEngine12800系列交换机配置指南IP路由中的“IS-IS配置”。TRILLPDU格式TRlLL协议使用的所有PDU数据包可以归纳为3类:HELLO>LSP、SNPo在所有的TRILLPDU中,起始的8个八位组字节都是公用的,如图22所示。图2-2TRILLPDU结构图No.ofOctetsIntradomainRoutingProtocolDiscriminator1LengthIndicator1Version/ProtocolIDExtension1IDLength1RRRPDUType1Version1Reserved1MaximumAreaAddress1PDUExclusiveTLVPDU各个主要字段的含义及作用如下: IntradomainRoutingProtocolDiscriminator:域内路由选择协议鉴别符,用来标识网络层协议数据单元。 1.engthIndicator:长度标识符,用来标识该固定头部的长度。 IDLength:用来标识该路由选择域内SyStemlD的长度。 PDUType:用来标识PDU的类型。 MaximumAreaAddress:最大区域地址数,表示TRILL所允许的最大区域地址数量。目前,TRILL的区域地址只能为00。 PDUExclusive:PDU专有字段,根据PDU类型不同该字段也不同。该字段将在下文各类型PDU中介绍。 TLV:BPType/Length/Value(类型/长度/值),不同PDU类型所包含的TLV是不同的。TRILLHelloPDU格式HeIk)PDU用于建立和维持邻居关系,广播网中使LANHeIk>;非广播网络中则使用P2PHellOo它们的报文格式有所不同。广播网中的HelIOPDU格式如图23所示。图2-3LANHello格式No.ofOctetsReservedZCircuitType1SourceIDIDLengthHoldingTime2PDULength2RPriority1LANIDIDLength+1VariableLengthFieldsP2P网络中的HelIoPDU格式如图24所示。图2P2PHello格式No.ofOctetsReserved/CircuitType1SourceIDIDLengthHoldingTime2PDULength2LocalCircuitID1VariableLengthFields从图中可以看出,P2PHello中的多数字段与LANHellO相同。不同的是没有PriOrity和LANID字段,而多了一个LoCalCirCUitID字段,表示本地链路ID。TRILLLSPPDU格式链路状态报文LSP(LinkStatePDUs)用于交换链路状态信息。LSP的报文格式,如图25所示。图2-5TRlLLLSPPDU格式No.ofOctetsPDULength2RemainingLifetime2LSPIDIDLength+2SequencyNumber4Checksum2RATTOLISType1VariableLengthFieldsTRILLSNPPDU格式SNP(SequenceNumberPDUs)通过描述全部或部分数据库中的LSP来同步各LSDB(Link-StateDataBase),从而维护LSDB的完整与同步。SNP又可以分为如下两种: 全序歹IJ号报文CSNP(COmPIeteSNP):包括LSDB中所有LSP的摘要信息,从而可以在相邻交换机间保持LSDB的同步。在广播网络上,CSNP由DRB定期发送(缺省的发送周期为10秒);在点到点链路上,CSNP只在第一次建立邻接关系时发送。CSNP的报文格式如图26所示。图2-6TRILLCSNP格式No.ofOctetsPDULength2SourceIDIDLength+1StartLSPIDIDLength+2EndLSPIDIDLength+2VariableLengthFields 部分序列号报文PSNP(PartialSNP):只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。PSNP的报文格式如图27所示。图27TRILLPSNP格式No.ofOctetsPDULength2SourceIDIDLength+1VariableLengthFields2.2.2TRILL数据报文TRILL数据报文格式如图28所示。图28TRILL数据报文格式01531OuterDestinationMACAddressouterOuterSourceMACAddressr:th_rr,_tHeaderEthertype=802.1QOuterVLANTagInformation1rEthertype=TRILLVRMOp-LengthHop-CountAtdEgressRBNicknameIngressRBNicknameHeaderOptions_VInnerDestinationMACAddress八InnerFthArnAtinnerouuueivimMuuiebbJUlD”.5HeaderEthertype=802.1QInnerVLANTagInformationUEthertypeofOringinalEthernetPayloaciLOringinalEthernetPayloadPayloadNewFCSTRlLL数据报文在原始以太网报文之前添加了TRlLL头和外层以太网头。其中,TRILL头中各字段的含义如下: Ethertype:类型固定为TRILL。 V:版本号,当前为0。每个RB收到TRILL报文时都必须检查此位,若不正确则将其丢弃。 R:为扩展而保留。IngreSSRB打TRlLL头时将其设为0,TranSilRB和EgreSSRB均不关注此位。 M:多目的属性。0表示已知单播报文,1表示组播、广播或未知单播报文。 Op-Length:OPliOnS字段的长度,0表示没有OPtiOnS字段。 Hop-Count:跳数,用于防止环路。当TRILL报文的跳数为0时,RB将丢弃该报文。 EgressRBNickname:单播报文中,该字段为EgreSSRB的NiCkname。组播报文中,该字段为用于转发的组播树树根的NiCkname. IngressRBNickname:IngreSSRB的NiCknameo Options:可选字段,当OP-Length的取值为非0时才会有本字段。关于TRlLL数据报文在TRILL网络中如何转发,请参见TRlLL转发流程。2.3TRILLt办议机制利用TRnjL协议实现二层网络中RB之间的通信,需要完成以下几个步骤:1. TRlLL邻居关系的建立2. 1.SDB同步3. 路由计算TRlLL邻居关系的建立TRlLL协议通过发送Hello报文(即TRILLHenoPDU)建立邻居。由于端口模式不同,广播链路和P2P链路发送的Hello报文也有所不同,但是建立邻居的过程是相似的,图29所示为两台RB建立邻居的过程。图29TRILL邻居建立过程图RB1RB2Sys id:2222.2222.22221.1111.1111Sys id:11TRILL Hello(SyS id:Illl .1111.1111 neighbormull)neighbor RB2ReportTRILL Hello(sys id:2222.2222.2222 neighbor:RB1 )neighbor RB1DetectTRILL Hello(sys id:1111.1111.1111 neighbor:RB2 )TRILL Helloneighbor RB1ReportTRILLHello由图29可以看出,TRlLL网络中两台RB建立邻居关系的过程可以概括为:1. RBl发送TRlLLHelIo报文,RB2收到此报文后,检测到neighbor字段不包含本地MAC地址,则将自己和RBl的邻居状态标识为DeteCt;2. RB2回复TRILLHeHO报文给RBl,RBI收到该报文,检测到neighbor字段中包含了本地的MAC地址,于是将自己和RB2的邻居状态标识为RePOrt;3. RBl再次发送TRlLLHelIO报文给RB2,RB2收到这个neighbor字段包含本地MAC地址的HenO报文后,将RBl邻居状态标识为RePOrt°此时,邻居关系正式建立;4. 邻居关系建立之后,两台RB会定期发送Hello报文来维持邻居关系,如果一端连续发送3个HeHO报文而没有收到对方的应答报文,则视为邻居失效。在广播网中,为了提高收敛速度及通信效率,TRILL协议提供了以下机制:选举DRB在广播网中,任意两台RB之间都要传递信息。如果网络中有n台RB,则需要建立n*(n-1)/2个邻接关系。这使得任何一台RB的状态变化都会导致多次传递,浪费了带宽资源。为解决这一问题,TRILL协议定义了DRB,规定所有RB都只将信息发送给DRB,由DRB将网络链路状态广播出去。DRB的选举过程发生在TRILL邻居达到DeteCl状态之后。DRB的选举通过以下原则进行:1 .首先比较邻居相连接口的DRB优先级,优先级较高的被优选为DRB;2 .如果两端接口的DRB优先级相同,则比较邻居的MAC地址的大小,MAC地址较大的被优选为DRB。指定AF当未知单播流量或组播流量经过TRILL网络进行转发时,由于同一个VLAN内的流量可以广播,很容易形成环路。如图210所示,当用户A的用户组播流量通过普通二层交换机转发到TRILL网络中时,如果RBl与RB3同属一个VLAN,那么该组播流量就会同时分发到这两个RB,从而造成了环路。指定AF可以解决这个问题。AF由DRB针对CEVLAN选举而出,只有AF可以作为IngreSS和EgreSs,非AF只能作为TransitRBo如果图210中RBl被指定为AF,则用户流量由RBI负责转发,不会经过RB3,从而避免了环路。图2-10指定AF组网图AF由DRB负责指定,其选取过程为首先检查TRILL网络入口的两台RB所使能的CEVLAN,具有与用户流量相同VLAN的RB被指定为AF;如果符合条件的RB不止一台,则依据如下原则进行选取:1 .首先比较DRB优先级,DRB优先级较高的RB被选举为AF;2 .如果DRB优先级相同,则选取系统MAC地址较大的RB为AF;3 .如果系统MAC地址相同,则选取接口PorHD较大的RB为AF;4 .如果PortID相同,则选取SyStemlD较大的RB为AF。口口说明只有接入RB的TRILL端口类型为ACCeSS或Hybrid时此RB才可以被指定为AF。在广播网中,如果有两台RB的NiCkname发生冲突.则不会选取任何一台作为AF。在广播网运行过程中,如果DRB发生变化,则删除所有AF信息,并重新选举AF。 指定DVLANTRlLL网络中会存在多个Carrier-VLAN的情况,此时网络接口需要指定一个DVLAN用来转发流量CTRILL在接口上发送协议报文、转发TRILL数据流量时,外层以太头的VLAN填充为链路上的DVLAN。DVLAN可以手动配置,也可以由DRB指定。1.SDB同步DRB选举完成之后,网络中每台RB上维护的LSDB达到统一的过程,称为LSDB同步。LSDB是生成转发表的根据,因此,要实现网络中的数据流量能够正确转发,LSDB同步是必不可少的过程。不同网络类型同步LSDB的过程也不相同。 广播链路的LSDB更新过程,如图211所示。图2-11广播链路数据库更新过程1 .新加入的交换机RB3首先发送Heno报文,与该广播域中的交换机建立邻居关系。2 .邻居关系建立起来后,RB3将自己的LSP发送往组播地址:01-80-C2-00-00-41,网络上所有的邻居都将收到该LSP。3 .该网段中的DRB会把收到RB3的LSP加入到LSDB中,并等待CSNP报文定时器超时并发送CSNP报文,进行该网络内的LSDB同步。CSNP报文的发送间隔缺省值为10秒。4 .RB3收到DRB发来的CSNP报文,对比自己的LSDB数据库,发送PSNP报文请求自己没有的LSP。5 .DRB收至U该PSNP报文请求后发送对应的LSP给RB3,RB3进行LSDB的同步。在更新LSDB时,DRB做如下处理:a.DRB接收到LSP,在数据库中搜索对应的记录。若没有该LSP,则将其加入数据库,并广播新数据库内容。b.若收到的LSP序列号大于本地LSP的序列号,就替换为新报文,并广播新数据库内容。c.若收到的LSP序列号小于本地LSP的序列号,就向入端接口发送本地LSP报文。d.若两个序列号相等,则比较RemainingLifetime。若收到的LSP的RemainingLifetime小于本地LSP的RemainingLifetime,就替换为新报文,并广播新数据库内容;若收至U的LSP的RemainingLifetime大于本地LSP的RemainingLifetime,就向入端接口发送本地LSP报文。e.若两个序列号和RemainingLifeIime都相等,则比较CheCkSUm。若收到的LSP的CheCkSUm大于本地LSP的CheCkSUm,就替换为新报文,并广播新数据库内容;若收到的LSP的CheCkSUm小于本地LSP的CheCkSUm,就向入端接口发送本地LSP报文。f.若两个序列号、RemainingLifetime和CheCkSUm都相等,则丢弃该报文。P2P的LSDB更新过程,如图2/2所示。图2-12P2P链路数据库更新过程1. 建立P2P邻居之后,RBI和RB2会互相发送CSNP来同步LSDB,以RBl发送CSNP给RB2为例。RBI发送CSNP给对端,如果RB2的LSDB与CSNP没有同步,则发送PSNP请求索取相应的LSP。2. RBl将邻居请求的LSP发给邻居的同时启动LSP重传定时器,并等待邻居发送的PSNP作为收到LSP的确认。如果在接口LSP重传定时器超时后还没有收到对端发送的PSNP报文作为应答,则重新发送该LSP。3. 收到对端发送的PSNP应答报文之后,RBl做如下处理:a.若收到的LSP比本地的序列号更大,则将这个新的LSP存入自己的LSDB,再通过一个PSNP报文来确认收到此LSP,最后再将这个新LSP发送给除了发送该LSP的邻居以外的邻居。b若收到的LSP比本地的序列号更小,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。c.若收到的LSP序列号和本地相同,则比较RemainingLifetimeo若收到LSP的RemainingLifetime小于本地LSP的RemainingLifetime,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的RemainingLifetime大于本地LSP的RemainingLifetime,则直接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。d.若收到的LSP和本地LSP的序歹IJ号和RemainingLifetime都相同,则比较Checksum,若收到LSP的CheCkSUm大于本地LSP的RemainingLifelime,则将收到的LSP存入LSDB中并发送PSNP报文来确认收到此LSP,然后将该LSP发送给除了发送该LSP的邻居以外的邻居;若收到LSP的CheCkSUm小于本地LSP的RemainingLifetime,则宜接给对方发送本地的LSP,然后等待对方给自己一个PSNP报文作为确认。e.若收到的LSP和本地LSP的序列号、RemainingLifetime和CheCkSUm都相同,则丢弃该报文。路由计算当TRlLL网络中所有RB所维护的LSDB都达到一致,即实现了收敛时,各RB根据LSDB,利用SPF算法,分别进行单播转发表和组播转发表的计算。其计算过程分别为: 单播路由表生成:每台RB都以自己为根节点,生成到其他所有节点的最短路径树。结合邻居信息,获取到达邻居节点的出接口和下一跳,并根据邻居发布的NiCkname信息,生成NiCkname单播转发表。 组播路由表生成:在TRILL网络中,为了方便组播流量的传播,通常会形成不止一棵组播分发树,其形成过程如下。1 .RootRB选举:每台设备根据整网所有设备发布的NiCkname的根优先级和支持的分发树数目,获取根优先级最高的NiCkname以及整网最小的分发树数目N,拥有最高根优先级的NiCkname所属的RB被选举为ROOtRBo2 .分发树树根选举:RootRB有权指定分发树树根,如果没有指定则以NiCkname根优先级最高的N个RB为分发树树根。3 .分发树计算:分别以N个分发树树根为源节点,计算到整网所有其他节点的最短路径树。4 .RPF检查表生成:基于每个IngreSSRB通告的选择的分发树信息,生成RPF检查表,用于避免组播环路。5 .剪枝计算:基于每个IngreSSRB通告的信息,进行剪枝计算。二说明NiCkname根优先级最高的节点、分发树树根必须单播可达.因此组播路由计算需要在单播计算之后O2.4TRILL转发流程TRlLL协议通过在各个RB之间相互发送HeHO报文建立邻居,通过LSP扩散方式同步链路状态数据库。此时,网络中每台RB拥有相同的LSDB,即获取了对整网拓扑的统一认识。然后各RB以LSDB信息为基础,利用SPF算法计算本地到全网所有RB之间的最短路径以及出接口、下一跳等信息,并结合LSDB中各RB发布的NiCkname信息,最终生成NiCkname转发表。TRlLL网络接收到用户报文时,根据报文中包含的目的MAC地址,按照不同的转发流程进行转发: 如果MAC地址为已知单播地址,按照已知单播流量转发流程进行转发: 如果MAC地址为未知单播、组播或广播地址,按照未知单播、组播和广播流量转发流程进行转发。已知单播流量转发流程已知单播转发流程如图213所示,以服务器A发送消息到服务器C为例,流程如下:IngressRB4L2转发表MACIOGEIRB3RB6RBl单播转发表'RB3 LI RB2终端A二层报文DMAC: CSMAC: ATransitRBl封装为TRLL报文RB3 10GE2RB6EgressRB6单播转发表RB3L8pB3RB6,LocalMACRB5XRB3L6 RB6RB6* L6 RB6RB5转发TRlLL报文终端B终端C0GE3 jRB3RB6解封装为二层报文DMAC: CSMAC: A图2-13已知单播流量转发过程图流量转发路径1. IngressRB(RBl)收到服务器A发送的二层报文后,首先根据报文中携带的目的MAC地址,查询L2转发表,获取EgreSSNiCkname,然后根据EgreSSNiCkname查询单播转发表,最后获取到达目的RB的出接口L5和下一跳RB5,将用户报文封装为TRILL数据报文,沿出接口发送到下一跳;2. TranSitRB接收到TRlLL数据报文后,解析TRILL报文,根据EgreSSNiCkname查询单播转发表,发现目的RB是RB6,于是将报文从出接口L6转发到下一跳RB6;3. EgressRB接收到TRILL数据报文后,解析TRlLL报文,发现EgreSSNiCkname是本身,则对TRILL报文进行解封装,获取原始二层数据报文,然后根据报文中携带的目的MA