• 一、OSPF (Open Shortest Path First开放式最短路径优先):是一个内部网关协议 (interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)的路由器之间。OSPF 采用链路状态技术,路由器互相发送直接相连的链路信息和它拥有的到其它路由器的链路信息。每个OSPF 路由器维护相同AS拓扑结构的数据库,从这个数据库里,构造出最短路径来计算出路由表,当拓扑结构发生变化时,OSPF 协议能迅速重新计算出路径,而只产生少量的路由协议流量。此外所有的OSPF 路由选择分组的交换都是经过验证的。
  • 二、ospf的特点:
    • 1.适应范围广:支持各种规模的网络,可支持几百台路由器。
    • 2.快速收敛:网络拓扑结构发生变化立即发送更新报文,使这一变化在AS内同步。
    • 3.无自环:OSPF 根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
    • 4.支持区域划分:允许自治系统(AS)的网络被划成区域来管理,从而减少占用了网络的带宽。
    • 5.支持等价路由:支持到同一目的地址的多条等价路由。
    • 6.支持路由等级划分:四类不同的路由,从优先顺序来说依次使区域内路由、区域间路由、第一类外部路由、第二类外部路由。
    • 7.支持验证:支持基于接口的报文验证,以保证报文交互和路由计算的安全性。
    • 8.支持组播发送:在某些类型的链路上可以以组播地址形式发送组播报文,减少对其他设备的干扰。
  • 三、理解AS:是一组使用相同路由协议交换路由信息的路由器,又称为路由域。
    • 在OSPF 中 只有同一的AS的路由器才会相互的交换链路状态信息,在同一个AS 中,所有的路由器维护一个相同的AS 结构描述的数据库(存放的是路由域中相应链路的状态信息)。OSPF 可以将AS 划分成多个小区域,每个OSPF 路由器只在区域内部学习完整的链路状态信息。
  • 四、理解area :因为OSPF 中的路由器必须在 LSDB (链路状态数据库)中保持其他每个路由器的LSA(链路通告),所以LSDB 比较大,为了减小 LSDB 的大小,降低SPF 运算的系统资源,减少路由条目,OSPF 允许被划分成多个连续的网络组,这就是区域(Area)
    • 一个区域内的网络报文LSA只向区域内内部的路由器泛洪,而不会向区域外部的路由器泛洪。一个路由器如果连接了多个区域,在区域内部的网络可以用汇总路由通过(Summary-LSA)向区域外通告,也就是一个多个的LSA以一个大的网络LSA形式进行通告。
  • 五、OSPF 网络路由器类型:
    • (1)内部路由器(internet Router):当一个OSPF 的路由器上所有直连的链路(路由器上的接口)都处于一个区域,不直接与其他区域相连时。内部路由器上只运行其所属区域的OSPF 运算法则,仅生成区域内的路由表项。
    • (2)区域边界路由器(Area Border Router):当一个路由器有多个接口,其中至少有一个与其他区域相连时。区域边界路由器的各接口运行与其他区域定义的OSPF 运算法则,具有相连的每一个区域的网络结构数据。
    • (3)AS 边界路由器 ( Autonomous System Boundary Router):与AS 外部的路由器互相交换路由信息的OSPF 路由器。该路由器在AS 内部通告其得到的AS外部路由信息。
    • (4)骨干路由器:(Backbone Router) :至少有一个接口定义为属于骨干区域的路由器。任何一个与骨干区域互连的 ABR 或者 ASBR 也将成为骨干路由器。
  • 六、OSPF的工作过程:OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,再选举DR/BDR ,(如果是点对点网络,则不会参与DR /BDR 的选举,直接成为邻接关系)邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。  OSPF 路由信息 默认的更新时间为 30min。
  • 七、五种报文:
    • ospf 协议报头格式:
      • (1) vsersion :版本字段,占 1 字节,指出所采用的OSPF 协议版本号,最高版本为4 (对应的二进制为 0100)
      • (2) packet Type:标识对应报文的类型。分别由五种报文。
      • (3) Packet Length:包长度字段,占两个字节。是指整个报文(包括OSPF报头部分和后面各报文内容部分)的字节长度。
      • (4)Router ID : 路由器ID字段,占 4个字节,指定发送报文的源路由器ID。
      • (5)Area ID :区域ID 字段 ,占4个字节,指定发送报文路由器所对应的ospf 区域号。
      • (6)Checksum:校验和字段 ,占 2个字节,是对整个报文(包括 ospf 报头和各报文具体内容,但不包括下面的Authentication 字段)的校验和,用于对端路由器校验报文的完整性和准确性。
      • (7) AuType:认证类型字段,占两个字节,指定所采用的认证类型,0为不认证,1为进行简单认证,2采用md5 方式认证。
      • (8)Authentication:认证字段,占8个字节,具体指根据不同认证类型而定,认证类型为不认证时,此字段为空,认证类型为简单认证时,此字段为认证密码,认证类型为md5 时,此字段为md5 摘要消息。
    • Hello报文:建立并维护邻居关系。  每10秒发送一次,建立维持邻居关系的时间是40s,关系建立失败时,40s后清除邻居路由 ,选举 DR和BDR
      • (1)Network Mask :4 个字节,发送hello 报文接口所在的子网掩码.
      • (2)HelloInterval :2个字节,指定发送hello 报文的时间间隔,默认为10s。
      • (3)Options :1 个字节, 可选项,包括E,允许泛洪AS-external-LAS ;MC: 允许转发 ip 组报文 ,N/P :允许处理Type 7 LSA ;DC: 允许处理按需链路。
      • (4)Rtr Pri :1个字节, 指定DR 的优先级,默认为1,设为0 ,则表示本路由器不参与DR/BDR 选举。
      • (5)RouterDeadInterval : 4个字节,指定路由器的失效时间为40s,如果在此时间内没有收到邻居路由发来的hello 报文,则认为邻居路由器已失效。
      • (6)Designated Router :4个字节,指定DR的接口ip 地址。
      • (7)Backup Designated Router : 4个字节,指定BDR 的接口IP地址。
      • (8)Neighbor :4个字节 ,指定邻居路由器的RID,可以指定多个邻居路由器RID.
    • DBD 报文 (数据描述分组):链路状态数据库描述数据包,互相发送各自的LSDB。
    • LSR报文(链路状态请求):路由器收到DBD 报文后,知道对端路由器哪些LSA 是本路由器的LSDB没有、或者失效的,就需要发送LSR ,相对方请求需要的LSA
    • LSU报文(链路状态更新):发送对端所需要的LSA
    • LSACK:收到LSU报文后确认该报文
    • 注意:OSPF是一种链路状态型路由协议,路由与路由不会传输路由条目。只会传输LSA(共有11种)。路由器收到LSA通过OSPF路由协议的算法计算得出路由表。
  • 八、三个阶段:
    • 邻居发现:通过发送Hello报文形成邻居关系。 
    • 路由通告:邻居问发送链路状态信息形成邻接关系。 
    • 路由计算:根据最短路径算法算出路由表。 
  • 九、四张表:
    • 邻居表:主要记录形成邻居关系路由器。 
    • 链路状态数据库:记录链路状态信息。 
      • 查看命令:R1#show ip ospf database
    • OSPF路由表:通过链路状态数据库得出。
      • show ip ospf  
    • 全局路由表:OSPF路由与其他比较得出。
      • 查看命令:show ip route
  • 十、邻居表;
    • 查看邻居表的命令:
      • R1#show ip ospf neighbor
      • Neighbor ID     Pri   State           Dead Time   Address         Interface
      • 2.2.2.2            0   FULL/ -        00:00:30    12.1.1.2         Serial0/0
    • 邻居关系是为了传输路由条目.邻居关系统的维持.(邻居关系状态)--------hello包
    • 邻居关系
      • Down state(失效状态):未检测到活动邻居
      • Init state (初始状态):路由器添加对方的id 到邻居表
      • Two-way (双向状态):各自在邻居表中看到了对方的iD,建立了邻居关系
      • Exstart state (预启动状态):确认Master (主路由器)BD 和 BDR 路由器的关系。
      • Exchange state (交换状态):交换各自链路状态数据库的汇总。
      • Loading (加载状态):交换LSR和LSU 得到更详细的信息。
      • Full (完全邻接):收到邻居发送的LSU更新和同步拓扑数据库后达到完全邻接关系。
    • 开启ospf adj 的debug 调试查看邻居关系状态
      • R1#debug ip ospf adj
      • R1(config)#interface f0/0
      • R1(config-if)#shutdown
    • 等什么时候开启来: 邻居关系不存在的时候开启接口. 就可以查看邻居关系
    • R1#undebug all  关闭debug功能.
  • 十一、OSPF的ROUTER-ID标识:ospf区域内唯一表示路由器的IP地址
    • 运行了OSPF路由协议的路由器要与其它运行OSPF路由协议的路由器之间要通信首要拥有标识符(身份证)。
    • 标识符(身份证):就一个IP地址,因为一个网络里面地址没有冲突。
    • 标识符的选举:1:如果一台路由器有回环口,选则回环口最大的IP地址作为标识符。2:如果没有回环口则选则物理端口最大的IP地址作为本路由器的标识符。
    • 手工配置标识符:
    • R1#show ip ospf
    • Routing Process "ospf1" with ID 1.1.1.1
    • R1(config)# router ospf 1
    • R1(config-router)# router-id 3.3.3.3
    • Reload or use "clear ip ospf process" command, for this totake effect
    • R1#clear ip ospf process
    • Reset ALL OSPFprocesses? [no]: yes
  • 十二、路由重分布:
    • 解决问题:解决不同路由协议之间相互同步路由条目。
    • 静态路由  RIP  EIGRP   OSPF 。
    • 重发布哪里配置:在不同路由协议之间相交的三层路由设备上进行配置。
    • 配置路由重分布:位于不同协议相交的路由器上进行配置.
      • 1.将OSPF路由条目导入到rip
        • R3(config)# router rip
        • R3(config-router)# redistribute ospf 1metric 1
        • 只要向rip中导入路由条目不管是什么协议的路由条目都设置metric 1
      • 2.将其他协议的路由条目导入ospf
        • (config)# router ospf 1
        • R3(config-router)# redistribute rip subnets
        • 只要向OSPF中导入路由条目都subnets
      • 3.将将其他协议的路由条目导入到EIGRP中.
        • R3(config)# router eigrp 1
        • R3(config-router)# redistribute rip metric 100 100 100 100 100
        • 只要向EIGRP中导入路由条目都metric 100 100 100 100 100
      •  
      • 4.将静态路由协议导入到OSPF
        • R3(config)# router ospf 1
        • R3(config-router)# redistribute static subnets (只将 static 网段 导入到 ospf ,没有它的静态路由的直连网段)
        • R3(config-router)# redistribute connected  subnets (将 直连网段导入 ospf)
        •  
      • 5.如何将动态路协议导入到静态路由>只需要在运行静态路由协议的路由器上配置一条默认路
    •  
  • 十三.OSPF 的认证
    • 解决问题:保证OSPF路由学习的安全性
    • A:区域认证(在哪些设备上去配置:XXX)
      • 1.  明文认证:
        • R2(config)# router ospf 1
        • R2(config-router)# area 1authentication
        • R2(config-router)# exit
        • R2(config)# interface s serial  1/0 0
        • R2(config-if)# ip ospfauthentication- - key cisco
      • 2.  密文认证:MD5
        • R1(config)# router ospf 1
        • R1(config-router)# area 1authentication message-digest
        • R1(config-router)# exit
        • R1(config)# interface serial  1/1
        • R1(config-if)# ip ospfmessage-digest-key 1 md5 cisco
    • B:接口认证(在哪些接口上去配置:XXX)
      • 1.  明文认证:
        • R1(config)# interface s erial  1/1
        • R1(config-if)# ip ospfauthentication
        • R1(config-if)# ip ospfauthentication-key cisco
      • 2.密文认证:MD5
        • R1(config)# interface serial  1/1
        • R1(config-if)# ip ospf authentication message-digest
        • R1(config-if)# ip ospf message-digest-key 1 md5 cisco
        • R1(config-if)#
  • 十四. DR和BDR
    • DR ( Designated Router):指定路由器。
    • BDR(Backup Designated Router):备份指定路由,当DR 失效后,BDR 接替DR 的工作。
    • DROther (Designated Router Other):区域内不是DR 也不是 BDR 的路由器。
    • 工作的过程:当区域中的路由器 有路由更新时,DR Other 路由器不会向其他 DR Other 发送自己的LSU,只会向224.0.0.6这个组播地址发送,有这个地址 把DR Other 发来的LSU 组播给 DR /BDR ,在DR / BDR 收到从224.0.0.6 发过来的LSU 后又把 LSU 发个 224.0.0.5 这个组播地址,224.0.0.5 再把 LSU 泛洪到 所有的 DR Other 路由器上。
    • 采用DR 和 BDR 的作用:1.有效的利用网络带宽资源, 2. 是提高LSU的信息发送效率。
    • DR/BDR的选举规则:
      • 默认情况下:1:如果有回环口,选择回环口最大的IP地址的路由器作为本网的DR。2:如果没有回环口,会选择物理端口最大的IP的路由器作为本网的DR.  3:端口优先级。(优先级越大越优先 (0-255);改为0则不参与DR和BDR选举. 不支持强占。)
      • 修改优先级的命令:
        • Router(config)#interfacef0/0
        • Router(config-if)#ip ospf priority 0
    • 以ethernet、fastethernet和 GigabitEthernet的接口的路由器会产生DR/BDR的选举
      • NBMA多路访问网络(才会产生DR/BDR的选举)
    • 串口(不会产生DR/BDR的选举)
      • Router#show ipospf nei
      • Neighbor ID PriState Dead Time Address Interface
      • 1.1.1.2 0 FULL/ - 00:00:38 1.1.1.2 Serial0/3/0
    • 查看的邻居的路由器信息:Router#show ipospf neighbor  
    • DR(指定路由器)和 BDR(备份指定路由器) 的作用:
      • 当以上情况下随着路由器增加。它的邻居数量会越来越多。为了减少邻居关系统数量。出现了DR/BDR/DROTHER. 在以上这个网络里面,会选则一个DR。再选则一个BDR.其它路由器都成为DROTHER.  DROTHER与DR建立邻居关系。而DROTHER与DROTHER之间不会建立邻居关系统。 而BDR只是DR一个备份。当DR损坏。BDR接管DR的工作。成为DR.
    • DR和BDR之间是full
    • DR和DRother之间是full
    • BDR和DRother之间是full
    • DRother之间是two-way
  • 十五.OSPF LSA 类型:
    • (1)Type 1 :路由器LSA (Router LSA)
      •  路由器LSA (第一类通告)可由区域内所有路由器产生,并且只能在本在区域内泛洪通告。路由器 LSA 描述了路由器物理接口所连接得到链路或接口,指明了链路的状态、开销等参数,第一类 LSA 只在产生的区域内泛洪。
    • (2)Type 2 :网络 LSA (Network LSA)
      • 网络LSA (第二类通告)是由DR 或者BDR 产生的,报文包括DR和BDR 连接路由器的链路信息,描述了一个多路访问网络所有相连的路由器,第二类的LSA 只在产生的区域内泛洪。
    • (3)Type 3 :网络汇总LSA (Network Summary LSA)
      • 网络汇总LSA (第三类通告)是由ABR 产生的,报文包通知本区域内的路由器通往区域外的路由信息。在一个区域外部但是仍然在一个ospf 自治系统内部的默认路由也可以通过这种LSA 通告。
      • 如果一台ABR 路由器经过骨干路由器从其他的ABR 路由器收到多条网络汇总,那么这台始发的ABR 路由器会选择这些LSA 通告中代价最低的LSA ,并且将这个LSA 的最低代价通告给与他相连的非骨干区域。
    • (4)Type 4:ASBR 汇总 LSA (ASBR Summary LSA)
      • ASBR 汇总LSA(第四类通告) 也是由 ABR 发出的,但它是一条主机路由,即指向ASBR 路由器地址的路由。
    • (5)Type 5 :自治系统外部LSA ( Autonmous System External LSA)
      • 自治系统外部LSA (第五类通告)是由 ASBR产生的,告诉相同 自治系统的路由器通往外部自治区的路径。自治系统外部 LSA 是唯一不和具体的区域相关联的 LSA 通告,将在整个自治系统中进行泛洪。
    • (6)Type 6 :组成员 LSA (Group Membership LSA )
      • 不支持组播OSPF 协议,这类通告不做具体介绍。
    • (7) Type 7 :NSSA 外部 LSA (NSSA External LSA )
      • NSSA 外部 LSA (第七类通告)是由ASBR 产生的,内容和 LSA 5 几乎相同,但NSSA 外部 LSA 通告 仅在始发这个NSSA 外部LSA 通告的非纯STUB区域 内部 进行泛洪。
      • 注意:在 NSSA 区域 中,当有一个路由器是 ASBR 时,不得不产生LSA 5 报文,但是 NSSA 中不能有 LSA 5 报文,所有的ASBR 产生 LSA 7 报文,发送给 本区域的路由器,只有一个例外,每台 ABR 路由器 利用一个类型 3 来通告默认路由。
    • (9)Type 9 :在本地理链路范围进行泛洪。
    • (10)Type 10:在本地区范围进行泛洪。
    • (11)Type 9 :在一个自治系统范围进行泛洪。
  • 十六、链路状态协议:是根据接口状态(接口带宽)来影响metric值。
    • cost计算公式:10^8/接口带宽
    • 计算规则:METRIC是路由条目传递方向,经过所有路由器的入接口的COST总和。
    • COST的修改:
    • 链路状态协议:在传输路由条目的时候不是直接传输的网络,而是直接输的lsa1 lsa2 lsa3 lsa4 lsa5 lsa7
    • Metric为我们做什么?
    • 同一协议如果从源到目的有多条路径可以进行选择,选择metric最小的路径来进行传递路由。
    • 如果两条或多条路径metric一样。会进行负载均衡。
    • 验证负载均衡:
  • 抓包分析:
  • 接口COST的查看
    • Router#show ip ospf interface loopback 1
    • Loopback1 is up, line protocol is up
    • Internet address is 3.3.3.3/24, Area 0
    • Process ID 1, Router ID 3.3.3.3, Network Type LOOPBACK, Cost: 1
    • Loopback interface is treated as a stub Host
    • 计算规则:METRIC是路由条目传递方向,经过所有路由器的入接口的COST总和。
    • COST的修改:
    • Router(config)#interface loopback 1
    • Router(config-if)#ip ospf cost 122
    • 4.15OSPF的METRIC计算
    • 每种接口类型的COST值不一样:
    • cost计算公式:10^8/接口带宽
    • f0/0  cost 1
      • 100000000/100M
      • 100M=100000Kbit=100000000bit
      • S0/0  cost 64
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐