一、OSPF基础

OSPFv2和RIPv2对比

相同点

1、两者都是无类别路由协议---传播时携带真实掩码

2、两者的更新方式相同----组播

 RIPv2----224.0.0.9

OSPFv2----224.0.0.5\224.0.0.6

3、两者均支持等开销负载均衡

不同点

RIPv2只能应用在小型网络中,OSPFv2可以应用在中大型网络环境

 

二、OSPF区域划分----结构化部署

OSPF域(Domain)---将一系列的OSPF路由器组成的网络称为OSPF域。

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_邻接关系

 

OSPF多区域划分要求:

1、OSPF要求域中所有的非骨干区域(区域ID不为0的区域)都必须与Area0相连。

2、骨干区域不能被分割 

 

OSPF区域结构部署规则的必要性

假定没有“所有非骨干区域都必须与骨干区域相连”这条规则----“远离骨干的非骨干”

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_邻接关系_02

定义了ABR(区域边界路由器)设备----确保所有人遵循上述规则 

 

1、至少连接两个区域

2、连接的区域中至少有一个是区域0

3、在区域0中至少有一个活跃的邻居

作用:用于传递区域间路由

 

为了避免区域间的路由形成环路,非骨干区域之间不允许直接相互发布区域间路由。

 

假定没有“骨干区域不能被分割”这条规则----不连续骨干区域 

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_OSPF_03

OSPF规定:从非骨干区域收到的路由信息,ABR能接收,但不会使用这条路由信息(OSPF水平分割原则)。

 

总结:

OSPF有如下规则:

1、对于伪ABR设备不允许转发区域间路由信息。

2、对于真实ABR而言

能够将自己直连的非骨干区域的区域内路由信息传递给骨干区域。

能够将自己直连的骨干区域的区域内路由信息传递给非骨干区域。

能够将自己从骨干区域学习到的区域间路由信息传递给费骨干区域。

 

三、OSPF路由器角色

  • 内部路由器(IR)
  • 所有接口都接入同一个区域的路由器
  • 区域边界路由器(ABR)
  • 骨干路由器(BR)
  • 接入Area0的路由器,包括ABR,但不包括ASBR
  • ASBR(AS边界路由器)
  • 工作在OSPF自治系统边界的路由器
  • 并不是同时运行多种路由协议的OSPF路由器就一定是ASBR,ASBR一定是将外部路由引入到OSPF域的设备。

 

四、OSPF数据包

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_OSPF_04

 

Hello

  • 用来周期发现、建立、保活OSPF邻居关系,通过组播224.0.0.5发送。
  • 10S发送一次来确认邻居的存在
  • hold-time----四倍的hello时间
  • Router-ID(RID)
  • 全域唯一,标识路由器身份
  • 用IP地址形式表示(32bit,点分十进制)
  • 配置方法
  1. 手工配置

                      2.自动配置

  • 默认最大环回IP地址,若没有最大环回则选择最大物理IP地址(路由器的RID选择)。
  • [r1]display router id //查看路由器全局ID值
  • 无论采用手工配置还是自动选择,一旦OSPF进程启动,RID被确定,则无法变化,必须重启进程才能生效。
  • 命令:reset ospf process 重启所有OSPF进程

 

注意:

启动OSPF进程前,必须要有接口IP地址,若存在IP地址,则在第一次启动OSPF进程时,会选取第一个配置的IP地址为RID。

但是,若删除第一个配置的IP地址后,则恢复为上述规则。

在华为设备中,若没有接口IP地址,则OSPF启动后,RID为0.0.0.0

在思科设备中,若没有接口IP地址,则OSPF启动失败。

 

DBD

  • 数据库描述报文
  • 该报文携带的是路径信息的摘要(为了减少更新量,并不会直接给邻居发送TOPO信息,而是将TOPO信息的目录发送给邻居)

LSR

  • 链路状态请求报文
  • 基于未知的LSA(链路状态通告)信息进行查询。

LSU

  • 链路状态更新报文
  • 携带真正的LSA信息的数据包

LSAck

  • 链路状态确认报文

 

五、OSPF七种状态机

  • down---关闭状态----一旦启动了OSPF协议,则发出hello包,并进入下一状态
  • init----初始化状态----收到的hello包中,存在自己的RID值,则进入下一状态
  • 2-way----双向通讯状态-----邻居关系建立的标志。

条件匹配:匹配成功则进入下一阶段,不成功则停留在2-way

  • exstart----预启动状态----使用未携带信息的DBD包进行主从关系选举,RID大的为主
  • exchange-----准交换状态----使用携带目录信息的DBD报文进行目录共享
  • loading------加载状态-----邻居间使用LSR/LSU/LSAck三种报文来获取完整的TOPO信息
  • full----转发状态----修成正果------标志邻接关系的建立。

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_邻接关系_05

 

 

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_OSPF_06

 

 

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_IP_07

 

 

六、条件匹配

  • 设备接口名称
  • DR---指定路由器
  • BDR---备份指定路由器
  • DRother----其他路由器
  • OSPF称为邻接关系的条件
  • 点到点----不用选举DR和BDR----直接开始建立邻接关系(加快收敛的方法)
  • MA网络----在一个网络中,不限制节点数(会选举DR和BDR)
  • 选举规则
  • 接口优先级----->0-255---->优先级越大,为DR,次一级为BDR(华为默认为1)
  • RID----越大越优先
  • 选举范围----一个广播进行一次条件匹配角色之间的关系
  • 角色之间的关系
  • DR和DRother---->邻接关系
  • DR和BDR---->邻接关系
  • BDR和DRother---->邻接关系
  • DRother和DRother---->邻居关系
  • 非抢占性选举模式 

 

七、OSPF选举过程

1. DR、BDR的选举是通过Hello报文来实现的,选举过程发生在2-way状态之后

2. 路由器将自己的接口的DR优先级填写hello报文中的“DR优先级”字段

3. 在接口视图下可以修改DR优先级(若DR优先级修改为0,则代表不具备DR和BDR的选举资格)

4. 当路由器接口激活OSPF后,首先检查网络上是否已经存在DR设备,如果存在则接收DR角色。若不存在,则拥有最高DR优先级的设备称为DR(RID)

5. BDR的选举过程和DR选举过程相同,但是是在DR选举成功之后。 

注意:

DR设备使用组播224.0.0.5想该MA网络发送消息。

而DR和BDR使用224.0.0.6监听该MA网络的消息。

DROther使用224.0.06发送自己的LSU报文。 

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_邻接关系_08

NBMA网络类型中存在。

在NBMA网络类型下,如果需要启动OSPF协议,需要手工指定邻居,否则不会发送hello报文。

若不发送hello报文,则邻居状态处于attempt状态。

 

八、OSPF工作状态

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_邻接关系_09

  • 启动OSFP配置完成后,OSPF将向本地所有运行OSPF协议的接口组播224.0.0.5发送hello报文;hello报文中携带有本地的RID以及本地已知的邻居RID;之后生成邻居表。
  • 邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系;仅hello报文保活
  • 匹配成功的邻居将开始建立邻接关系。
  • 首先使用未携带数据的DBD报文来进行主从关系选举;之后使用携带数据的DBD报文来共享数据库目录;之后本地使用LSR/LSU/LSACK报文来获取未知的LSA信息;
  • 完成本地数据库的建立---生成数据库表。
  • 之后本地基于数据库生成有向图和最短路径树,之后计算本地到达拓扑中所有未知网段的最短路径,并将其添加到路由表中。
  • 收敛完成,hello报文周期保活。每30min进行一次周期更新。 

 

结构突变

1. 新增网段----直接在邻接关系的接口使用LSU进行更新,将内容告诉于邻居。并需要邻居的ACK确认。

2. 断开网段----直接在邻接关系的接口使用LSU进行更新,将内容告诉于邻居。并需要邻居的ACK确认。

3. 无法沟通----dead time----四倍的hello时间。 

 

九、OSPF基础配置 

ospf 不连续骨干区域 ospf非骨干区域可以分开吗_IP_10

1. 启动OSPF进程

  • [r1]ospf 1 router-id 1.1.1.1 //进程号仅具备本地意义,手工配置RID方法

2. 创建区域

  • [r1-ospf-1]area 0

3. 宣告

  • [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.0.0.0 0.0.0.255 //宣告网段
  • 宣告使用反掩码形式
  • 32位二进制,使用点分十进制表示。连续的0+连续的1;并且0代表不可变;1代表可变。

 

注意

华为体系中,优先级为10;

OSPF的COST====参考带宽(100Mbps)/实际带宽

[r1-ospf-1]bandwidth-reference 1000 //修改参考带宽-----所有设备均需修改

一条OSPF路径的Cost等于从目的地到本地路由器沿途的所有设备的入接口Cost值的总和