码迷,mamicode.com
首页 > 其他好文 > 详细

OSPF

时间:2020-10-06 20:56:32      阅读:25      评论:0      收藏:0      [点我收藏+]

标签:意义   必须   修改   启动   ospf邻接   添加   规则   单位   而不是   

链路状态数据库结构

邻居表

  • 也被称为邻接数据库
  • 包含邻居列表

拓扑表

  • 一般被认为是链路状态数据库LSDB
  • 包含所有路由器的链路信息
  • 在一个区域内,所有路由器有一样的链路状态数据库

路由表

  • 一般被称为转发数据库
  • 包含去往目的地的最佳路径

链路状态数据库:网络结构

链路状态路由协议通过OSPF协议执行具有层次的网络结构

技术图片

两层的层次结构由以下部分组成

  • 中转区域(骨干区域0)
  • 常规区域(非骨干区域)

所有的非骨干区域必须与骨干区域相连,非骨干区域之间相连接无法直接进行通信,需要骨干区域对其进行转发

OSPF Areas

技术图片

  1. 最大限度减少路由条目

    • 会在骨干区域和非骨干区域的边界上进行路由汇总
  2. 本区域内的拓扑变化不会影响其他区域

    • 汇总路由仍然有效的情况下
    • 当最后一条明细路由消失时,汇总路由失效
  3. 本区域产生的LSA只能在该区域泛洪

    • 区域边界路由器会阻止本区域的LSA泛洪给其他区域
  4. 骨干路由器都属于区域0

  5. 分层次的设计

  6. 连接骨干与非骨干区域的设备是ABR区域连界路由器

OSPF邻接建立

使用hello包建立和维持邻接关系

接口启用OSPF进程后会不断发送hello包

不同网络类型当中的邻接关系

点对点WAN链路

建立全互联的邻接关系

以太网

选DR和BDR(班长、副班长)

所有邻居都与DR和BDR建立完全邻接关系

  • DR:指定路由器

  • BDR:备份指定路由器

  • DROTHER:即不是DR也不是BDR

DROTHER之间保持two-way状态

路由更新只会更新给邻接路由器

选举规则:

a. 接口优先级数字越大越优先

b. Router ID越大越好

c. 优先级为0的不能称为DR或BDR

OSPF状态机

  • Down:没有启用OSPF的状态;邻居失效后变为该状态

  • Init:初始化状态,第一次收到对端发来的hello包(包含对端route-id)时,将对端的状态设置为init

  • 2-way:邻居状态,相互间周期发送hello的状态(双方建立会话)

  • Exstart:交换信息的初始化状态

    • 发送DBD(包含本地的LSA的摘要信息)报文,选举主从路由器(利用HELLO报文中的ID和优先权来进行选举,不允许抢占,DR没了,DBDR才能上)
  • Exchange:交换信息的状态

    • 该状态下,相互间发送DBD,告知对端本地所有的LSA的目录;同时,可以发送 LSR, LSU, LSACK来学习对端的LSA
  • Loading:加载状态(没有学习完的状态)

    • 发送LSR, LSU, LSACK,专门学习对端的LSA的详细信息
  • Full:邻接状态(学习完的状态)

OSPF数据包

1. 种类

1) hello

建立和维护邻接关系

  • RID

    • 标识hello和dead时间
  • AID

    • 标明属于哪一个区域
  • 优先级

    • 竞选DR和BDR用
  • 认证

    • 特殊区域字段

2) DBD

LSDB的目录

3) LSR

请求包

4) LSU

更新包

5) ACK

确认

2. 格式

1) 版本号

  1. IPv4
  2. IPv6

2) 类型

数据包类型:hello包,还是DBD包等等

3) 包长度:描述数据包大小

4) RID:router ID

5) 校验和

用来校验数据包在传输的过程中是否出现了损坏

6) 认证的类型

7) 数据

OSPF的邻接关系

影响OSPF建立邻接关系的因素

hello包

  1. hello和dead时间

  2. AID(区域ID)

  3. 认证密码

  4. 特殊区域

OSPF过程

  1. OSPF路由器接口up,发送Hello包(NBMA模式时将进入Attempt状态)

  2. OSPF路由器收到Hello包,进入INIT状态,并将该Hello包的发送者的Router ID,添加到Hello包(自己将要从该接口发送出去的Hello包)的邻居列表中

  3. OSPF路由器接口收到邻居列表中含有自己Router ID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的Router ID添加到自己的OSPF邻居表中

  4. 在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR选举。点对点没有这个过程

  5. 在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并选举DBD交换主从路由器,以及由主路由器定义DBD序列号,Router ID大的为主路由器

  6. 主从路由器选举完成后,进入Exchange(交换)状态,交换DBD信息

  7. DBD交换完成后,进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认

  8. LSA交换完成后,进入Full状态,所有行程邻居的OSPF路由器都拥有相同链路状态数据库

  9. 定期发送Hello包,维护邻居关系

Router-Id

在LSDB中以RID区分不同路由器

RID的产生

手工指定

通常以loopback0接口做为RID

自动产生

最大IP地址的环回口,如果没有,为最大IP地址的物理口

RID的格式

点分十进制数

无实际意义,可以是某个接口的地址,也可以不是

RID改变

刚启动或重启动时

可清理OSPF进程

链路开销

  1. 自动计算:COST=参考带宽(10的8次方)/ 出口带宽

  2. 接口带宽为接口逻辑带宽,可以使用bandwidth命令调整,主要用于路由计算,而不是接口物理带宽,但一般情况:接口逻辑带宽=接口物理带宽

  3. 手工修改开销

    Router(config-if)# ip ospf cost 100 //该命令在接收路由的入口

  4. 可修改参考带宽,来保障OSPF在现如今的网络中正常运转

    Router(config-if)# auto-cost refernce-bandwidth //参考带宽以Mbits为单位

OSPF

标签:意义   必须   修改   启动   ospf邻接   添加   规则   单位   而不是   

原文地址:https://www.cnblogs.com/iamfatotaku/p/13773126.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!