基础概念

OSPF :开放式最短路径优先协议 (open shortest path first)

 

使用范围:IGP 

 

协议算法特点: 链路状态型路由协议,SPF算法  (最短路径优先算法)

 

协议是否传递网络掩码:传递网络掩码

 

协议封装:基于IP协议封装(属于跨层封装),协议号(标识上层即传输层是什么协议)为 89  

 

IP传输不可靠(辨别:1.确认重传 2.周期性传输)——OSPF选择的是确认重传机制

 

协议号标识上层是什么协议,eg:17号表示是上层即传输层是udp协议,6号表示上层即传输层是tcp协议,89标识上层是ospf协议等等

 

一、OSPF 特点

 

1、OSPF 是一种典型的链路状态型路由协议,可适应大规模网络。

 

2、传递信息称作LSA,LSA 【链路状态通告,包含路由信息和拓扑信息】

 

      路由LSA:描述本路由器上接口的路由信息

      拓扑LSA:描述路由器之间的连接状态

 

3、 更新方式: 触发更新【网络结构稳定不发送路由信息,网络结构发生改变才会发送信息】+30分钟的链路状态刷新

 

触发更新时,不断将更改后的信息地加到表中 ,会出现不同metric值的相同信息,路由表将会进行信息的新旧比较,使用最后一次触发的(最新的)信息,为了进行新旧比较,会在路由信息里加一个字符(如序列号),随着不断地更新,序列号会不断地增加,总会有最大值,这时就需要30分钟的链路状态刷新,刷新的是LSA里的一些参数。

 

4、更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL OSPF router)——负责宣告    224.0.0.6 (ALL DR router)——负责监听发送

 

5、支持路由认证

 

6、支持手工汇总(目的或意义:1.减少路由条目数量,增加路由传递安全性、加快网络收敛,提高链路使用率。)

 

7、支持区域划分(减少OSPF网络对资源的占用 减少OSPF算法的运作)

 

8、OSPF 比较消耗设备资源,思科里一个路由器上最多支持31个OSPF 进程

 

二、OSPF 区域

 

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF

 

 

一、区域划分的意义

 

 1、减少LSA的数量

 2、减少LSA的传播范围

 3、提高OSPF运行的效率

 

区域的划分是基于接口的(链路的)

 

区域的标记:使用了32个二进制    1.十进制   2.类似于IP地址  A.B.C.D

 

二、OSPF区域的分类

 

          骨干区域: 区域标记为0或0.0.0.0

          非骨干区域:区域标记不等于0或0.0.0.0

 

例: Area0(骨干区域)   Area1(子区域) Area2(子区域)

 

三、OSPF区域设计原则:向日葵型网络结构

 

          1.OSPF网络中必须存在并唯一的骨干区域(单区域除外)

          2.若存在非骨干区域,非骨干区域必须与骨干区域直接相连

 

四、OSPF中路由器的角色:

 

          骨干路由器:一个路由器所有的接口都属于area0区域或把所有ABR和ASBR所组成的路由器叫做骨干路由器。

 

     非骨干路由器:路由器所有的接口都属于非area0区域

 

          ABR:区域边界路由器,能够产生3类LSA的路由器 (用来连接Area0和其他区域的路由器)

 

          ASBR:自治系统边界路由器能够产生5类或7LSA的路由器 ( ASBR就是所有将非ospf的路由传入ospf区域中的路由器【重发布】

 

 

 

三、OSPF 邻居状态机制

 

邻居:down、attempt (过渡)、init、two-way

 

邻接:exstart、exchange、loading、full

 

卡在每个状态的标志:、

 

down:OSPF关闭,邻居关系的建立不符合条件;

 

init:收到的hello包里都没有包含自己的router-id,过一段时候后(同dead time)退回down状态。

 

two-way:不能选举出DR,例如优先级为0的时候。

 

exstart:双方的MTU值不一致

 

loading:设备性能问题,传递的LSA的数量太多,已超过设备容限。

 

attempt:某些特殊的网络中不能通过广播或组播的方式发送hello包,需要手动指定邻居来通过单播方式发送;

         若该网络是MA网络,那么在选举等待DR、BDR选举的这个状态为attempt。如果出现指错邻居等失误,会卡在该状态。

 

 

Init ---初始化状态,一旦开始发送hello报文,进入初始化状态。

      ---双向通信状态(邻居状态),接收到包含自己router-id 的对方hello报文。

 

邻居关系建立条件

1router-id 必须不同

2area ID 相同

3认证: 认证类型 (不认证=0  明文认证=1  MD5=2  认证数据

4hello时间(默认时间10s)dead时间(默认时间40s

5特殊区域标识必须一致(E(外部路由位)=1  NNSSA外部路由位)=0    P=0

6、MA网络中,网络掩码必须一致

7、必须同时使用单播或组播更新

8、更新源检测(双方的IP地址必须在同一网段)

 

 

 

  • 邻居状态下(two-way

 

MA的网络中会选举DR(指定路由器)  BDR(备份指定路由器)

 

DR:路由器的核心者,称为指定路由器。邻居关系只会发给DR。

BDR:被指定路由器,如果DR失败,那么BDR就会顶上去工作。

 

DR选举: 

1、比较优先级 (范围:0-255,默认优先级为1 ,越大越优) 

2、比较各自的router-id,越大越优

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_02

 

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_03

 

 

注意:

 

1.DR抢占是关闭的 

 

2.DR是一个接口概念

 

3.优先级范围0-255,数字为0代表不参与选举

 

4.先选举BDR ,再升级为DR

 

 

 

主从选举:发生在exstart状态, 通过双方的router-id进行比较,router-id大的一方为主。  发送的主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令激活传递MTU值的功能,若双方的MTU值不值则卡在exstart 状态)。

 

Exstart-----------预启动状态,一旦开始发送主从DBD,则进入预启动状态。

Exchange ------预交换,主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送LSR数据包。(但是没有LSU)

Loading --------加载状态,一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习,直到双方互相学习完LSA。

Full --------------邻接状态。双方LSA同步(双方LSA全部学习)

Waiting----------等待DR、BDR的选举,若DR、BDR无法选举,则一直卡在Waiting状态,如该网络中路由器的优先级都为0时。

 

OSPF接口状态机制:DR、DRother、P2P、waiting

---------------------发送Hello报文-->Init

--对方Hello报文中包含自己router id-->Two-way

-----------------------主从选举DBD-->Exstart(预启动)

----------------------携带LSA的DBD-->Exchange(预交换)-->发送LSR

---------------------------发送LSU-->Loading

-------------------双方LSA全部学习-->Full

 

四.OSPF基本配置

 

  • 启用OSPF 并指定router-id

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_04

 

Router-id : 路由器标识符,用于标识在OSPF(本区域中)网络中的唯一性。

 

OSPF router-id 选举规则:(1)手工指定最优先 (2)选举所有逻辑中IP地址最大的 (3)选举所有物理接口IP地址最大的

 

华为中: 若以上三点都不满足,则可以创建router-id 为0.0.0.0 ;在使用逻辑或物理接口IP地址时,接口可以是关闭状态;若一台路由器启用了多个OSPF进程,不同进程可以使用相同的router-id(不推荐)

 

思科中:若以上三点都不满足,则无法启用OSPF;在使用逻辑或物理接口时,接口必须双 up ,该接口可以不通过在OSPF中;同一路由器上多个OSPF进程必须router-id必须不同;

 

全局模式下可以选择针对所有的OSPF进程修改router-id ;(若同时在接口部署时,接口优先生效)

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_05

 

 

  • 查看:

 

ospf协议 哪个交换机支持 ospf哪一层协议_链路_06

 

  • Network通告:

1.

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_07

 

  • 2.必须先创建OSPF 进程并开启需用使用的区域ID,再进入接口启用:

 

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_08

 

  • 激活DBD中携带MTU值功能:

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_09

 

  • 修改接口MTU值: (同时修改3层和2层的MTU值)

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_10

 

  • 查看二层接口信息:

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_11

 

  • 查看三层信息:

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_12

 

 五、OSPF三张表:

 

1OSPF 邻居表

查看OSPF邻居表:

 

ospf协议 哪个交换机支持 ospf哪一层协议_链路_13

 

查看OSPF邻居表的摘要信息:

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_14

 

2LSDB表(链路状态数据库)

查看LSBD的摘要信息:

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_15

 

查看LSDB详细信息:

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_16

 

3OSPF 路由表

 

OSPF的路由表形成:路由器会发送它的直连网段告诉对方形成邻居关系,对方学习到内容以后就会形成完整的的网络拓扑结构

也就是形成了链路状态的结构。

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_17

 

 

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_18

 

六、OSPF的数据包和包类型

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_19

 

1)Hello

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_20

 

  • Auth Type(认证类型):

            不做认证=Null

            明文认证=1

            MD5认证=2  包含一个Key ID、认证数据长度、不减小的加密序列号

  • DN:用于基于MPLS的第3层虚拟专用网(VPN)
  • O:设置用来表明始发路由器支持9、10、11类LSA
  • DC:按需链路
  • E:接收和转发外部属性LSA
  • N:支持7LSA
  • P:支持7类转5
  • L:和区域间防环有关
  • MC:支持组播
  • E:支持5LSA位,支持路由位
  • MT:支持多拓扑OSPF
  • Active Neighbor(活动邻居):当R2接口收到Hello包,检查过Hello包里邻居关系建立的条件,满足条件时,R2给R1发的Hello包里会将自己所收到的所有条件匹配的Router-ID的信息全部写在Active Neighbor列表中。

 

2DBD数据库描述包

 

1、主从DBD

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_17

 

 

接口MTU:数据包不分片的情况下,始发路由器接口可以发送的最大IP数据包报文。

 

I位(初始位Initial bit):1—发送的是最初一个数据包;0—发送的是后续的数据包


M位(后继位More bit):1—发送的不是最后一个数据包;0—最后一个数据库描述数据包

 

MS位(主/从位 Master/Slave bit):1—主路由器;0—从路由器

 

双方互相发的第一个数据包都默认自己的主,在收到对方LSA信息后进行主从选举,router-id小的变为从

 

数据库描述序列号(DD Sequence Number

 

在数据库同步请求中,用来确保路由器能够收到完整的数据库描述数据包序列。

 

序列号由主路由器在最初发送的数据库描述数据包中随机出唯一的数值,后续数据包序列号依次增加

 

当主从选举结束后,从路由器的序列号会保持与主的相同

 

2DBD报头的LSA

 

(1)LSA头部:

(2)LS age:总长16位,表示LSA产生后所经过的时间,以秒为单位。

(3)Do Not Age:用于限制LSA在按需链路中的泛洪。

 

OSPF通过在LSA报文中设置一个DonotAge字节,来使两端得到协商,使收到的LSA永不过期。并且在LSA中加了一个标志位,DC bit,使其他路由器知道这个LSA具有按需电路的特性,使其他路由器不会认为这条路由过期,这样就避免了在按需拨号电路上的每30分钟泛洪。

 

(4)LS Type:8位,代表不同LSA的类型。

(5)Link State ID:32位,与LSA中的LS Type和Advertising Router一起用来在OSPF中唯一标识一个LSA。

(6)Advertising Router:32位,记录产生此LSA的路由器的router ID。

(7)LS Sequence number:32位LSA的序列号。序列号越大代表该LSA越新,其他路由器根据这个值可以判断哪个LSA是最新的。

(8)LS checksum:16位,除了LS age外其他各域的校验和。可用于校验LSA的内容及用来确定该LSA是否最新。

        (9)Length:16位,LSA的总长度,包括LSA Header,以字节为单位。

 

3)LSR链路状态请求包

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_22

 

  • (1)Link State Request:
  • (2)Link-State Advertisement Type:LSA的类型
  • (3)Link-State ID:根据LSA中的LS Type和LSA description在路由域中描述一个LSA
  • (4)Advertising Router:产生此LSA的路由器的Router ID

 

4)LSU链路状态更新包

 

ospf协议 哪个交换机支持 ospf哪一层协议_链路_23

 

  • V:产生该LSA的路由器是否是虚链路
  • E:产生该LSA的路由器是否是ASBR
  • B:产生该LSA的路由器是否是ABR
  • 不同LSA的字段均不相同。

 

5)LSACK链路状态确认包

 

ospf协议 哪个交换机支持 ospf哪一层协议_序列号_24

 

  • 数据包的确认:
  • Hello:不需要确认
  • DBD:通过数据库描述序列号(DD Sequence Number),从路由器R1最后(第三个)发的DBD是为了显式确认,该DBD中不包含LSA头部。
  • LSR:通过LSU确认,LSU中必须包含以下字段,即对方的LSA头部信息

 

  • LSU:通过LSACK确认,确认方法同上
  • LSACK:隐式确认

 

 

  • OSPF的7个状态,也可以分为两个阶段

1)Down状态

2)init状态

32-way状态

4)Exstart状态

5)Exchange状态

6)Loading状态

7)Full状态

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_25

 

 

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_26

 

 

  • OSPF的网络类型划分,也就是说那些类型适合OSPF,具有 4种类型:

1点到点网络

2广播多路访问网络

3非广播多路访问网络

4点到多点网络

 

ospf协议 哪个交换机支持 ospf哪一层协议_ospf协议 哪个交换机支持_27

 

 

  • 下图是链路状态通告类型图

 

ospf协议 哪个交换机支持 ospf哪一层协议_OSPF_28

 

  • 路由重分发

 

ospf协议 哪个交换机支持 ospf哪一层协议_链路_29

 

 

 

ospf协议 哪个交换机支持 ospf哪一层协议_链路_30