OSPF链路状态路由协议<?xml:namespace prefix = o />

链路:路由器的接口

状态:端口的描述信息(链路的类型、带宽、IP地址信息);在该链路上邻居的情况。

全网的链路状态组成了拓扑数据库,就是地图。

路由器用路由器的ID来标识自己,每个链路使用Link-ID来标识自己。

LinkStateLS :信息

LSA(链路状态通告) :承载信息的纸

LSU(链路状态更新) :装纸的信封

 

SPF:最短路径优先

SPF树:自己是树根,每个目标网络都是树叶。

 

OSPF:数据信息存放在哪里?

邻居表(邻接数据库):存放直连邻居的信息。

拓扑表(链路状态数据库):存放邻居发过来的链路状态信息。也是Area内部的地图。

路由表(转发数据库):存放到达目标网络的最优路径。

多区域术语:

骨干路由器:有端口属于Area0的路由器;

非骨干路由器:所有接口都在非Area0内部;

 

内部路由器:所有端口属于同一个区域的路由器;

ABR:区域边界路由器,有端口属于不同的区域;将其他区域连接到区域0

路由器的ID定义:

1、查看有没有直接配置Rouer-ID

2、没有的话,查看有没有配置地址的环回口,并且状态是UP的,有的话,选择最大的那个地址。

3、没有的话,查看有没有配置地址的物理口,并且状态是UP的,有的话,选择最大的那个地址。

Router-IDIPv4地址的形式。

 

选择DRBDR时,先查看端口优先级,最高的是DR,次高的是BDR。如果优先级一样,查看Router-ID,最高的是DR,次高的是BDR

选择DRBDR是在一个网络上选择的。

 

在以太网链路上,DROthers路由器跟DRBDR建立完整的邻居关系,交流信息。DROthers路由器之间维持Two-way的邻居关系,不交流信息。

从邻居收到LSA,查看自己有没有这条信息:

没有的话,添加到数据库,发送回应,向其他邻居泛洪,执行SPF计算。

有的话,查看序列号时候相同:

  相同的话,忽略

  不相同的话,对比收到的信息的序列号比当前的大还是小:

 大的话:添加大数据库,发送回应,向其他邻居泛洪,执行SPF计算。

 小的话:向LSA来源的邻居回应更新的信息。
OSPF的版本
2:IPv4
3:IPv6
消息类型
hello、DBD、LSR、LSU、LSAck
数据包长度
OSPF数据包的来源:使用Router-ID来表示。
给别人说我们在哪个区域。号码的形式是IPv4地址的形式。0-2^32。
0、0.0.0.0
数据包的校验和(CRC32).
认证类型:0表示没有认证、1表示明文认证、2表示MD5认证。
认证内容
R1-F0—-F0-R2
R1 F0:192.168.1.1/24 192.168.1.0-255
R2 F0:192.168.1.100/25 192.168.1.0-127
OSPF hello包信息:
掩码
hello间隔
端口优先级
死亡间隔
DR
BDR
OSPF的hello包中的各种信息中如下信息必须一致,才可以建立邻居关系:
掩码
hello间隔
区域号码
认证信息
末节区域标识
(端口的MTU一致)。
LSDB(链路状态数据库)
回应:
隐式回应
显式回应
DR:指定路由器
BDR:备份的指定路由器
DROther
节省设备和带宽资源
选举依据:端口优先级、Router-ID。
LSA:链路状态通告
LSDB:链路状态数据库
LSU:链路状态更新包
0X80000001–0XFFFFFFFF–0X00000000–0X7FFFFFFF
TCP/IP路由技术卷一
debug ip ospf packet内容
rcv收到
v:2版本2
t:1类型hello
l:48长度48字节
rid:Router-ID
aid:区域ID
chk:校验和
aut:认证类型
auk:认证内容
two-way:我发现邻居已经发现了自己,进入该状态。如果需要选择DR,在该状态选择。
不需要直接进入
exstart:选择master设备,
进入exchange:交换DBD
进入loading:交换LSA(通过LSR和LSU、LSAck)
完成进入full状态:邻居交换信息完全完成。开始路由计算。
network 172.16.0.1 0.0.0.0 area 0
ip ospf 1 area 0
一个路由器可以属于多个区域,一个链路只能属于一个区域。
Router-ID作用:唯一标识路由器
1、手动配置:R1(config-router)#router-id
2、路由器查看环回口:状态是UP的并且配置IP地址,找最大的那个
3、路由器查看物理口:状态是UP的并且配置IP地址,找最大的那个。
推荐使用手动配置:R1(config-router)#router-id
原因:稳定
OSPF网络类型
1、点到点:不进行DR和BDR的选举,两个路由器直接建立full的邻居关系。OSPF自动检查网络类型,数据包的目标地址是224.0.0.5。串口上封装HDLC、PPP或者点到点子端口都是该类型。
2、多路访问广播网络:进行DR和BDR的选举,DROther只跟DR和BDR建立full的邻居关系。OSPF自动检查网络类型,数据包的目标地址是224.0.0.5(DROther)和224.0.0.6(DR、BDR)。以太网是该类型。
3、NBMA:五种操作方式。
选择DR和BDR,使用hello包,先看端口的优先级,再看路由器的ID。越大越好。
DR和BDR选择是非抢占的。
端口优先级默认是1
范围是0-255,0代表不进行DR和BDR的选择。
一个路由器的不同接口可以配置不同的优先级。
多路访问网络:单一接口直接连到多个站点。
NBMA网络出现的问题及解决方法
问题1:OSPF邻居不能自动发现:
解决方法 1、将网络修改成支持广播
 2、手动定义邻居列表
问题2:DR必须是中心站点的设备、分支机构设备只能是DROther。
解决方法:修改端口优先级,将分支机构设备连到FR的接口的优先级配置成0。
解决NBMA网络的OSPF运行问题:
1、非广播:手动定义邻居,需要选择DR、BDR。可能要影响DR的选举。
2、点到多点:无需手动定义邻居,无需选择DR、BDR。
3、点到多点非广播:手动定义邻居,无需选择DR、BDR。
4、广播:无需手动定义邻居,需要选择DR、BDR。可能要影响DR的选举。
5、点到点:无需手动定义邻居,无需选择DR、BDR。
ICMP重定向信息
提升路由器的效率
1、减少路由表条目
2、使用三层交换
OSPF路由器的类型
内部路由器:所有接口都在同一个区域的路由器;
边界路由器:ABR,连接到不同区域的路由器;
自治系统边界路由器:ASBR,连接到非OSPF区域。
骨干路由器:有至少一个接口在区域0。
非骨干路由器:所有接口都在非区域0。
区域内部交换链路状态信息;
区域之间交换的是路由信息。
所有非骨干区域必须跟骨干区域直连。
虚电路
1、将不连续的Area0连接在一起;
2、将与Area0不直连的区域连接到Area0。
只适合于备份使用和临时使用。
1、在两台ABR设备上应用
2、定义虚电路要穿越的区域;
3、定义虚电路的对方设备的Router-ID。
OSPF的外部路由用E来表示
E1:自己兄弟也要明算帐。
E2:自己兄弟就算了(默认情况)。
末节区域:边缘区域,不能传播5类LSA。
完全末节区域
末节区域:
该区域只有一个ABR,没有ASBR,不能是区域0,虚电路不能穿越该区域。
我们将该区域所有路由器配置成末节路由器。?
该区域的ABR设备会过滤掉5类LSA,用缺省路由替代。
较少路由表的条目,提高路由效率。
该缺省路由 由ABR产生,可以在ABR上定义代价值(缺省代价值是1).
完全末节区域:
该区域只有一个ABR,没有ASBR,不能是区域0,虚电路不能穿越该区域。
我们将该区域所有路由器配置成末节路由器、在ABR上使用no-summary
该区域的ABR设备会过滤掉3、4、5类LSA,用缺省路由替代。
较少路由表的条目,提高路由效率。
该缺省路由 由ABR产生,可以在ABR上定义代价值(缺省代价值是1).
是Cisco私有特性。
如果有多个ABR,默认配置,可能导致内部路由器上存在多条缺省路由,存在选路错误的可能。需要手动定义缺省路由的代价值。
次末节区域:
完全次末节区域: