
OSPF路由协议详解.ppt
81页O S P FOSPF概述•IETF开发:开放式最短路径优先协议,基于链路状态的内部网关协议•核心思想SPF,Dijkstra算法•IP协议号89,IPv4协议使用OSPFv2IPv6协议使用OSPFv3•支持无类域间路由CIDR和可变长子网掩码VLSMs•支持手工汇总,明文和MD5认证•触发更新与增量更新,周期更新1800s•管理距离110,只支持等价负载均衡•组播更新,224.0.0.5和224.0.0.62024/9/7OSPF术语•Router-ID•度量值cost•链路状态•OSPF区域•邻居与邻接•DR和BDR2024/9/7邻居表的建立2024/9/7拓扑表的建立2024/9/7路由表的建立•列出通过SPF算法计算出的到达每个相连网络的最佳路径2024/9/7我就主要讲的两点内容:1.邻接关系建立过程2.DR/BDR邻接关系建立过程R1R2F0/0:12.12.12.1/30Lookback0 :1.1.1.1F1/0:12.12.12.2/30Lookback0 :2.2.2.2两台路由器IP地址都已经配置完成,R2的配置如下:router ospf 1router-id 2.2.2.2network 2.2.2.0 0.0.0.255 area 0network 12.12.12.0 0.0.0.3 area 0接着在两台路由器之间的线路启用Wireshark进行抓包……9邻接关系的过程仅宣告R2上面的网段,发现定时的出现一组hello包:可以看到源地址是12.12.12.2 ,而目的地址是224.0.0.5(多播地址)10邻接关系的过程点击打开其中的一个包:打开ospf中的内容,第一个是ospf头部,第二个是hello包,第三个是LLS数据块11邻接关系的过程头部有版本号,信息类型,长度,源地址,区域ID,包校验和,身份验证类型和身份验证12邻接关系的过程üHello Interval (hello间隔:指的是路由器发送hello的时间间隔,单位为秒,在多路访问网路上默认为10秒)üDead Interval (失效间隔:指的是多长时间内未收到邻居的分组时将认为它已失效,单位为秒,默认为hello间隔的4倍)ü 邻接路由器的这些定时器值必须相同,否则将不会建立邻接关系13邻接关系的过程介绍了以上内容,宣告R1上的网段:R1:Router ospf 1router-id 1.1.1.1network 1.1.1.0 0.0.0.255 area 0network 12.12.12.0 0.0.0.3 area 0R1R214邻接关系的过程15邻接关系的过程点击打开第一个深红色的包(R2发给R1):R1R2Hello带有Active Neighbor字段HelloInitInit16邻接关系的过程点击打开第一个深红色的包(R2发给R1):R1R2Active Neighbor:用来存储路由器在某个ospf接口上发现的邻居,初始的hello没有该字段。
17邻接关系的过程点击打开第一个深红色的包(R2发给R1):R1R2Hello带有Active Neighbor字段HelloInitR1收到拆开发现自己的ID18邻接关系的过程第二个深红色的hello包(R1发给R2):R1R2HelloInitHello带有Active Neighbor字段TWO-WAYTWO-WAY19邻接关系的过程R1R2HelloInitHello之后如果链路类型为广播网络,则开始DR/BDR的选举DR/BDR与LSA链路状态上的其他路由器都建立邻接关系后路由器之间才能交换链路状态信息TWO-WAYTWO-WAY选举DR/BDR之后,路由器处于预启动(exstart)状态……20邻接关系的过程21邻接关系的过程点开黑色报文,R1发给R2:这是个DBD报文DBD就是数据库描述报文,在OSPF协议数据报中属于类型2的报文作用:用来描述LSDB中的LSA22邻接关系的过程打开DBD部分:MTU:最大传输单元建立邻接关系MTU必须匹配在预启动(ex-start)状态下,协商路由器与DR和BDR之间的主从关系(master/slave)在交换过程中,路由器ID大的路由器为主路由器üI(Init):若是init为1,则表示正在协商主从关系üM(More):M位如果是1,则表示这不是最后的一个DBD,后续还有DBD包待发送üMS(Master/Slave):如果MS为1, 则表示路由器为Master23邻接关系的过程R2发给R1的第一个DBD报文:而Router-ID大的为主路由器……24邻接关系的过程25邻接关系的过程R1发给R2的第二个DBD报文:R1R2DBDexstartExchangeDBDexstartDBD26邻接关系的过程R2发给R1的第二个DBD报文:R1R2DBDExstartExchangeDBDExstartDBDDBDExchange27邻接关系的过程R1发给R2的第三个DBD报文:R1R2DBDExchangeDBDExchangeDBDLoading28邻接关系的过程R2发给R1的第三个DBD报文:R1R2DBDExchangeDBDExchangeDBDDBDLoading29邻接关系的过程30邻接关系的过程在Loading状态下,双方发送LS请求R2发送给R1的LS Request:OSPF协议数据报中属于类型3的报文LSR:用于请求缺少的LSA信息31邻接关系的过程R1发给R2的LS Update:OSPF协议数据报中属于类型4的报文LSU:用于发送完整的LAS32邻接关系的过程R1R2LSRLSULSRLoadingLSULoading当OSPF接口上所有的待请求的LAS全部收到更新后,它会将邻居置为Full33邻接关系建立过程•邻居建立的4个必要条件R1R21.Hello包2.Death周期3.区域ID4.认证密码需一致邻接关系的七个状态1.down:邻居会话的原始状态;2.init:初始状态,但双方通信还没有建立;3.2-way:双向通信状态,本地路由器收到来自邻居路由器的hello包中的ActiveNeighbor字段看到自己的RID,双向通信建立,选举DR;4.Exstart:信息交换初始化(预启动状态),本地路由器和它的邻居确定主/从关系,具有最高RID的路由器将成为“主”路由器;5.Exchange:信息交换状态,本地路由器和邻居之间交换LSA的DBD(数据库描述信息);6.Loading:信息加载状态,本地路由器和邻居之间交换LSA;7.Full:完全邻接状态,本地路由器何邻居之间建立完全邻接关系,这种邻接关系出现在路由器LSA和网络LSA中。
DR/BDRüDR---Designated Router(指定路由器)R2R1R3DR(网络中断…)R4üBDR---Backup Designated Router(备份指定路由器) 为什么要选举DR/BDR ?DR/BDRüDR---Designated Router(指定路由器)R2R1R3R4üBDR---Backup Designated Router(备份指定路由器) 假 设 没 有DB/BDR …DR/BDR DR/BDR选举规则DR/BDRü接口优先级数字越大越优先(优先级为0不能参与DR的选举)üRouter ID越大越好 ü稳定压倒一切(非抢占) ü通过控制接口优先级是控制DR选举的好办法üDR的选举是基于接口的,如果说某个路由器是DR,这种说法是错误的注意 !!DR/BDRü只有在广播或NBMA类型接口才会选举DR,在点到点或点到多点类型的接口上不需要选举DR üDR是某个网段中的概念,是针对路由器的接口而言的ü当DR/BDR已经选取完毕,就算一台具有更高优先级的路由器变为有效,也不会替换已选取的DR/BDR成为新的DR/BDR我就主要讲的两点内容是:1.五类数据包2.六种不同的LSA类型五类数据包1.HELLO数据包: 编号为1的OSPF数据包 •用于发现、维持(Neighbors)关系,及DR和BDR选举•Hello数据包是用来建立和维护邻接关系的,为了形成邻接关系,Hello数据包所携带的一些参数必须和它的邻居保持一致,否则对方收到会丢弃。
•用来协商的参数包括:掩码、hello时间间隔(默认10s),死亡时间间隔(默认四倍hello间隔)、还有可选字段等•此外,Hello数据包还会携带源路由器的ID,如果没有换回口,则选IP最大的;区域ID,认证字段,路由器优先级,DR和BDR等内容,当有邻居的时候,还会携带邻居字段•(hello数据包会维持init和twoway两个状态,当收到对方的hello包里的邻居字段里没有自己时,则为init状态,当发现对方的hello包里的邻居字段里有自己时,则进入twoway状态,标志邻居关系建立,即可以发送数据库描述数据包了)(如果是MA网络,在twoway状态下要选举DR和BDR)44•2、链路状态数据库描述数据包(DBD)• 该数据包在链路状态数据库交换期间产生,主要作用有三个: •(1)选举交换链路状态数据库过程中的主从关系 •(2)确定交换链路状态数据库过程中的初始序列号 •(3)交换所有的LSA数据包头部 •3、链路状态请求数据包 (LSR)• 用于请求在DBD交换过程中发现的本路由器中没有的或已过时的LSA包细节 45• 4、链路状态更新数据包(LSU)• 用于将多个LSA泛洪,也用于对接收到的链路状态更新进行应答。
•5、链路状态确认数据包(LSAck) • 用于对接收到的LSA进行确认如果发送确认的路由器的状态是DR或者BDR,确认数据包将被发送到OSPF路由器的组播地址224.0.0.5 • 如果发送确认的路由器状态不是DR或者BDR,确认将被发送到OSPF路由器组播地址224.0.0.6 46• OSPF 5种类型数据包中的4种都封装了LSA或与LSA相关的信息,也可以理解为它们是在完成对LSA的操作OSPF是基于链路状态算法的路由协议,所有对路由信息的描述都是封装在LSA中发送出去的LSA头部格式如图13.2所示六种不同的LSA类型不常用的LSA:lType6.GroupMembershipLSA分组成员LSA,描述多播OSPF包的多播分组成员信息lType8.ExternalattributesLSAforBGP外部属性LSA,是被提议作为运行内部BGP协议的另一种选择,以便用来传送BGP协议的信息穿过一个OSPF域这个LSA从来没有在大范围部署过,IOS也未支持该LSA。
lType9-11.OpaqueLSA不透明LSA,用作通用LSA,以方便扩展OSPF常用LSA:lType1.路由器LSAlType2.网络LSAlType3.网络汇总LSAlType4.ASBR汇总LSAlType5.自治系统外部汇总LSAlType7.NSSA外部LSA511类LSA:路由器LSA• ROUTER LSA描述了路由器物理接口所连接的链路或接口,指明了链路的状态,代价等.• 每个OSPF区域内的路由器均回产生第一类LSA.它让路由器彼此认识彼此的链路 接口等.只在产生的区域内泛洪.521类LSA链路类型和链路ID链路类型链路类型描述描述链路链路ID字段的内容字段的内容1到另一台路由器的点到点连接邻居路由器的ID2到中转网络的连接DR的接口地址3到末节网络的连接IP网络/子网号4虚链路邻居路由器的ID另外,1类LSA指出了每条链路的OSPF开销以及路由器是不是ABR或者ASBR532类LSA:网络LSA• 2类LSA是为区域中每个中转的广播域或NBMA网络生成的中转网络至少与两台OSPF路由器直接相连。
• 中转链路的DR负责通告网络LSA,网络LSA随后被扩散到区域内所有的路由器• 2类LSA不会跨越区域边界进行转播,其链路状态ID为通告它的DR的IP接口地址543类LSA:网络汇总LSA•汇总LSA由ABR生成,它将一个区域内的网络通告给OSPF自治系统中的其他区域•3类LSA只在一个区域内扩散,但是ABR会重新生成3类LSA以便将其扩散到其他区域554类LSA:ASBR汇总LSA•仅当区域中有ASBR时,ABR才会生成4类LSA•4类LSA表示ASBR,并提供一条前往该ASBR的路由前往外部自治系统的数据流要求路由表包含有关通告外部路由的ASBR的信息•链路状态ID为ASBR的路由器ID565类LSA:自治系统外部汇总LSA•5类LSA描述了前往OSPF自治系统外的网络的路由它由ASBR发送并扩散到整个AS577类LSA:NSSA外部LSA•7类LSA只能出现在NSSA中,它是由NSSA的ASBR生成的,而NSSA ASBR将其转换为5类LSA并在OSPF域中传播58不同区域LSA的流向示意图我就主要讲的四点内容是:1.特殊区域2.网络类型3.汇总及默认路由4.虚链路及认证特殊区域•Standard(标准区)•Backbone(骨干区)•Stub(末节区域)•Totallystubby(完全末节区域)•NSSA(次末节区域)•TotallyNSSA(完全次末节区域)标准区和骨干区•Standard(标准区):即为图中Area1和Area2,默认的区域类型,它接收链路更新、汇总路由和外部路由;•Backbone(骨干区):即为图中Area0,其他区域都与之相连以交换路由信息,该区域具有标准区域的所有特征;area2CO-1CO-2area1ABR area0 ABR 末节区域•Stub(末节区域):它不接收4类汇总LSA和5类外部LSA,但接收3类汇总LSA,即不接受关于自治系统外部的路由信息,如来自非OSPF路由器的路由,其使用默认路由到到AS外部网络(自动生成),该区域不包含ABR(除非ABR也是ASBR);area2CO-1CO-2area1 stubABR area0 ABR 10.1.1.0/24LSA 4、、5默认路由*IA完全末节区域•Totallystubby(完全末节区域):它不接收3类、4类汇总LSA和5类外部LSA,即不接受关于自治系统外部的路由信息以及来自同自治区域内的其他区域的路由汇总,使用默认路由到AS外部网络(自动生成),该区域不包含ABR(除非ABR也是ASBR);area2CO-1CO-2area1 stubABR area0 ABR 10.1.1.0/24LSA 3、、4、、5默认路由*IA次末节区域•NSSA(次末节区域):它不接收4类汇总LSA和5类外部LSA,但接收3类汇总LSA且可以有ASBR,使用默认路由前往外部网络,默认路由是由与之相连的ABR生成的,但默认情况下不会生成,要让ABR生成默认路由。
area2 nssaCO-1CO-2area1ABR area0 ABR ASBR 10.1.1.0/24LSA 4、、5LSA 7LSA 7LSA 5完全次末节区域•TotallyNSSA(完全次末节区域):它不接收3类、4类汇总LSA和5类外部LSA且可以有ASBR,使用默认路由到AS外部网络,默认路由是自动生成的area2 nssaCO-1CO-2area1ABR area0 ABR ASBR 10.1.1.0/24LSA 3、、4、、5LSA 7LSA 7LSA 5特殊区域区域类型区域类型是否接受区是否接受区域内的路由域内的路由是否接受来自其是否接受来自其他区域的路由他区域的路由是否接受外是否接受外部路由部路由是否可包是否可包含含ASBR是否是是否是Cisco专用专用标准是是是是否骨干是是是是否末节是是否(使用域间默认路由)否否绝对末节是否(使用域间默认路由)否(使用域间默认路由)否是NSSA是是否(使用域间默认路由)是否绝对NSSA是是(使用域间默认路由)否(使用域间默认路由)是是特殊区域1、23、457骨干区域有有有不存在标准区域有有有不存在末节区域有3有/4没有(自动生成0/0的默认路由)没有不存在完全末节区域有都没有(自动生成0/0的默认路由)没有不存在NSSA(次末节区域)有3有/4没有(需要手动配置默认路由)没有有完全NSSA有都没有(自动生成0/0的默认路由)没有有网络类型•点到点连接网络Point-to-PointLinks•广播多路访问网络MultiaccessBoradcastNetwork•非广播多路访问网络NBMA•点到多点连接网络Point-to-multipointLinks网络类型•其接口类型一般运行什么?•是否可以自动发现接口类型?•有没有DR或BDR的选举需要?•如何建立邻居关系?•默认的hello间隔和dead间隔分别是多少?点到点连接网络Point-to-PointLinks•点到点连接的接口一般是运行PPP或者HDLC(点到点协议或者高级数据链路控制协议)•OSPF自动发现接口的网络类型•没有DR或BDR的选举需要。
•OSPF数据包通过组播地址224.0.0.5发送•默认的hello间隔和dead间隔分别是10s和40sR1R2R3广播多路访问网络MultiaccessBoradcastNetwork•一般LAN技术不外乎是以太网和令牌环网(Ethernet和Token-ring)•OSPF会自动发现邻居的接口类型•需要选举DR和BDR•自动发现邻接对象,所有邻居只有通过DR和BDR路由器形成邻接关系DR通过组播地址224.0.0.6接受数据包;DR使用组播地址224.0.0.5发送数据包•默认的hello间隔和dead间隔分别是10s和40sDR BDR 非广播多路访问网络NBMA•NBMA网络是指那些能够支持多台路由但不具备广播能力的网络(帧中继和ATM和X.25)•该网络环境下需要手工指定接口的网络类型•需要选举DR和BDR•不能自动的发现邻居网络节点,手工设置邻居地址•默认的hello间隔和dead间隔分别是30s和120s•一个接口连接多个站点R2FrameRelay202.101.100.2/24100.1/24100.3/24DLCI 201DLCI 203DLCI 102DLCI 302R1R3点到多点连接网络Point-to-multipointLinks•点到多点模式适用于NBMA网络•该网络环境下需要手工指定接口的网络类型。
•该网络环境不需要选举DR,只有一个单一的子网被使用•OSPF数据包通过组播发送,自动发现邻居•默认hello间隔和dead间隔分别为30s和120sR2202.101.100.2/24100.1/24100.3/24R1R3网络类型网络类型HELLO/DEAD间隔时间间隔时间选举选举BR、、BDR邻居建立方式邻居建立方式能否自动识别能否自动识别接口类型接口类型点到点连接10s/40s不选举BR、BDR自动配置邻居能广播多路访问10s/40s选举BR、BDR自动配置邻居能非广播多路访问30s/120s选举BR、BDR手动配置邻居不能点到多点连接30s/120s不选举BR、BDR自动配置邻居不能网络类型OSPF汇总及默认路由汇总:•汇总的好处•汇总的两种形式•汇总的命令默认路由:•默认路由的作用•默认路由的命令汇总的好处:•减小路由表•将网络变化带来的影响局限在本区域•减小LSA3和LSA5的扩散•节省cpu资源汇总的两种形式:•在ABR上汇总•在ASBR上汇总汇总命令:•area+区域号+range+汇总网段+子网掩码(ABR上的汇总)•summary-address汇总网段+子网掩码(ASBR上的汇总)汇总注意!!!默认路由作用:默认路由作用:由于区域限制,使LSA信息有些不能流通使,这时用默认路由使区域内路由器到达想要去的地方。
默认路由的命令:默认路由的命令:•iproute0.0.0.00.0.0.0area+区域号•default-informationoriginatealways(用以产生一个5类LSA)默认路由注意!!!虚链路及认证虚链路•虚链路的作用•虚链路的命令认证•认证的类型•认证的方式•认证的命令虚链路虚链路的作用•使与骨干区域没有直接连接的标准非骨干区域进行连接,另外虚链路不可以穿越多个区域、不能穿越末节区域•在虚链路上,HELLO包10s更新一次,LSA是30min才更新一次虚链路的命令•area1virtual-link(对端router-ID)认证认证的类型•明文认证发送密码进行认证,而MD5认证发送的是报文摘要认证方式•可以在链路上进行,也可以在整个区域内进行认证认证命令(1)明文认证接口认证:ip ospf authentication-key passwordip ospf authentication区域认证:ip ospf authentication-key passwordarea area-id aauthentication(2)MD5接口认证:ipospfmessage-digest-keykey-idmd5keyipospfauthenticationmessage-digest区域认证:ipospfmessage-digest-keykey-idmd5keyareaarea-idaauthenticationmessage-digest谢 谢。












