OSPF
一、             OSPF概述
1、  链路状态路由协议
快速适应网络变化,在网络发生变化时,发送触发更新,以较低的频率发送定期更新。通过LSA的洪泛,形成完整的LSDB。网络拓扑图,以自己为中心,运行SPF算法,计算到每个网络的最短路径。
邻居表:直接相连的邻接路由器(邻接关系数据库)
拓扑表:网络或区域内的其他路由器及其连接的网络。(LSDBOSPF拓扑数据库)
              路由表:前往每个目的地的最佳路径(转发数据库)
       距离矢量和链路状态:使用距离矢量路由选择协议时,路由器依赖于邻居的路由选择决策,路由器并不完全了解网络拓扑。使用链路状态路由选择协议时,每台路由器都完全了解网络拓扑,能够根据准确的网络拓扑信息独立地做出决策。
2、  OSPF区域结构
层次化结构
中转区域:将其他类型OSPF区域连接起来,快速、高效的传输IP分组。(区域0
常规区域:连接用户和资源的其他区域,标准区域、末节区域、绝对末节区域、次末节区域。
3、  SPF区域
减少了路由选择表条目、将区域内拓扑变化的影响限制在本地、将LSA扩散限制在区域内。
区域术语:骨干路由器,骨干区域,其他区域都和骨干区域相连,ABR,将非骨干区域连接到骨干区域,ABR(分隔LSA扩散区,是执行区域地址汇总的主要地方,常常是默认路由源,维护其连接的每个区域的LSDB)
4、  OSPF邻接关系
路由器通过交换Hello获得协议特定的参数发现建立邻居关系,建立邻居关系后,通过交换LSA来同步LSDB,形成完全邻接状态。点到点邻居直接成为邻接,LAN网络中,所有路由器根DRBDRfull。其他路由器之间为DROther。路由器之间的链路状态信息必须同步,LSA被扩散到整个区域。
5、  OSPF度量计算
路由器利用LSDB中的信息,使用SPF算法计算去网络中的最佳路径。每个路由器在一个区域中有着相同的链路状态数据库,以自己为根建立一个最短路径树,计算目的网络最优路径,最小cost之各,放入转发数据库。
6、  链路状态数据的结构
收到LSU后,如果LSDB中没有这样的条目,则将其加入到LSDB中,返回一个链路状态确认,此信息扩散到其他路由器,运行SPF,更新路由表;如果有这样的条目,并信息相同,怱略;有条目信息有更新,则将其加入到LSDB中,返回一个链路状态确认,此信息扩散到其他路由器,运行SPF,更新路由表;有条目,信息更旧,向发送方发新信息。
 
二、OSPF分组
1、  OSPF分组类型
Hello:发现建立维持邻居关系。DBD:检查路由器的数据库之间是否同步。LSR:向另一台路由器请求特定的链路状态记录。LSU:发送请求的链路状态信息。LSAck :对其他类型的分组进行确认
2、  OSPF包头结构
OSPFIP封装,协议号是89
              版本号:V2
              分组类型:5种中的哪一种
              分组长度:OSPF分组长度多少字节
              路由器ID:此分组谁发的
              区域ID:分组来自哪个区域
              校验和:
              身份验证类型:指出路由器是否进行认证,明文还是密文
              身份验证:
              数据:因包类型改变
                     Hello:已知邻居组列表
                     DBDLSDB摘要
                     LSR:需要的LSU类型和提供所需LSURID
                     LSU:完整LSA条目,一个更新中可有多个条目
                     LSA ck:空
3、  OSPF邻接关系的建立:hello分组
使用组播地址:224.0.0.5发送hello。路由器IDHello/dead(相同);邻居列表;区域ID(相同);路由器优先级;DR IP地址;BDR IP地址;身份验证密码(相同);末节区域标记(相同);
4、  交换hello建立邻接关系状态
路由器A启动down状态,向其接口发hello224.0.0.5,其他路由器收到检查其参数,加入邻居表中init状态。所有路由器发单播应答分组。A收到后,将邻居ID加入到邻居列表中,two-way状态。如果是多路访问网络,选DRBDR。定期交换hello,维护邻接关系,LAN 10秒、NBMA 30秒。网络类型决定了邻居如何形成邻接,点到点网络邻居自动形成邻接,多路访问网络由DR决定如何形成邻接。
5、  路由发现阶段
通过DBDLSRLSULSAck使所有OSPF路由器的LSDB完全相同(full)。形成邻接关系的路由器的状态是准启动exstart。首先通过DBD选举主从路由器,router ID高的成为主路由器,由主路由器控制DBD序号的增长。一旦有设备声称自己是从路由器,则进入exchange状态,通过LSR携带LSA头部向对方描述各自的LSDB。通过LSR携带LSA头部向对方请求相应的LSA,进入loading状态,通过LSU携带LSA进行应答,用LSAckLSU中的LSA进行确认,最终达到full状态。多路访问中,能够接受有些路由器中有two-way状态。DR通告地址为224.0.0.5,其他路由器为224.0.0.6
6、  LSA序列号
每个LSALSDB保持了序列号,32位, 0x80000001开始和结束0x7FFFFFFFLSA30分钏洪泛一次,以保持适当的数据库同步,每一次洪泛,序列号加1越大越好,当序列号到达最大,又回到0x80000001,大的序列号将会作废。
Show ip ospf database           debug ip ospf packet
 
三、配置OSPF
1、  启用OSPF进程
R1(config)#router ospf 1(进程号只在本地有作用)
       2、指定路由器上的哪些接口将参与OSPF进程以及网络所属的OSPF区域
R1(config-router)#network IP  通配符  area  X
R1(config-if)#ip ospf X area X
       3、单区域OSPF配置,多区域OSPF配置
4、路由器ID
OSPF路由器ID唯一地标识了网络中的每台OSPF路由器,进程启动时选择路由器ID,路由器是一个唯一的IP地址。选择RID:看是否配置了RID    RID(config-router)#router-id 1.1.1 .1    选最大回环口地址,选最大物理口的地址,一但选定,不能换。去掉进程,再配,配置后清进程,改后重启设备
       4、查看
              Show Ip protocols         show ip route ospf        show ip ospf interface X
              Show ip ospf         show ip ospf neighbor detail         debug ip ospf events
 
四、OSPF网络类型
       根据物理链路类型定义了不同的网络类型
       点到点:将一对路由器连接起来的网络
       广播:多路访问广播网络
       NBMA:连接的路由器超过两台,但没有广播功能,FRATMX.25都属于NBMAOSPF有五种运行模式。
       1、点到点链路:串口接口封装PPPHDLCFR ATM点到点子接口、没有DR BDR的选举、OSPF自动检测这种接口类型、OSPF包发送利用多播地址224.0.0.5
       2、多路访问一般为以太网和令牌环、选举DRBDR、所有的设备必须和DRBDR邻接、包发往DRBDR224.0.0.6、包发往其他设备为224.0.0.5
       3、选举DRBDR:组播发hello包、最高低先级的为DR。次高的为BDR、其次选RID最大、DR没有抢占、接口模式下指定优先级、优先级默认为1。值从0-255、优先级为0,不能参加DRBDR选举。只能成为DRother
       4NBMA拓扑:单一的接口连接到多个站点、拓扑为多个路由器,但不支持广播
       5DR选举在NBMA网络中:OSPF认为,NBMA像其他的广播网、DRBDR需要和其他的路由器全连接。但NBMA一般做不到、DRBDR需要一个邻居列表、邻居不能自动发现路由器
       6NBMA网络上的OSPF运行模式:符合RFC 2328兼容模式如下: 非广播( NBMA )、 点对多点、思科附加模式:点对多点非广播、广播、点对点
       选择网络类型:ip ospf network [{broadcast | non-broadcast | point-to-multipoint [non-broadcast] | point-to-point}]
       7NBMA模式:作为一个广播网络的协议(行为像一个局域网) 。所有串行端口属于同一IP子网。帧中继, X.25 ATM网络默认为非广播模式。邻居必须是静态配置。重复的LSA更新。符合的RFC 2328。(一个IP子网、必须手工指定邻居、选举DRBDRDRBDR必须与其他所有路由器都直接相连、全互联或部分互联拓扑、hello 30秒)
              配置邻居:R1(config-router)# neighbor ip-address [priority number] [poll-interval number] [cost number] [database-filter all]
RouterA(config-router)# neighbor 192.168.1.2 priority 0
RouterA(config-router)# neighbor 192.168.1.3 priority 0
              校验show ip ospf neighbor
       8、点到多点模式:一个IP 子网、使用OSPF组播hello分组来自动发现邻居、不选举DRBDR,路由器发送的LSA中包含更多有关邻接路由器的信息、通常用于部分互联或星型拓扑中。Hello 30秒。
              配置R1(config-if)#ip ospf network point-to-multipoint
              Show ip ospf interface
       9point-to-multipoint nonbroadcast思科私有:如果没有在VC上启用组播和广播,则不能使用遵循RFC的点到多点模式,因为路由器无法使用组播hello分组动态地发现邻接路由器,此时应该使用Cisco 模式,在这种情况下,必须手工指定邻居,无需选举DRBDR
       R1(config)# interface s0/1.2 multipoint   hello 30
       10point-to-point Cisco模式:每个子接口属于不同的IP子网、不选举DRBDR、用于两台路由器需要在一对接口上建立邻接关系时、接口可以是LAN接口,也可以是WAN接口。R1(config)# interface s0/1.2 point-to-point默认模式。不需要指邻居,无需选举DRBDRHello 10
       11broadcast:让WAN接口就向LAN接口,一个IP子网,使用OSPF组播hello分组来自动发现邻居、选举DRBDR,全互联或部分互联拓扑。
       查看建立邻接过程debug ip ospf adj
 
五、OSPF路由类型
       1、大型OSPF网络存在的问题:对路由器内存、CPU压力大、链路带宽的占用(LSA多,LSDB大)、生成巨大路由表,导致转发慢、无法压制内部动荡。
       解决方案:OSPF分区,把一个大的OSPF网络分成若干个小的相互独立的OSPF网络。区域内部是链路状态(LSA的洪泛不允许被阻碍),区域和区域之间的行为是距离适量
2、  路由器类型
由于区域的划分,根据路由器接口与区域的关系,具有不同的类型,行使不同的功能。
内部路由器:把所有OSPF已知的接口放入同一个区域,LSA的传输不能被该路由器阻塞,一个区域所有内部路由器LSDB完全相同。
区域边界路由器(ABR):如果路由器的接口分属于两个或两个以上的区域,用来互联两个相互隔离的区域,针对所属的区域分别维护各自独立的LSDBABR是区域和区域,外部和用户交往的入口。建议ABR只互联两个区域。
骨干路由器:至少有一个接口属于area 0 用于解决区域间问题,以防止区域间的循环。
自治系统边界路由器ASBR:用来互联OSPF网络与外部网络(非OSPF)作了重发布的路由器。
3、  虚链路virtual-link
所有区域必须和区域0有直接的物理连接(ABR必须是骨干路由器)
骨干区域发生分裂,某个区域和区域0没有直接物理连接。虚链路为物理上没有直接连接到area 0的区域创建到 area 0的逻辑连接。注意事项(虚链路必须创建在连接同一个区域的两个ABR上,其中一个ABR是骨干路由器,不能穿越stub区域)。
配置:
R1(config-router)# area 要穿越的区域 virtual-link 对方RID [authentication [message-digest | null]] [hello-interval x] [retransmit-interval x] [transmit-delay x] [dead-interval x] [[authentication-key n] | [message-digest-key n md5n]]
查看:show ip ospf                     show ip ospf virtual-link
 
一、LSA类型
1        路由器LSA           2        网络LSA              3类和4            汇总LSA
5        AS外部LSA         6        组播OSPF LSA     7               NSSA定义的
8        BGP的外部属性LSA          91011不透明LSA
       11类路由器LSA:每台路由器都生成针对其所属区域的路由器链路通告,描述了路由器连接到区域的链路的状态,只在区域内扩散。LSA的报头都是20字节
             LS age: 555 (DoNotAge)
             Options: (No TOS-capability, DC)
             LS Type: Router Links
             Link State ID: 1.1.1 .1
             Advertising Router: 1.1.1 .1
             LS Seq Number: 80000005
             Checksum: 0xB 19C
             Length: 72
             Number of Links: 4(头部)
                  Link connected to: a Stub Network一个stub 一条路由
                 (Link ID) Network/subnet number: 1.1.1 .1
                 (Link Data) Network Mask: 255.255.255.255
                 Number of TOS metrics: 0
                TOS 0 Metrics: 1
                  Link connected to: another Router (point-to-point)
                 (Link ID) Neighboring Router ID: 3.3.3 .3
                 (Link Data) Router Interface address: 192.1.1.1
                 Number of TOS metrics: 0
                TOS 0 Metrics: 64
                  Link connected to: a Stub Network
                 (Link ID) Network/subnet number: 192.1.1.0
                 (Link Data) Network Mask: 255.255.255.0
                 Number of TOS metrics: 0
                TOS 0 Metrics: 64
                  Link connected to: a Transit Network
                 (Link ID) Designated Router address: 192.2.1.1
                 (Link Data) Router Interface address: 192.2.1.1
                 Number of TOS metrics: 0
                TOS 0 Metrics: 10
还有一种是虚链路  
             Link connected to: a Virtual Link
                 (Link ID) Neighboring Router ID: 2.2.2 .2
                 (Link Data) Router Interface address: 192.4.1.2
                 Number of TOS metrics: 0
                TOS 0 Metrics: 10
       22类,网络LSADR为多路访问网络生成的网络链路通告,描述了特定多路访问网络上的一组路由器,网络链路通告在网络所在的区域内扩散。
              R4#show ip ospf database network
            OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
                Net Link States (Area 0)
            Routing Bit Set on this LSA
            LS age: 137 (DoNotAge)
            Options: (No TOS-capability, DC)
            LS Type: Network Links
            Link State ID: 192.2.1.1 (address of Designated Router)
            Advertising Router: 1.1.1 .1
      LS Seq Number: 80000002
      Checksum: 0xF55
      Length: 32
      Network Mask: /24
               Attached Router: 1.1.1 .1
               Attached Router: 2.2.2 .2
       3、汇总LSA 3
              ABR生成,将一个区域内的网络通告给OSPF AS中的其他区域。默认情况下,LSA不包含汇总路由,将通告区域所有子网。
              R4#show ip ospf database summary
            OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
                Summary Net Link States (Area 0)
                    Routing Bit Set on this LSA
                    LS age: 11 (DoNotAge)
                    Options: (No TOS-capability, DC, Upward)
                    LS Type: Summary Links(Network)
                    Link State ID: 4.4.4 .4 (summary Network Number)
                    Advertising Router: 2.2.2 .2
                    LS Seq Number: 80000001
                    Checksum: 0x317
                    Length: 28
                    Network Mask: /32
                             TOS: 0  Metric: 11
4、  汇总LSA 4类:描述了前往ASBR的路由。1LSA被限制在区域内,ABRASBR那里收到1LSA后,将向外发送一个4类汇总LSA。向其他区域通告该ASBR
R4#show ip ospf database asbr-summary
            OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
                Summary ASB Link States (Area 0)
  LS age: 139
  Options: (No TOS-capability, DC, Upward)
  LS Type: Summary Links(AS Boundary Router)
  Link State ID: 5.5.5 .5 (AS Boundary Router address)
  Advertising Router: 4.4.4 .4
  LS Seq Number: 80000001
  Checksum: 0x808D
  Length: 28
  Network Mask: /0
        TOS: 0  Metric: 10
       5、外部LSA 5类:描述了前往OSPF AS外的网络的路由,它是由ASBR发送的,被扩散到整个AS
              R4#sh ip ospf database external
            OSPF Router with ID ( 4.4.4 .4) (Process ID 1)
                Type-5 AS External Link States
                    Routing Bit Set on this LSA
                    LS age: 875
                    Options: (No TOS-capability, DC)
                    LS Type: AS External Link
                    Link State ID: 192.6.1.0 (External Network Number )
                    Advertising Router: 5.5.5 .5
                    LS Seq Number: 80000001
                    Checksum: 0x3490
                    Length: 36
                    Network Mask: /24
                             Metric Type: 2 (Larger than any link state path)
                             TOS: 0
                             Metric: 20
                             Forward Address: 0.0.0 .0
                             External Route Tag: 0
              查看show ip ospf database
       6OSPF路由选择表和路由类型
O     OSPF区域内路由(router lsanetwork lsa):路由器所在区域内的网络,以路由器LSA和网络LSA的方式被通告。
O IA OSPF区域间路由(汇总LSA):位于路由器所在区域之外但在OSPF AS内的网络,以汇总LSA的方式被通告。
              O E1 1类外部路由:位于当前AS之外的网络,以外部LSA的方式被通告。
              O E2 2类外部路由:位于当前AS之外的网络,以外部LSA的方式被通告。
       7OE1OE2
              不同在于它们计算metric的方式不同。
              OE1cost=外部cost加上分组经过的每条链路的内部成本
              OE2 cost=外部cost
       8、配置OSPF LSDB过载保护
Router(config-router)# max-lsa 进程中存储LSA的最大数量 [threshold-percentage达到最大LSA数量的多大比例发警告,默认75%] [warning-only超过只警告,默认关闭] [ignore-time 超过忽略时间默认5 分钟] [ignore-count可连续进入忽略状态的次数默认5] [reset-time 多长时间将忽略计数重置为0默认10分钟 ]
       9、修改成本度量值
Cost=100Mbits/带宽。默认OSPF成本为接口配置带宽的倒数。要操纵成本,可使用命令ospf costbandwidthauto-cost reference-bandwidth
 
七、OSPF路由汇总