OSPF动态路由协议基础知识
1、OSPF的基本概念
OSPF(Open Shortest Path First)
OSPF(Open Shortest Path First)是一个内部网关协议(Interior Gateway Protocol,简称IGP)。与RIP相对,OSPF是链路状态路有协议,而RIP是距离向量路由协议。 链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络。可用于大型网络。
基本概念和术语:
链路状态:
OSPF路由器收集其所在网络区域上各路由器的连接状态信息,即链路状态信息(Link-State),生成链路状态数据库(Link-State Database)。路由器掌握了该区域上所有路由器的链路状态信息,也就等于了解了整个网络的拓扑状况。OSPF路由器利用“最短路径优先算法(Shortest Path First, SPF)”,独立地计算出到达任意目的地的路由。
区域:
OSPF协议引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域”(Area),“主干”的部分称为“主干区域”。每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态。每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。
2、 OSPF的数据包
1. hello包 发现、维持和创建邻居关系 10s 40s
2. dbd 包 数据库摘要
3. lsr 链路状态请求
4. lsu 链路状态更新 回应 lsr 承载lsa
5. lsack 链路状态确认包
3、OSPF的四种路由器类型
OSPF把自治系统划分成逻辑意义上的一个或多个区域,所有其他区域必须与区域0相连。
内部路由器(Internal Router):所有端口在同一区域的路由器,维护一个链路状态数据库。
主干路由器(Backbone Router):具有连接主干区域端口的路由器。
区域边界路由器(ABR):具有连接多区域端口的路由器,一般作为一个区域的出口。ABR为每一个所连接的区域建立链路状态数据库,负责将所连接区域的路由摘要信息发送到主干区域,而主干区域上的ABR则负责将这些信息发送到各个区域。
自治域系统边界路由器(ASBR):至少拥有一个连接外部自治域网络(如非OSPF的网络)端口的路由器,负责将非OSPF网络信息传入OSPF网络。
4、DR和BDR
指派路由器(DR)和备份指派路由器(BDR)
在多路访问网络上可能存在多个路由器,为了避免路由器之间建立完全相邻关系而引起的大量开销,OSPF要求在区域中选举一个DR。每个路由器都与之建立完全相邻关系。DR负责收集所有的链路状态信息,并发布给其他路由器。选举DR的同时也选举出一个BDR,在DR失效的时候,BDR担负起DR的职责。
点对点型网络不需要DR,因为只存在两个节点,彼此间完全相邻。 协议组成OSPF协议由Hello协议、交换协议、扩散协议组成。本文仅介绍Hello协议,其他两个协议可参考RFC2328中的具体描述。
当路由器开启一个端口的OSPF路由时,将会从这个端口发出一个Hello报文,以后它也将以一定的间隔周期性地发送Hello报文。OSPF路由器用Hello报文来初始化新的相邻关系以及确认相邻的路由器邻居之间的通信状态。
对广播型网络和非广播型多路访问网络,路由器使用Hello协议选举出一个DR。在广播型网络里,Hello报文使用多播地址224.0.0.5周期性广播,并通过这个过程自动发现路由器邻居。在NBMA网络中,DR负责向其他路由器逐一发送Hello报文。
5、OSPF的邻居建立过程
Down(关闭状态)开始发送hello但是没有收到邻居发来的hello 当收到对方发来hello 进入下一状态
Init(初始化状态)当收到对方发来的hello中有自己的Router-ID 进入下一状态
Two-way 邻居关系建立完成--进行选举--选举结束--进入下一状态--DR-other之间的稳定状态Exstart--选举主从关系--master先发DBD (Router-ID大的优先)
Exstart 预启动状态
Exchange 交换DBD
Loading 交换LSA 通过LSR去要LSA 对方通过LSU更新LSA
Full 邻接关系建立 启动SPF算法 计算路径
6、OSPF支持的网络接口类型
OSPF根据链路层协议类型将网络分为下列五种类型:任何二层链路,都会有一种网络接口类型来适应;根据拓扑和需求变化,可以改变网络接口类型来与之适应。
①点到点(P2P)网络
当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
Hello Time和Dead Time:10s/40s
是否选举DR和BDR:否
是否主动发现邻居:是
②广播(Broadcast)网络
当链路层协议是Ethernet、FDDI、以太网或者令牌环网时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPF DR的预留IP组播地址。以单播形式发送DD报文和LSR报文。
Hello Time和Dead Time:10s/40s
是否选举DR和BDR:是
是否主动发现邻居:是
③NBMA(Non-broadcast multiple access)网络
术语解释:非广播网络是指支持两台以上路由器互连,但是不具有广播能力的网络。在非广播网络上,OSPF有两种运行方式,非广播多路访问和点到多点。非广播多路访问(NBMA):在NBMA网络上,OSPF模拟在广播型网络上的操作,但是每个路由器的邻居需要手动配置,而且只能与NBMA类型的网络接口建立邻居关系。NBMA方式要求网络中的路由器组成全连接;点到多点:将整个非广播网络看成是一组点到点网络。每个路由器的邻居可以使用底层协议例如反向地址解析协议(Inverse ARP)来发现。对于不能组成全连接的网络应当使用点到多点方式,例如只使用PVC的不完全连接的帧中继网络。
当链路层协议是ATM,FR或X.25时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
Hello Time和Dead Time:30s/120s
是否选举DR和BDR:是
是否主动发现邻居:否
④点到多点(Point-to-Multipoint)网络
没有一种链路层协议会被缺省的认为是Point-to-Multipoint 类型。点到多点必须是由其他的网络类型强制更改的,即工程按需。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中以组播形式(224.0.0.5)发送Hello报文,以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。
Hello Time和Dead Time:30s/120s
是否选举DR和BDR:否
是否主动发现邻居:是
⑤虚连接(Virtual Link)网络
从上面的文章可以看出,OSPF的骨干区域必须是连续的,但是在物理上无法连续的时候,我们可以采用虚连接使得骨干区域在螺髻山连续。那么虚连接就是可以在任意两个区域边界路由器上简历,但是要求这两个区域边界路由器都有端口连接到一个共同的非骨干区域。这个非骨干区域就是Transit区域。虚连接其实是属于骨干区域的一条虚拟链路。注意:实际组网的时候不推荐虚连接,要尽可能在规划网络的时候就避免虚连接的出现。
7、OSPF报文的目的地址
8、OSPF工作过程
(1)了解自身链路
每台路由器了解其自身的链路,即与其直连的网络。
(2)寻找邻居
不同于RIP,OSPF协议运行后,并不立即向网络广播路由信息,而是先寻找网络中可与自己交换链路状态信息的周边路由器。可以交互链路状态信息的路由器互为邻居。
(3)创建链路状态数据包
路由器一旦建立了邻居关系,就可以创建链路状态数据包。
(4)链路状态信息传递
路由器将描述链路状态的LSA泛洪到邻居,最终形成包含网络完整链路状态信息的链路状态数据库。
(5)计算路由
路由区域内的每台路由器都可以使用SPF算法来独立计算路由。
9、OSPF协议主要优点
(1)OSPF 适合在大范围的网络:OSPF 协议当中对于路由的跳数,它是没有限制的,所以 OSPF 协议能用在许多场合,同时也支持更加广泛的网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。
(2)组播触发式更新:OSPF 协议在收敛完成后,会以触发方式发送拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播网络结构,对外发出信息时,它对其他设备不构成其他影响
(3)收敛速度快:如果网络结构出现改变,OSPF 协议的系统会以最快的速度发出新的报文,从而使新的拓扑情况很快扩散到整个网络;而且,OSPF 采用周期较短的 HELLO 报文来维护邻居状态。
(4)以开销作为度量值:OSPF 协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF 协议是以开销值作为标准,而链路开销和链路带宽,正好形成了反比的关系,带宽越是高,开销就会越小,这样一来,OSPF 选路主要基于带宽因素。
(5)OSPF 协议的设计是为了避免路由环路:在使用最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。
(6)应用广泛:广泛的应用在互联网上,其他会有大量的应用实例。证明这是使用最广泛的IGP 之一。
10、OSPF区域
OSPF 中划分区域的目的就是在于控制链路状态信息LSA 泛洪的范围、减小链路状态数据库LSDB的大小、改善网络的可扩展性、达到快速地收敛。
当网络中包含多个区域时,OSPF 协议有特殊的规定,即其中必须有一个 Area 0,通常也叫做骨干区域(Backbone Area),当设计 OSPF 网络时,一个很好的方法就是从骨干区域开始,然后再扩展到其他区域。骨干区域在所有其他区域的中心,即所有区域都必须与骨干区域物理或逻辑上相连,这种设计思想的原因是 OSPF 协议要把所有区域的路由信息引入骨干区,然后再依次将路由信息从骨干区域分发到其它区域中。
OSPF 将区域划分为几种类型。
骨干区域 :作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。
标准区域 :除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
完全末梢区域 :该类型区域中不接受关于 AS 外部的路由
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论