OSPF四种网络类型:Broadcast:一般为以太网,组播发送协议报文,选举DR、BDRNBMA:FR、ATM等链路层协议;虽然跨接口,但是都在同一网段Point-to-Point:PPP,不选举DR/BDR,把两端端口的类型配置为P2P方式,可以加快协议收敛,因为不需要再选举DR/BDR了Point-to-Multipoint:手动改成的,多播hello包自动发现邻居,不选DR/BDROSPF五种网络交互报文:Hello报文:发现及维持邻居关系,选举DR,BDR周期性发给邻居路由器,使用组播224.0.0.5,DR/BDR使用组播224.0.0.6;间隔时间:广播网络10s,dead-timer40s;点到点30s。DD报文:本地LSDB的摘要内容包括LSDB中每条LSA的摘要;用来确定Exchang阶段的主从关系(空DD报文)。LSR报文:向对端请求本端没有或对端的更新的LSA包括本端向对端申请的LSA的摘要LSU报文:向对方发送其需要的LSA内容是多条LSA(完整内容)LSAck报文:收到LSU之后,进行确认(是对LSA的确认)内容是多条LSA的报文头OSPF七种协议状态:Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常和RouterDeadInterval间隔相同。Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居要被包含在自己所发送的Hello报文的邻居列表中。2-WayReceived:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和邻居建立邻接关系则进入ExStart状态,开始数据库同步过程,如果不能与邻居建立邻接关系则进入2-Way。2-Way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建立邻接关系以前的最高级状态。1-WayReceived:此事件表示路由器发现自己没有在邻居发送Hello报文的邻居列表中,通常是由于对端邻居重启造成的。ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。Loading:相互发送LSRequest报文请求LSA,发送LSUpdate通告LSA。Full:两路由器的LSDB已经同步。DR选举:1,首先参选的各方都要进入2-way阶段,具有选举资格的路由器列入列表(若无具有选举资格的则停留在2-way状态);2,Hello报文做选票(在Hello报文中标出自己所认为的DR),所有路由器刚开始都认为自己是DR,也都认为自己是BDR;3,优先级最大当选,优先级相同,则routerid(loopback地址)最大当选。先选举BDR,再选DR(华为设备刚好相反)4,选举成功后,新加入路由器,不重新选举。(最先初始化的两台路由器成为DR和BDR)DD字段解释:InterfaceMTU:在不分片的情况下,此接口最大可发出的IP报文长度。I(Initial):当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。M(More):当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。MS(Master/Slave):当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,RouterID大的一方会成为Master。当值为1时表示发送方为Master。DDSequenceNumber:DD报文序列号,由Master方规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。主从双方利用序列号来保证DD报文传输的可靠性和完整性。注:在Master/Slaver选举中,RID大者优先。OSPF报文头:OSPF直接运行于IP协议之上,使用IP协议号89。所有的OSPF报文使用相同的OSPF报文头部。Version#:OSPF协议号,应当被设置成2。Type:OSPF报文类型,OSPF共有五种报文。TYPE类型:5种类型Hello,DD,LSR,LSU和LSAck。Packetlength:OSPF报文总长度,包括报文头部。单位是字节。RouterID:生成此报文的路由器的RouterID。AreaID:此报文所属的区域。AuType:验证此报文所应当使用的验证方法。AuType:0无需认证,1明文认证,2密文认证,4保留Authentication:验证此报文时所需要的密码等信息。LSA报文头:每个LSA头部都20个字节。每个LSA由LSType,LinkStateID以及AdvertisingRouter三个值来唯一区分;通过LS老化,LS序列号以及LS校验和来识别哪个LSA是最新的。多种OSPF报文可以携带LSA。LSage:此字段表示LSA已经生存的时间,单位是秒。LStype:此字段标识了LSA的格式和功能。LinkStateID:此字段是该LSA所描述的那部分链路的标识。例如RouterID等。AdvertisingRouter:此字段是产生此LSA的路由器的RouterID。LSsequencenumber:此字段用于检测旧的和重复的LSA。LStype,LinkStateID和AdvertisingRouter的组合共同标识一条LSA。七种LSA报文解读(重点):Router-LSA由每个路由器生成,描述了路由器的链路状态和花费,传递到整个区域(type1)--区域内各个路由器生成关于自己各个接口所连网段的链路状态信息,并发送给本区域的DR和BDR,由DR对这些信息进行汇总。1、描述区域内部与路由器直连的链路的信息(包括链路类型,Cost等)2、所有链路信息放在一个LSA里进行描述3、Type1LSA只在区域内部扩散4、LSA中会标识路由器是否是ABR(Bbit置位),ASBR(E比特置位)或者是Vlink(V比特置位)的端点5、LSA中会标识路由器所支持的Option功能标记(如E)Network-LSA由DR生成,描述了本网段的链路状态,传递到整个区域(type2)--DR汇总各个路由器所发的LSA,汇总后发给区域内的各个路由器。列出区域内每个网段的信息及该网段上所连路由器的地址。1、描述TransNet(包括Broadcast和NBMA网络)网络信息2、由DR生成,描述其在该网络上连接的所有路由器以及网段掩码信息3、Type2LSA只在区域内部扩散4、Type2LSA的意义在于:发现拓扑以及进行SPF计算时,整个Multi-Access网络会浓缩成一个节点(伪节点)5、OSPF路由器根据type1和type2计算出区域内的路由,满足负载均衡条件就可以生成等价路由。Net-Summary-LSA由ABR生成,描述了ABR到某区域外AS内的某一网段的路由的费用,传递到自己区域内,供其它路由器计算最佳路由(type3)--通告某一区域的某个网段以及ABR到该网段的花费(包括通告该路由的路由器),可对路由信息进行汇总。1、由ABR生成,将所连接区域内部的链路信息以子网的形式扩散到邻区域,会扩散到邻区域所有路由器;路由器根据type3计算区域间路由,下一跳指向发布type3的路由器的routerid,最终根据区域内路由迭代出直连路由,如果区域内路由到该routerid是负载均衡的,那么就能生成等价路由;2、Type3LSA实际上就是将区域内部的Type1(lsid为主机地址)/Type2(lsid为网段地址)的信息收集起来以路由子网的形式扩散出去,这就是SummayLSA中Summay的含义(注意这里的summary与路由聚合没有关系)每个接口网段生成一个Type3LSA???3、ABR收到来自同区域其它ABR传来的Type3LSA(不一定是另外一个区域的,只要是自己没有生成的)后重新生成新的Type3LSA(AdvertisingRouter改为自己)后继续在整个OSPF系统内扩散,Type3LSA的扩散本质上属于DV行为;4、ABR收到的Type3LSA与自己生成的相同,此LSA不做计算(避免环路)注:针对Type3LSA,生成路由的规则:自己是ABR,会首先针对这个区域生成相应的Type3,此时收到其它ABR发过来Type3LSA:a)如果是相同的Type3(即自己已经生成了),则只保留、不生成路由,也不生成新的Type3,因为区域内路由优先于区域间路由;b)如果没有生成过,则重新生成一个新的Type3,继续传递,同时生成路由,指向原ABR。自己非该区域的ABR,收到多个ABR生成的Type3,则分别生成区域间路由参与竞争,如果cost相同,就可以进行负载均衡了。注意路由器与ABR出现多条直连链路的情况,多个OSPF邻居都可以建立,每个邻居关系也会收到type3,但由于生成的type3都一样,所以实际上只看到一个,不过计算出来的区域间路由,则可能是多条路由迭代的??????5、如果Type3LSA来自不同的AREA,那么即使cost相同,也不会形成负载均衡,我司设备的实现是:最新到来的Type3LSA最终生效,包括最后配置的,及最近undoshutdown的。解决方法:创建vlink,使骨干区域的路由可以以Type1LSA方式引入路由器,从而达到负载均衡的目的。type5路由被认为都是来自area0的,所以不受该规则影响。6、如果是ABR,那么其对于type3/4路由,就只学习从骨干区域过来的type3/4路由(张延新),从非骨干区域邻居传递过来的type3/4路由,只要其认为自己还是ABR,就不会学习。如果area0内存在处于FULL的邻居,则该area0不能通过非骨干区域的type3LSA学习路由。否则可以。(顾德访)注:ABR的判断原则:配置了包括骨干区域的多个区域,且骨干区域内至少有一个端口的OSPF邻居状态处于FULL状态。其通过在其type1报文中置位相应位,告知同区域邻居其地位。Asbr-Summary-LSA由ABR生成,描述了到ASBR的路由,传递到相关区域(type4)---路由信息--若某个区域存在一个ASBR,则发布一条type4报文指出该ASBR的routerid以及ABR到该ASBR的花费。1、由ABR生成,格式与Type3相同,描述的目标网络是一个ASBR的RouterID2、Type4LSA的触发条件为:ABR收到一个Type5LSA3、Type4LSA的意义在于让区域内部路由器知道如何到达ASBR(Type5LSA是在整个OSPF系统内扩散的,AdvertisingRouter始终为ASBR)4、每个ABR在收到type5时都会在各个区域生成一个type4。5、自己就是asbr的话,不会生成指向自己的type4;AS-External-LSA由ASBR生成,描述了到AS外部的路由,传递到整个AS(STUB区域除外)(type5)--引入的外部路由网段及ASBR到该网段的花费,另外还有公布的FA,即下一跳地址(若为0.0.0.0则表示为本ASBR)1、由ASBR生成,描述OSPF系统外部的路由信息,一般为引入的其他协议的路由;2、Type5LSA一旦生成,将在整个OSPF系统内扩散(StubTotal-StubNSS