动态路由协议——OSPF及配置

OSPF(链路状态路由协议)路由协议概述

按照AS分类

As是指由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合。
【1】按自治系统分为
IGP:内部网关路由协议,运行在As内部的路由协议,主要解决As内部的选路问题,发现、计算路由。
主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)
EGP:外部网关路由协议,运行在As与As之间的路由协议,他解决As之间选路问题。通常有BGP

【2】按协议类型分类
距离矢量路由协议:RIP1/2、BGP(路径矢量协议)、EIGRP(高级距离矢量协议)
路由器对全网拓扑不完全了解。是"传说的路由",A发路由信息给B,B加上自己的度量值又发给c,路由表里的条目是听来的。

OSPF

在链路状态路由协议中路由器对全网拓扑完全了解。是"传信的路由",a将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给c,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入路由表中。

工作过程:

邻居列表,链路状态数据库,路由表

形成路由:

在这里插入图片描述
OSPF接口发送Hello包,建立邻居关系,之后学习链路状态信息(互相发送LSA链路状态通告相互通告路由),形成链路状态数据库。再通过Dijkstra算法(SPF算法),计算最短路径树(cost最小)后放入路由表。

OSPF区域

为了适应大型的网络,OSPF在AS内划分多个区域,每个OSPF路由器只维护所在区域的完整链路状态信息,然后将一个区域的LSA简化和汇总后由边界路由(ABR)转发给另一个区域。

  1. 区域的ID可以表示为十进制的数字或者是一个IP。
  2. 区域的划分上,一般Area 0是骨干区域,其他为非骨干区域,非骨干区域无法直接通信,所有通信必须经过骨干区域。

Router ID :

OSPF区域内唯一标识路由器的IP地址

Router ID选取规则:
选取路由器loopback接口上数值最高的IP地址
如果没有loopback接口,在物理端口中选取IP地址最高的
上面两个都是自动选取的,下面这个是手动选取的规则:
使用router-id命令指定Router lD

DR和BDR:

当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,这时候需要一个路由器和所有的路由器互换LSA,减少LSA的数量,那么这个路由器被称为DR;在选DR的时候,也会选出一个作为备份,称为BDR;最后其他路由器(DRothers)只和DR和BDR形成邻接关系。

DR和BDR的选举方法:
自动选举DR和BDR:
网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
手工选择DR和BDR:
优先级范围是0~255,数值越大,优先级越高,默认为1·
如果优先级相同,则需要比较Router lD
如果路由器的优先级被设置为0,它将不参与DR和BDR的选举
DR和BDR的选举过程:
路由器的优先级可以影响一个选举过程,但是它不能强制更换已经存在的DR或BDR路由器

在OSPF中使用224.0.0.5和224.0.0.6作为组播地址,选举时,大家都是用组播地址224.0.0.5发送Hello包(这个时候路由器都认为自己是DR),当DR和BDR选出来后,DR和BDR使用224.0.0.5发送,其他路由器使用224.0.0.6发送。

OSPF的度量值为COST

COST=108/BW
最短路径是基于接口指定的代价(cost)计算的

接口类型 COST(108/BW)
Gigabit Ethernet 0.1
fast Ethernet 1
Ethernet 10
电话线56K 1785

OSPF的5个数据包:

承载在IP数据包内,使用协议号89

OSPF的包类型 描述
Hello包 用于发现和维持邻居关系,选举DR和BDR
数据库描述包(DBD) 用于向邻居发送摘要信息以同步链路状态数据库
链路状态请求包(LSR) 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
链路状态更新包(LSU) 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA
链路状态确认包(LSAck) 确认已经收到DBD/ LSU,每个LSA需要被分别确认

OSPF的7个状态

状态 作用
down状态 初始化,没有来自邻居的Hello包
init状态 收到第一个Hello包
2 Way 状态 双向建立会话,邻居表都建立完成
Exstart状态 建立主从关系
Exchange状态 交换摘要信息,到确认信息收到
Loading状态 加载详细信息
full状态 完全连接

OSPF的特点:

可适应大规模网络
路由变化收敛速度快
无路由环
支持变长子网掩码VLSM
支持区域划分
支持以组播地址发送协议报

配置命令

[R1]ospf 1 router-id 1.1.1.1
创建ospf进程,配置Router ID
[R1-ospf-1]area 0
创建区域0,区域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 192.168.10.0 0.0.0.255

OSPF多区域

生成OSPF多区域的原因:

改善网络的可扩展性、快速收敛

OSPF的通信量

  • 域内通信量(Intra-Area Traffic)
    单个区域内的路由器之间交换数据包构成的通信量
  • 域间通信量(Inter-Area Traffic)
    不同区域的路由器之间交换数据包构成的通信量
  • 外部通信量(External Traffic)
    OSPF域内的路由器与OSPF区域外或另一个自治系统内的路由器之间交换数据包构成的通信量

OSPF中的路由器的类型

  • 内部路由器:路由器只保存本区域的链路状态信息
  • 区域边界路由器(ABR):连接区域与其他区域的路由器;将连接区域的链路状态信息总汇后发给区域0,并将其他区域的的链路状态信息发给连接的区域
  • 自治系统边界路由器(ASBR):用来连接OSPF区域和外部的路由器;并将外部路由注入到OSPF网络中

OSPF的区域类型:

骨干区域:area 0,OSPF区域的核心,其他区域都要连接到该区域
非骨干区域–根据能够学习的路由种类来区分
非骨干区域分为标准区域,末梢区域(stub),完全末梢(Totally stubby)区域,非纯末梢区域(NSSA)。

末梢区域和完全末梢区域
满足以下条件的区域:
只有一个默认路由作为其区域的出口
区域不能作为虚链路的穿越区域
Stub区域里无自治系统边界路由器ASBR
不能骨干区域Area 0

末梢区域:没有LSA4、5、7通告

完全末梢区域:除一条LSA3的默认路由通告外,没有LSA3、4、5、7通告

末梢区域和完全末梢区域的作用,其主要目的是减少区域内的LSA条目以及路由条目,减少对设备CPU和内存的占用;
末梢区域和完全末梢区域中ABR会自动生成一条默认路由发布到末梢区域或完全末梢区域中。

链路状态数据库的组成:

  • 每个路由器都创建了由每个接口、对应的相邻节点和接口速度组成的数据库

  • 链路状态数据库中每个条目称为LSA_(链路状态通告),常见的有六种LSA类型

链路状态通告(LSA)类型:

LSA类型 描述 用途
Type 1 路由器LSA 由区域内的路由器发出的,描述了路由器的的链路状态和花费,传递到整个区域内
Type 2 网络LSA 由区域内的DR发出的,描述了区域内变更信息,传递到整个区域内
Type 3 网络汇总LSA ABR发出的,其他区域的汇总链路通告,描述了其他区域内某一网段的路由,区域间传递
Type 4 ASBR汇总LSA ABR发出的,用于通告ASBR信息,确定ASBR的位置,不会出现在ASBR所属区域之内
Type 5 AS外部LSA ASBR发出的,用于通告外部路由,告诉相同AS的路由器通往外部AS的路径,在整个AS中进行泛洪
Type 7 NSSA外部LSA NSSA区域内的ASBR发出的,用于通告本区域连接的外部路由,与Type 5类似,仅在非纯末梢区域内进行泛洪,传递时会被ABR转换为LSA5

末梢区域和完全末梢区域配置命令

在这里插入图片描述

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]q
[R1]int loop 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
[R1]ospf
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]net 12.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.1]net 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.1]stub

[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[R2-GigabitEthernet0/0/0]un sh
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.0.0.2 24
[R2-GigabitEthernet0/0/1]un sh
[R2-GigabitEthernet0/0/1]q
[R2]int loop 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]q
[R2]ospf
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]area 1
[R2-ospf-1-area-0.0.0.1]net 12.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1]stub
[R2-ospf-1-area-0.0.0.1]undo stub
[R2-ospf-1-area-0.0.0.1]stub no-summary
[R2-ospf-1-area-0.0.0.1]q

[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.0.0.3 24
[R3-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[R3-GigabitEthernet0/0/1]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 32.0.0.3 24
[R3-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[R3-GigabitEthernet0/0/0]q
[R3]int loop 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]q
[R3]ospf
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 32.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]q

[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 26.0.0.4 24
[R4-GigabitEthernet0/0/1]un sh
[R4-GigabitEthernet0/0/1]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 32.0.0.4 24
[R4-GigabitEthernet0/0/0]un sh
[R4-GigabitEthernet0/0/0]q
[R4]int loop 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]q
[R4]ospf
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]net 32.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]area 2
[R4-ospf-1-area-0.0.0.2]net 26.0.0.0 0.0.0.255

[R5]int g0/0/1
[R5-GigabitEthernet0/0/1]ip add 26.0.0.5 24
[R5-GigabitEthernet0/0/1]un sh
[R5-GigabitEthernet0/0/1]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 45.0.0.5 24
[R5-GigabitEthernet0/0/0]un sh
[R5-GigabitEthernet0/0/0]q
[R5]int loop 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5-LoopBack0]q
[R5]ospf
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]net 26.0.0.0 0.0.0.255
[R5-ospf-1-area-0.0.0.2]net 45.0.0.0 0.0.0.255
[R5-ospf-1-area-0.0.0.2]net 5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.2]q

[R6]int g0/0/0
[R6-GigabitEthernet0/0/0]ip add 45.0.0.6 24
[R6-GigabitEthernet0/0/0]un sh
[R6-GigabitEthernet0/0/0]q
[R6]int loop 0
[R6-LoopBack0]ip add 6.6.6.6 32
[R6-LoopBack0]q
[R6]ospf
[R6-ospf-1]area 2
[R6-ospf-1-area-0.0.0.2]net 45.0.0.0 0.0.0.255
[R6-ospf-1-area-0.0.0.2]net 6.6.6.6 0.0.0.0
[R6-ospf-1-area-0.0.0.2]q

在这里插入图片描述
在这里插入图片描述

路由的重分发

在大型的企业中,可能在同一网内使用到多种路由协议,为了实现多种路由协议的协同工作,路由器就需要使用路由重分发,将其学习到的一种路由协议通过另一种路由协议广播出去。

配置命令

[R1]rip 1
[R1-rip-1]import-route ospf 1 cost 3
把ospf协议注入到rip进行路由重分发,路径类型缺省为路径类型2(外部开销),成本开销为3(对于rip的度量值是跳数),rip中重分发ospf要指定cost的值,最大为15跳
[R1-rip-1]ospf 1
[R1-ospf-1]import-route rip 1 type 1 cost 1
把外部rip协议注入到OSPF进行路由重分发,使用路径类型1(内部开销+外部开销),成本开销为1(COST=100M/BW)

default-route-advertise always ------ OSPF重分发默认路由
import-route direct ---------------------OSPF重分发直连路由
import-route static ----------------------OSPF重分发静态路由

NSSA区域

概念

NSSA区域是OSPF RFC的补遗,LSA类型7仅在此区域泛红,有类似于末梢区域和完全末梢区域的优点,也可以包含ASBR。

区域内对应的LSA类型

区域类型 1&2 3 4&5 7
骨干区域(区域0) 允许 允许 允许 不允许
非骨干区域、非末梢区域 允许 允许 允许 不允许
末梢区域 允许 允许 不允许 不允许
完全末梢区域 允许 不允许(有一条默认路由) 不允许 不允许
NSSA 允许 允许 不允许 允许

OSPF路径和地址汇总

路径类型
优先级:1表示最高的优先级,4表示最低的优先级
路由表添加路由条目时,如果目的网段相同,会选择优先级高的路由条目添加到路由表中

区域内路径:优先级1
区域外路径:优先级2
类型1的外部路径:优先级3
类型2的外部路径:优先级4

OSPF地址汇总的作用:

地址汇总也是通过减少泛洪的LSA数量节省资源
可以通过屏蔽一些网络不稳定的细节来节省资源
减少路由表中的路由条目

OSPF地址汇总

在这里插入图片描述

虚链路概念

虚链路是一条通过一个非骨干区域链接到骨干区域的链路,这是一种应急措施,用于本来这个区域连接区域0的ABR损坏。

虚链路的目的:

  • 通过一个非骨干区域连接一个区域到骨干区域

  • 通过一个非骨干区域连接一个分段的骨干区域两边的部分区域

配置虚链路的规则及特点:

  • 虚链路必须配置在两台ABR路由器之间
  • 传送区域不能是一个末梢区域
  • 虚链路的稳定性取决于其经过的区域的稳定性
  • 虚链路有助于提供逻辑冗余

配置命令

[R1]ospf 1
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]vlink-peer 1.1.1.1
互相指定被穿越区域两端的ABR的路由ID
[R2]ospf 1
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2

[R2]dis ospf vlink
查看本地上通过虚链路建立的OSPF邻居关系

实验配置

在这里插入图片描述

[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[R1-GigabitEthernet0/0/0]un sh
[R1-GigabitEthernet0/0/0]int loop 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q
[R1]ip route-static 0.0.0.0 0 192.168.10.2 #配置默认路由

[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 192.168.10.2 24
[R2-GigabitEthernet0/0/0]un sh
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 192.168.20.2 24
[R2-GigabitEthernet0/0/1]un sh
[R2-GigabitEthernet0/0/1]int loop 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]q
[R2]ip route-static 1.1.1.1 32 192.168.10.1 #配置静态路由
[R2]ospf
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1]net 192.168.20.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1]net 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.1]q
[R2]ospf
[R2-ospf-1]import-route direct
#ospf重分发直连路由
[R2-ospf-1]import-route static
#ospf重分发静态路由
[R2-ospf-1]q

[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.20.3 24
[R3-GigabitEthernet0/0/1]un sh
[R3-GigabitEthernet0/0/1]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 192.168.30.3 24
[R3-GigabitEthernet0/0/0]un sh
[R3-GigabitEthernet0/0/0]int g0/0/2
[R3-GigabitEthernet0/0/2]ip add 192.168.40.3 24
[R3-GigabitEthernet0/0/2]un sh
[R3-GigabitEthernet0/0/2]int loop 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]q
[R3]ip route-static 0.0.0.0 0 192.168.40.5
[R3]ospf
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]net 192.168.30.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]area 1
[R3-ospf-1-area-0.0.0.1]net 192.168.20.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]q
[R3-ospf-1]default-route-advertise always
#ospf重分发默认路由
[R3-ospf-1]import-route direct
#ospf重分发直连路由
[R3-ospf-1]q

[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 192.168.30.4 24
[R4-GigabitEthernet0/0/0]un sh
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip add 192.168.50.4 24
[R4-GigabitEthernet0/0/1]un sh
[R4-GigabitEthernet0/0/1]int loop 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]q
[R4]rip
[R4-rip-1]version 2
[R4-rip-1]undo summary
[R4-rip-1]net 192.168.50.0
[R4-rip-1]ospf
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]net 192.168.30.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]q
[R4-ospf-1]q
[R4]rip 1
[R4-rip-1]import-route ospf 1 cost 3
#把ospf协议注入到rip进行路由重分发
[R4-rip-1]ospf
[R4-ospf-1]import-route rip 1 cost 1
#把外部rip协议注入到OSPF进行路由重分发
[R4-ospf-1]q

[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 192.168.40.5 24
[R5-GigabitEthernet0/0/0]un sh
[R5-GigabitEthernet0/0/0]int loop 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5-LoopBack0]q
[R5]ip route-static 0.0.0.0 0 192.168.50.3

[R6]int g0/0/0
[R6-GigabitEthernet0/0/0]ip add 192.168.50.6 24
[R6-GigabitEthernet0/0/0]un sh
[R6-GigabitEthernet0/0/0]int loop 0
[R6-LoopBack0]ip add 6.6.6.6 32
[R6-LoopBack0]q
[R6]rip
[R6-rip-1]version 2
[R6-rip-1]undo summary
[R6-rip-1]net 192.168.50.0
[R6-rip-1]net 6.0.0.0
[R6-rip-1]q

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shengmodizu/article/details/112328326