概述
开放式最短路径优先(Open Shortest Path First,OSPF)是目前普遍使用的一种动态路由协议,它属于链路状态路由协议,具备路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优势。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议能够自动计算、更正路由,极大地方便了网络管理。但若是使用时不结合具体网络应用环境,不作好细致的规划,OSPF协议的使用效果会大打折扣,甚至引起故障。 redis
OSPF协议是一种链路状态协议。每一个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,经过可靠的泛洪与自治系统AS(Autonomous System)内的其余路由器周期性的交互,学习到整个自治系统的网络拓扑结构;并经过自治系统边界的路由器注入其余AS的路由信息,从而获得整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,从新生成LSA,路由器经过泛洪机制将新LSA通告出去,以便实现路由的实时更新数据库
1、四种路由类型
网络
DR 指定理由器负载均衡
当多路访问网络发生变化时,DR负责更新其余全部路由器。
BDR备份指定路由器ide
BDR会监控DR 的状态,并在当前DR发生故障时接替其角色。
ABR区域边界路由器
ABR用来链接骨干区域和非骨干区域,它与骨干区域之间既能够是物理链接,也能够是逻辑上的链接。
ASBR自治系统边界路由器oop
ASBR路由器是用来把其余路由选择协议学习到的路由经过路由选择重分配的方式注入到OSPF域的路由器。
2、五大区域
1.骨干区域(Area0)学习
2.非骨干区域——根据可以学习的路有种类来区分大数据
(1)标准区域debug
(2)末梢区域(stub)router
(3)彻底末梢(Totally stubbby)
(4)非纯末梢区域(NSSA)
3、五大数据包类型
hello包
是周期发送(直连网段),该包有router ID,保持时间40s,router优先级,邻居信息,area ID,DR、BDR、password,stub area标记;(就是发送看对方挂了没有)
数据库描述包(DBD)
该包实际上是对LSA的摘要,是用来进行比较的(就像一本书的目录)
链路状态请求包(LSR)
进行DBD比较后发现本身DBD中少lsa,会发送该包(两本书的目录不同,少的向多的要)
链路状态更新包(LSU)
收到LSR后把本身lsa发送给少的路由器,(把本身多的目录给他,让他和个人同样,少的向多的要)
链路状态确认包(LSAck)
收到LSA后发送确认,(我收到了!谢了!)
4、OSPF链路状态
1.链路状态数据库的组成
(1)每一个路由器都建立了由每一个接口、对应的相邻节点和接口速度组成的数据库
(2)链路状态数据库中的每一个条目称为LSA(链路状态通告),常见的有六种LSA类型
2.链路状态通告(LSA)类型
Type1 路由器LSA 由区域内的路由器发出的(全部路由)
Type2 网络LSA 由区域内的DR发出的(宣告网络状态信息)
Type3 网络汇总LSA ABR发出的,其余区域的汇总链路通告(汇总交换)
Type4 ASBR汇总LSA ABR发出的,用于通告ASBR信息(告知ASBR位置)
Type5 AS外部LSA ABR发出的,用于通告外部路由(外交官)
Type6 NSSA外部LSA NSSA区域内的ASBR发出的,用于本区域链接的外部路由
5、OSPF邻接关系的创建(七种状态)
1.OSPF启动的第一个阶段是使用hello报文创建双向通讯的过程
2.OSPF启动的第二个阶段是创建彻底邻接关系
Down
在Down状态下,OSPF进程尚未与任何邻居交换信息。OSPF在等待进入Init状态。
Init OSPF路由器以固定的时间间隔(缺省10s)发送类型1(Hello)的分组,以便与邻居路由器创建特殊的关系。
2-Way
每台OSPF路由器都使用分组试图与同一个IP网络中的全部邻居路由器创建双向状态或双向通讯。Hello分组中含有发送者已知的OSPF邻居列表。当路由器看到它本身出如今一个邻居路由器的Hello分组中时,它就进入了双向状态。
ExStart
每台OSPF路由器都使用分组试图与同一个IP网络中的全部邻居路由器创建双向状态或双向通讯。Hello分组中含有发送者已知的OSPF邻居列表。当路由器看到它本身出如今一个邻居路由器的Hello分组中时,它就进入了双向状态。
Exchange
在交换状态下,邻居路由器使用类型2的DBD分组来互相发送它们的链路状态信息,也就是说路由器相互描述它们的链路状态数据库。路由器将它们所学到的信息与其现存的链路状态数据库进行比较,而且单独确认每一个DBD分组,若是任何一台路由器接收到不在其数据库中的链路信息,该路由器就向其邻居请求有关该链路的完整更新信息。完整的路由信息在“Loading(加载)”状态下被交换。
Loading
在交换状态下,邻居路由器使用类型2的DBD分组来互相发送它们的链路状态信息,也就是说路由器相互描述它们的链路状态数据库。路由器将它们所学到的信息与其现存的链路状态数据库进行比较,而且单独确认每一个DBD分组,若是任何一台路由器接收到不在其数据库中的链路信息,该路由器就向其邻居请求有关该链路的完整更新信息。完整的路由信息在“Loading(加载)”状态下被交换。
Full
加载状态结束以后,路由器就进入全毗邻状态。每台路由器都保存着一张毗邻路由器列表,它就是称为毗邻数据库。
6、OSPF工做过程
7、内部网关协议和外部网关协议
(1)自治系统(AS)
(2)内部网关协议(IGP),例如:RIP、OSPF、ISIS等
(3)外部网关协议(EGP),例如:BGP等
8、OSPF的基本概念
1.OSPF区域
(1)为了适应大型的网络,OSPF在AS内划分多个区域
(2)每一个OSPF路由器只维护所在区域的完整链路状态信息
2.区域ID
(1)区域ID能够是表示成一个十进制的数字
(2)也能够表示成一个IP
3.骨干区域Area 0
(1)负责区域间路由信息传播
4.Router ID
(1)OSPF区域内惟一标识路由器的IP地址
5.Router ID选取规则
(1)选取路由器loopback接口上数值最高的IP地址(推荐)
(2)若是没有loopback接口,在屋里端口中选取IP地址最高的(不推荐)
(3)也可使用router-id命令指定Router ID
6.DR和BDR的选举方法
自动选举:
网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
手动选举:
(1)优先级范围0-255,数值越大,优先级越高,默认1
(2)若是优先级相同,则须要比较Router ID
(3)若是路由器优先级被设置为0,它将不参与DR和BDR的选举方式
7.DR 和BDR的选举过程
(1)路由器的优先级能够影响一个选举过程,可是它不能强制更换已经存在的DR或BDR路由器
8.OSPF的组播地址
(1)224.0.0.5
(2)224.0.0.6
9.OSPF的度量值COST
(1)COST=10^8/BW 代价(数值越小越好)
(2)最短路径是基于接口指定的代价(cost)计算的
10.OSPF数据包
(1)承载在IP数据包内,使用协议号89
11.OSPF的网络类型
(1)点到点
(2)广播多路访问网络
(3)非广播多路访问网络
(4)点到多点
9、OSPF的配置命令
启动OSPF路由进程 rout ospf process-id
指定OSPF协议运行的接口和所在的区域 network addresss invers-mask area area-ad
查看路由表信息(直连/学习) show ip route
只查看OSPF学习到的路由 show ip route ospf
查看OSPF协议配置信息 show ip protocol
查看OSPF是如何配置的以及ABR信息 show ip ospf
查看LSDB内的因此LSA数据信息 show ip ospf database
查看接口上OSPF配置信息
show ip ospf interface
查看OSPF邻居和邻接的状态 show ip ospf neighbor
查看OSPF邻居的详细信息(包括DR/BDR) show ip ospf neighbor detail
查看路由器“邻接”的整个过程 debug ip ospf adj
查看每一个OSPF数据包的信息 debug ip ospf packet
清空路由表 clear ip route
反掩码例子:
10、OSPF的三种通讯量
(1)域内通讯量
单个区域内的路由器之间交换数据包构成的通讯量
(2)域间通讯量(ABR)
不一样区域的路由器之间交换数据包构成的通讯量
(3)外部通讯量(ASBR)
OSPFR域内的路由器与DSPF区域外部或另外一个自治系统内的路由器之间交换数据包构成的通讯量
11、OSPF的应用环境
1.从如下几方面考虑OSPF的使用
(1)网络规模
(2)网络拓扑
(3)其余特殊要求
(4)路由器自身要求
2.OSPF的特色
(1)可适应大规模网络
(2)路由变化收敛速度快
(3)无路由环
(4)支持变长子网掩码VLSM
(5)支持区域划分
(6)支持以组播地址发送协议报
12、生成OSPF多区域的缘由
(1)改善网络的可扩展性
(2)快速收敛
十3、OSPF的路由器类型
OSPF路由器根据在AS 中的不一样位置,能够分为如下四类:
区域内路由器(Internal Routers)
该类路由器的全部接口都属于同一个OSPF 区域。
区域边界路由器ABR(Area Border Routers)
该类路由器能够同时属于两个以上的区域,但其中一个必须是骨干区域。ABR 用来链接骨干区域和非骨干区域,它与骨干区域之间既能够是物理链接,也能够是逻辑上的链接。
骨干路由器(Backbone Routers)
该类路由器至少有一个接口属于骨干区域。所以,全部的ABR 和位于Area0 的内部路由器都是骨干路由器。
十4、 路由器对路由条目的选择
1.路由器只把最优的路由条目添加到路由表
2.选择路由条目的依据
(1)管路距离
(2)度量值
3.负载均衡的路由条目
十5、末梢区域和彻底末梢区域
1.知足如下条件的区域
(1)只有一个默认路由做为其区域的出口
(2)区域不能做为虚链路的穿越区域
(3)Stub区域无自治系统边界路由器ASBR
(4)不是骨干区域Area 0
2.末梢区域
(1)没有LSA四、五、7通告
3.彻底末梢区域
(1)除了LSA3的默认路由通告外,没有LSA三、四、五、7通告
十6、路由重分发
1.理解路由重分发
(1)一个单一个IP路由协议是管理网络中IP路由的首选方案
(2)Cisco IOS能执行多个路由协议,每个路由协议和该路由协议所服务的网络属于同一个自制系统
(3)Cisco IOS使用路由重分发特性以交换由不一样协议建立的路由信息
2.路由重分发的考虑
(1)度量值
(2)管路距离
3.重分发到OSPF域中的路径类型
(1)类型1的外部路径(Type 1 external path,E1)
(2)类型2的外部路径(Type 2 external path,E1)
4.路由器A有两条到达外部目的网络10.1.2.0的路径
(1)E1类型
路径A-B-D的代价是25(20+5)——优先
路径A-C-D的代价为48(18+30)
(2)E2类型
路径A-B-D的代价是20
路径A-C-D的代价为18——优先
5.路由重分发配置
(1)语法:
redistribute protocol 【metric metric-value】【metric-type type-value】【subnets】
(2)示例
router rip
redistribute ospf 1 metric 10
router ospf 1
redistribute metric 200 subnets
十7、NSSA区域
1.NSSA区域是0OSPF RFC的补遗
(1)定义了特殊的LSA类型7
(2)提供相似stub area和totally stibby area的优势
(3)能够包含ASBR
2.OSPF链路状态通告
(1)LSA7(NSSA External LSA,NSSA外部LSA)
3.NSSA区域重分发路由类型
(1)N一、N2
(2)通过NSSA区域ABR后转换为E一、E2
4.配置NSSA区域命令
(1)语法
area area-id nssa 【no-summmary】
十8、小结
1.常见的六种LSA
LSA一、LSA二、LSA三、LSA四、LSA五、LSA7
2.OSPF的路径类型
区域内路径、区域外路径、类型1的外部路径和类型2的外部路径
十9、OSPF地址汇总
1.做用
(1)经过减小泛洪的LSA数量来节省资源
(2)能够经过屏蔽一些网络不稳定的细节来节省资源
(3)减小路由表中的路由条目
2.区域间路由汇总配置
(1)语法
area area-id range ip address mask
3.外部路由汇总配置
(1)语法
summary-address ip adress mask
二10、OSPF虚链路
1.虚链路
(1)指一条经过非骨干区域链接到骨干区域的链路
2.虚链路的目的
(1)经过一个非骨干区域链接到一个区域到骨干区域
(2)经过一个非骨干区域链接到一个分段的骨干区域
3.配置虚链路的规则及特色
(1)虚链路必须配置在两台ABR路由器之间
(2)传送区域不能是一个末梢区域
(3)虚链路的稳定性取决于其通过的区域的稳定性
(4)虚链路有助于提供罗技冗余
4.虚链路配置命令
(1)语法
area area-id vritual-link router-id