天天看点

链路状态路由协议

一,链路状态路由协议概述

1,链路状态路由协议特性

 距离矢量路由协议通告的是整个路由表,而链路状态路由协议却不一样.

 链路状态路由协议之间传递的是链路状态通告,路由器将收集好的链路状态进行一系列的运算得到到达每个目的网络的最短的路径,从而形成路由表.

2,链路状态路由协议的相关术语

 A) 链路:link 路由器接口间的连线,在OSPF中也叫接口

 B) 链路状态:link state 接口的二层和三层信息。如端口是否为down,带宽,延时等

 C) 链路状态通告:link state advertisement(LSA) 链路状态信息的描述报文(用于描述链路的状态信息)

 D) 链路状态更新报文:link state update(LSU) LSA通过LSU传递给其它的邻居路由器

 E) 邻居:neighber 在同一线路上都有接口的路由器,即物理邻居

 F) 邻居关系(邻接):adjacency 物理邻居间发送hello包交换彼此信息并符合彼此条件后建立的邻居(逻辑邻居--邻接)

二,链路状态路由协议的数据结构

 链路状态路由协议中有3张表(数据库)

 A) 邻居表(邻居数据库):里面主要存放邻居(包括非邻接状态的邻居)信息.其中邻接状态的邻居是LSA的发送对象

 B) 拓扑表(链路状态数据库):里面存放的是链路状态通告,当一个网络收敛后,区域里所有的路由器有相同的LSDB,这里面的信息也是生成路由表的原始素材

 C) 路由表(转发数据库):通过对LSDB进行SPF计算后,所得到的到达每个目的网络的最短路径信息的存储地(即路由信息).

***************

三张表的关系为:

运行链路状态路由协议的路由器通过发送hello信息来发现邻居(物理邻居),如果hello信息中的关键字段匹配了则可形成邻接关系(逻辑邻居);路由器只对形成了邻接关系的邻居发送LSA,路由器将收到的LSA存放在自己的LSDB中,待LSDB稳定后进行一系列的运算,得到到达每个目的网络的最短的路径的信息(路由条目),并将其存放在路由表中.

***************

1,数据结构----网络层次

 OSPF路由协议是一个层次化的网络结构,其通过区域来划分层次.主要有两种区域:主干区域(backbone area)和非主干区域(nonbackbone area).一个OSPF自治系统中只能有一个主干区域,可有多个非主干区域;非主干区域必须与主干区域直连,非主干区域之间不能直连,要通信必须由主干区域转发.区域的编号为4个字节

 A) 区域的作用:

使路由表最小化

使拓扑结构变化本地化

将LSA泛洪限制在区域内

要求对网络进行层次化设计

 B) 在区域中路由器的类型有:

区域内部路由器(internal router):是指所有接口都属于同一个区域的路由器

区域边界路由器(area border brouter ABR):是指连接一个或者多个区域到主干区域的路由器,并且这些路由器会作为域间通信量的路由网关

自治系统边界路由器(autonomous system bonundary router ASBR):可以认为是OSPF域外部的通信量进行OSPF域的网关路由器.

2,数据结构----邻居数据库

 链路状态路由协议中的路由器通过交换hello包来发现邻居,路由器检查hello包里的某几个参数或选项后宣告邻居建立.

A) 点到点广域网链路中:两个邻居建立完全邻居关系(即邻接关系)

B) 广播型链路中:路由器与DR和BDR形成完全邻居关系,与其它路由器(DRothers)维持two-way状态

 路由器用hello包进行建立和维护邻居关系.hello包时间:

网络类型 默认间隔时间 默认死亡时间

广播网络 10S  40S

点对点网络 10S  40S

非广播多路访问网络 30S 120S

3,数据结构----路由算法(SPF)

 当路由器的LSDB稳定后,OSPF协议会对其进行SPF运算,得到到达目的地最好的路径:

在区域里的每台路由器有相同的LSDB

在区域里的各个路由器把自己作为SPF树的根

关于连接到特定目的地链路最低总成本的最好路径被计算出来

最好路径被放进转发数据库里(路由表中)

***********

OSPF的metric值为cost值,默认为:10^8/带宽

***********

4,数据结构----LSA的操作

 主要是查看版本号,根据LSA的版本号来进行操作

三,OSPF邻居关系的建立

1,OSPF数据包的类型(5种):

 A) hello包:用于发现/建立/维护邻居关系

 B) DBD(database description):链路状态数据库描述报文.

 C) LSR(link state requst):链路状态请求报文,主要是向邻居查询某一链路的详细信息

 D) LSU(link state update):链路状态更新报文,路由器用LSU回应邻居发来的LSR

 E) LSACK(link state acknowledgement):链路状态确认报文,即当自己收到邻居传来的LSU时,对邻居发出一个确认信息.

2,OSPF包格式:

 OSPF协议工作在网络层,其协议号为89

3,邻居关系的建立

 路由器用hello包进行建立和维护邻居关系.hello使用组播发送,组播地址为224.0.0.5

 A) hello包中的字段

Router ID   路由器ID是在OSPF区域内唯一标识一台路由器的IP地址

Hello/dead intervals * hello包的间隔及存活时间

Neighbors   邻居(包含物理邻居)列表信息

Area-ID   * 区域ID

Router priority   路由口的优先级

DR IP address   DR(Designated Router 指定路由器)的IP地址

BDR IP address   BDR(Backup Designated Router 备份指定路由器)的IP地址

Authentication password * 认证密码

Stub area flag  * 末节区域标记

    其中打*的字段信息必须一致,才有可能形成完全邻居关系

 B) 多路访问网络中的DR和BDR的选举

在多路访问网络中(广播网络及非广播多路访问网络[NBMA]),路由器的角色有三种:

 DR(designated router):指定路由器

 BDR(backup designated router):备份指定路由器

 DRother:非指定路由器

    DRother路由器只能与DR及BDR形成完全邻居关系,DRother之间只能维持在two-way状态.这样主要是为了避免LSA的泛洪

    DR和BDR的选举有两个因素:优先级和路由器ID

优先级:优先级高的为DR.范围:0~255,默认为1,0表示路由器不参与DR/BDR选举

 可用命令更改优先级:(config-if)#ip ospf priority number

路由器ID:当优先级一样时,路由器ID高的为DR.路由器ID的选举:

   1) 手动指定:(config-router)#router-id IP地址

 2) 选择loopback接口中最大的IP地址

 3) 选择已激活的物理接口中最大的IP地址

***************

DR和BDR不具抢占性.

Router ID不具抢占性.

在此网络中使用的组播地址有两个:

224.0.0.5 ALLSPFRouter地址.即所有SPF路由器都会接收此地址的信息

224.0.0.6 ALLDRouter地址.即只有DR/BDR路由器接收此地址的信息,DRother路由器不接收此地址的信息

***************

  C) 邻居关系的建立

down state

init state 一台路由器向外发送HELLOL包

two-way state 路由器从邻居的HELLO包中看到自己的信息(多路访问路由中会在此时进行DR/BDR选举)

exstart state 准交换状态.路由器选举主/从关系,即由谁主导LSDB的同步

exchange state 交换状态,相互交换DBD报文

loading state 请求并加载链路的详细信息

full state 完全状态

四,路由信息的维护

1,在点对点网络中,路由器都是通过224.0.0.5来进行路由信息的更新与维护的.而在多路访问网络中,DRother路由器通过224.0.0.6将信息告知给它的邻居(DR/BDR),DR路由器通过224.0.0.5将信息告知给它的邻居(BDR及DRother).

2,链路状态数据库的维护

 LSA的序列号:4个字节.从0x80000001到0x7FFFFFFF结束

 LSA的更新有触发更新和周期性更新两种,更新周期为30分钟,老化时间为1小时.

五,单区域OSPF的配置

(config)#router ospf 进程ID

(config-router)#network 网络ID 通配符掩码 area 区域ID

#show ip protocol

#show ip route ospf

#show ip ospf interface

#show ip ospf neighbors

**********************************************