OSPF的基本概念和工作过程
开放式最短路径优先协议,是基于开放标准的链路状态路由选择协议,它完成各路由选择协议算法的两个主要功能:路径选择和路径交换
OSPF路由协议概述
OSPF是内部网关路由协议
在共同管理域下的一组运行相同路由选择协议的路由器的集合为一个自治系统,在互联网中,一个AS是一个有权决定本系统使用哪种路由协议的单位,它可以是一个企业,一座城市或一个电信运营商。随着网络的发展,上述对AS的定义已经不是十分准确了,网络的发展使得网络之间经常出现网络合并情况,导致同一个AS中使用的路由协议越来越多,所以AS的定义应该是在共同管理下的互联网络。
内部网关路由协议:用于在单一AS内决策路由,内部网关路由协议包括RIP,OSPF等
与内部网关路由协议相对应的是外部网关路由协议,外部网关路由协议用于在多个AS之间执行路由,例如,BGP就是外部网关路由协议
OSPF是链路状态路由协议
链路状态路由协议——各自“绘制”
链路状态路由协议——互相“交流”
邻居路由器:位于同一条物理链路或物理网段上的路由器。
链路状态数据库:也称为拓扑数据库,它包含所有路由器,路由器的链路及这些链路的状态,还包含所有网路及到达这些网络的所有路径。
邻接关系:当两台运行OSPF的邻居路由器的链路状态数据库达到一致(同步)时,他们就是完全邻接的。
OSPF的工作过程
运行RIP路由协议的路由器只需要保存一张路由表,而使用OSPF路由协议的路由器需要保存以下三张表
邻居列表:列出每台路由器已经建立邻接关系的全部邻居路由器。
链路状态数据库:列出网络中其他路由器的信息,由此显示了全网的网络拓扑。
路由表:列出通过了Dijkstra算法计算出的到达每个相连网络的最佳路径。
这三张表的作用和他们之间的关系。运行OSPF的路由器试图与邻居路由器建立邻接关系,在邻居之间互相同步链路状态数据库。使用最短路径算法(OSPF依据的算法是Dijkstra算法),从链路状态信息计算得到一个以自己为树根的“最短路径树”,到最后,每一台路由器都将从最短路径树中构建出自己的路由表。OSPF的路由器也仍然时依据路由表进行数据转发的
OSPF的基本概念
OSPF区域
OSPF路由协议与RIP相比,前者适合更大型的网络环境。
OSPF是一种链路状态型的路由协议,不会产生环路问题,因此不需要使用最大跳数等限制来防止环路的产生。
OSPF将AS分割成多个小的区域,OSPF的路由器只在区域内部学习完整的链路状态信息,而不必了解整个AS内部所有的链路状态。
DR和BDR
DR和BDR的概念
运行OSPF的路由器通过与邻居路由器建立邻接关系,互相传递链路状态信息,如下图所示,路由器A,B,C,D,E连接在同一广播网段上,如果每两个路由器之间都要建立邻接关系,那么,就会构成n(n-1)/2个邻接关系,每台路由器都要与其他所有的邻居路由器互相传递链路状态信息,这时情况就会显得比较混乱,而且也会浪费许多不必要的网络资源。
为了避免这些问题的发生,可以在该网段上选举一个指定路由器。由DR同网络中的其他路由器建立邻接关系,并负责将网段上的变化告知他们。
网络上的每一台路由器都和DR构成一个邻接关系,那么只需要建立n-1个邻接关系就可以了
为了实现冗余,当DR失效时,需要有一个新的DR来接替它,这个路由器就是备份指定路由器。网络上所有的路由器将和DR,BDR同时形成邻接关系,DR和BDR之间也将形成邻接关系,如果DR失效了,BDR将成为新的DR。
DR和BDR选举
可以由OSPF自动选举DR和BDR,也可以手动选举
自动选举DR和BDR
网段上router ID最大的路由器将被选举为DR,第二大的将被选举为BDR。
手动选举DR和BDR
要手工选举DR和BDR,需要设置路由器的优先级,每台路由器的接口都有一个路由器优先级,用一个八位的无符号整数来表示,大小范围是0~255,数值越大,优先级越高。
DR和BDR的选举过程
当一台OSPF路由器启动并发现它的邻居路由器时,他将去检查有效的DR和BDR路由器,如果DR和BDR路由器存在,这台路由器将接受已经存在的DR和BDR路由器。如果BDR路由器不存在,将执行一个选举过程,选出具有最高优先级的路由器作为BDR路由器。如果存在多个路由器具有相同的优先级,那么router ID最大的路由器将被选中,如果没有有效的DR路由器存在,那么BDR路由器将被提升为DR路由器,然后执行一个选举过程选举BDR路由器。
OSPF数据包类型
OSPF邻接关系的建立
失效(down)状态
这是OSPF建立交互关系的初始化状态,路由器没有与任何邻居交换信息
初始(Init)状态
路由器使用224.0.0.5发送hello收到后进入初始化状态
双向(2-way)状态
路由器都收到彼此的hello表知道对方的router ID,选举DR和BDR
准启动(exstart)状态
选举DR和BDR后进入准启动状态,其他路由器和DR以及BDR建立邻接关系
交换(exchange)状态
从DR或者BDR获取多个链路状态描述信息进入到交换状态,请求摘要信息
加载(loading)状态
发送LSR请求更新详细的信息,使用LSU进行更新,需要使用LSACK进行确认
完全邻居(full)状态
转发数据
OSPF的网络类型
点到点网络:两个点通信使用,永远使用邻居,不需要选DR和BDR,使用244.0.0.5通信
广播多路访问网络:使用比较广泛的互联网,互联网就是广播多路访问网络
非广播多路访问网络:不能进行数据包广播,帧中继网络是典型非广播多路访问网络,需要管理员进行手动建立邻接关系,OSPF报文使用单播协议发送
点到多点:一个点到多点通信使用,多个点被称为组,不需要选举DR和BDR,使用组播通OSPF的优势
适合大型企业网络使用
支持的网络类型广泛
支持多区域灵活性强
是一个无环路路由协议
收敛速度快10S
支持子网划分
支持组播协议报文发送OSPF数据包
OSPF的基本配置命令
启动OSPF进程
R1(config)#router ospf 1
手动指定router ID
R1(config-router)#router-id 1.1.1.1
宣告直连网络写反掩码和OSPF区域
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 192.168..0 0.0.0.255 area 0
修改路由器的优先级和成本
进入接口
R1(config)#interface fastEthernet 0/0
修改优先级
R1(config-if)#ip ospf priority 200
修改cost值
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip ospf cost 10
查看OSPF配置
查看邻接关系表
R1#show ip ospf neighbor
查看接口OSPF配置
R1#show ip ospf interface fastethernet 0/0
监控OSPF数据包
R1#debug ip ospf packet
原文地址:https://blog.51cto.com/14156658/2383065