OSPF:开发式最短路径优先协议

无类别链路状态型IGP协议;由于其基于拓扑进行更新收敛,故更新量会随着拓扑的变大而成指数上升;故OSPF协议为了能在大、中型网络中运行,需要结构化的部署----合理的区域划分、良好的地址规划   正常等开销负载均衡;  跨层封装协议,协议号89;

组播更新 224.0.0.5  224.0.0.6    触发更新+周期更新(30min)

距离矢量 DV 

链路状态LS

RIP EIGRP 

OSPF  ISIS

邻居间共享路由条目

邻居间传递的是拓扑

传闻性协议

本地计算路由

三方面

  1. 收敛速度快   2、选择路径佳(前提防环)  3、占用资源少

一、OSPF的数据包 -- 5种

华三设备怎么删除ospf进程1 华三ospf cost_网络协议

hello包

DBD -- 数据库描述包--  本地LSDB(链路状态数据库)目录

LSR---链路状态请求 --  用于询问对端本地未知的LSA信息

LSU-- 链路状态更新 --  用于共享具体的每一条LSA信息

LSack-- 链路状态确认 -- 确认包

LSA--链路状态通告--具体的一条一条 路由或者拓扑信息,不是一种数据包,所有的LSA是使用LSU这种包来转发的;

OSPF的数据包是跨层封装于3层报头后方 ,协议号89

华三设备怎么删除ospf进程1 华三ospf cost_p2p_02

二、OSPF的状态机  -- 两台OSPF路由器间不同关系的阶段

Down

Init 初始化:   若接收到的hello包中存在本地的RID,那么进入下一个状态机

2way

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机;

Exstart预启动: 使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机

exchange准交换:  使用携带数据库目录信息的DBD包,进行目录共享,需要ACK确认

loading加载:  接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致;

LSU需要ACK确认;

Full 转发:   标志着邻接关系已经建立;

三、OSPF的工作过程

路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表;

邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系,仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;

邻接关系间的路由器,将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致;---- 数据库表;

当本地数据库完成同步后,将数据库-->有向图-->树型结构图-->将本地到达所有未知网段的最短路径加载于本地路由表中;

收敛完成,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;

结构突变:触发更新

  1. 断开网段 直连断开网段的设备,直接使用LSU告知邻接,需确认
  2. 新增网段  直连新增网段的设备,直接使用LSU告知邻接,需确认
  3. 无法沟通    hello time 对应的 dead time ;dead time 到时时,断开邻居关系,去除基于该邻接共享的LSA计算所得路由;

四、OSPF的基础配置

[r1]ospf 1 router-id 1.1.1.1  启动时,定义进程号,仅具有本地意义;建议配置RID;

RID格式为ipv4地址,且需要全网唯一;  手工配置--环回接口上取最大数值的ip地址---物理接口上最大ip地址的数值

宣告:1、区域划分   2、接口激活协议   3、传递接口信息

[r1-ospf-1]area  0

[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0

[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255

区域划分规则:

  1. 星型结构 -- 区域0为骨干 大于0为非骨干  非骨干区域必须直连骨干区域
  2. ABR--区域边界路由器   两个区域间必须依靠ABR连接

启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:

hello包 -- 组播收发  周期发送 --  hello time 10s 或30s  dead time 为hello time 4倍

华三设备怎么删除ospf进程1 华三ospf cost_OSPF_03

邻居间hello包中有一些参数必须完全一致,否则无法建立邻居关系;

Hello 和dead time  、区域ID、认证参数、末梢区域标记;另外在华为的设备中OSPF要求邻居间接口上配置的ip地址,其掩码长度必须一致;

[r2]display  ospf peer  查看邻居表

[r2]display  ospf peer  brief   查看邻居关系简报

当邻居关系建立后,邻居间进行条件匹配,匹配失败,将保持为邻居关系;匹配成功,将建立为邻接关系,邻接关系将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息,同步生成数据库表---LSDB 链路状态数据库

[r2]display  ospf lsdb  查看数据库表

数据库表同步完成后,邻接间的互动完成,仅hello包保活;之后本地基于本地的数据库表;

转换为有向图,再转换为树形结构,最终将本地到达所有未知网段的最短路径,加载于本地的路由表中:

<r1>display  ip routing-table protocol  ospf

默认ospf协议在华为设备中,优先级为10;度量为cost值

cost值=开销值= 参考带宽/接口带宽   默认参考带宽为100M

ospf协议将cost值之和最小定义为最佳路径,加载于本地路由表中

若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳;可以修改默认的参考带宽

[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
Mbits/s)
[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,整个网络所有ospf路由器需要一致;

关于ospf的MTU问题:

在ospf协议的DBD包中将携带本地接口的MTU值,若两端一致可以正常建立邻居关系;若不一致将无法建立邻接关系;

默认华为设备不携带MTU;

[r1-ospf-1] int g0/0/1 

[r1-GigabitEthernet0/0/1]ospf mtu-enable    两端设备均需开启

五、关于OSPF协议从邻居建立成为邻接的条件

根据网络类型决定

在点到点网络中,所有的邻居关系必然成为邻接关系

在MA网络中从邻居到邻接前将利用一个周期的dead time;进行DR/BDR选举;

先比较这些参选接口的优先级,默认1,取值范围0-255;越大越好,0标识不参选;

DR优先级最大,BDR次大;选举非抢占,故若希望干涉选举,需要重启ospf进程,或者将非DR/BDR修改为0;

[r2]interface GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]ospf dr-priority  3  修改优先级
重启进程
<r2>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y

非DR/BDR间为邻居关系;

六、OSPF的接口网络类型  --- OSPF协议在不同的网络类型,其工作的方式不同

[r1]display  ospf interface GigabitEthernet 0/0/1
         OSPF Process 1 with Router ID 1.1.1.1
                 Interfaces
 Interface: 12.1.1.1 (GigabitEthernet0/0/1)
Type: Broadcast
网络类型                                                                                               ospf接口网络类型
LoopBack          P2P(LoopBack)                                          无hello    环回使用32位主机路由
点到点 (PPP/HDLC/GRE)P2P                                                  10s hello time      不选DR/BDR
BMA  (以太网)     Broadcast                                                     10s hello time      选DR/BDR
NBMA   (MGRE)    P2P

 在tunnel接口上,ospf的默认工作方式为P2P,这种工作方式,只能建立一个邻居关系,故在MGRE环境中将无法正常工作;

修改接口的默认工作方式:

[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ospf network-type ?
  broadcast  Specify OSPF broadcast network
  nbma       Specify OSPF NBMA network
  p2mp       Specify OSPF point-to-multipoint network
  p2p        Specify OSPF point-to-point network

切记:一个网段中所有接口的ospf工作方式必须一致;否则将无法建立邻居关系,或者因为不同工作方式的hello time一样,错误建邻,无法收敛;

当MGRE环境中,使用OSPF,且所有tunnel接口修改为broadcast工作方式后,必须基于拓扑接口考虑DR位置问题

MGRE可以构建不同的拓扑结构:

  1. 星型--中心到站点--轴辐状  中心站点为DR,取消BDR
  2. 全连网状 ---   不需要再关注DR
  3. 部分网状 --- 基于能够全网段内正常共享LSA来考虑最佳的DR位置