一、 OSPF简介
1、前言
由于静态路由由网络管理员手工配置,因此当网络发生变化时,静态路由需要手动调整,这制约了静态路由在现网大规模的应用。
动态路由协议因其灵活性高、可靠性好、易于扩展等特点被广泛应用于现网。在动态路由协议之中,OSPF(Open Shortest Path First,开放式最短路径优先)协议是使用场景非常广泛的动态路由协议之一。OSPF在RFC2328中定义,是一种基于链路状态算法的路由协议。
(1)产生的背景
在OSPF产生之前,网络大部分运行RIP动态路由协议主要有三大特性:逐跳收敛,分布式路由计算,以“跳数”为度量。
① 逐跳收敛
如(上图)所示,N1网络发生变化,RTA向RTB发出更新,RTB收到更新之后进行本地计算,完成计算后再向RTC发送路由变化通知,如此循环。逐跳收敛的方式,造成了网络收发数据缓慢的问题。
在“收到更新”==》“计算路由”==》“发送更新”的路由收敛过程中,RIP的局限性在于路由器需要在完成路由计算之后才可以向邻居发送路由变化通知。
OSPF路由协议将这个过程调整为:“收到更新”==》“发送更新”==》“计算路由”,即路由器从邻居收到路由更新后立刻向其他邻居路由器转发,然后再本地计算新的路由。这样的收敛方式可以大大降低全网路由收敛的时间。
② 传闻路由更新机制
RIP在计算路由完全依赖于从邻居路由器收到的路由信息,RTE仅依靠从RTD获取的信息计算路由,对RTA、RTB和RTC之间的网络情况并不了解。RIP在计算路由时,缺少对全局网络拓扑的了解。
因为RIP路由器仅从邻居路由器获取路由信息,所以对非最优或者错误路由信息,RIP路由器并不能识别或屏蔽。解决此问题的最佳方式是路由器收集全网的信息,并基于这些信息独立计算路由。
③ 以“跳数”为度量
因为RIP基于跳数的度量方式,所以N1与N2网络互访时会选择RTA->RTB->RTD->RTE作为最优路径。显然RTB->RTC->RTD之间的以太链路要比RTB->RTD的串行链路带宽要高的多。使用基于跳数的度量方式,没有将链路花销等因素考虑进去,因此可能会产生次优路由。
基于跳数的度量方式并没有考虑数据包的链路转发延迟,如果采用以累积带宽为选路参考依据,可以更好的规避选择次优路径的风险。
(2)RIP的缺陷和OSPF改进
RIP特性 | 带来的问题 | 优化或解决的方式 |
逐跳收敛 | 收敛慢,故障恢复时间长 | “收到更新->计算路由->发送更新” 改为“收到更新->发送更新->计算路由” |
传闻路由更新机制 | 缺少对全局网络拓扑的了解 | 路由器基于拓扑信息,独立计算路由 |
最多有效跳数为15 | 环形组网中,使远端路由不可达 | 不限定跳数 |
以“跳数”为度量 | 存在选择次优路径的风险 | 将链路带宽作为选路参考值 |
RIP与OSPF比较
1 相同点
OSPF有两个版本ospf-1(还未正式发布就夭折)和ospf-2,RIP也是有两个版本RIP-1和RIP-2;
OSPF-2与RIP-2一样是一种无类路由协议,支持VLSM、CIDR等特性;
OSPF-2与RIP-2一样都支持认证功能;
RIP封装在UDP报文中,OSPF封装在IP报文中,UDP和IP都是一种无连接、不可靠的通信方式;
RIP和OSPF协议报文的安全传输都是靠协议本身;
2 不同点☆☆☆
OSPF是基于链路状态(Link-State)的路由协议,而RIP是基于距离矢量路与协议(二者的根本性差别);
RIP是一种“传话”的方式来传递路由有关的路由信息,OSPF是以一种“宣告”的方式,OSPF的收敛时间明显小于RIP;
RIP是一种“嘈杂”的路由协议,路由收敛后仍然周期性地持续地存在大量的RIP协议报文流量;OSPF是一种“安静”的路由协议,路由收敛后,OSPF网络中只存在一小部分OSPF报文;
RIP协议是以UDP作为其传输层协议的,RIP是封装在UDP报文中,端口号是520;OSPF没有传输层协议,OSPF是直接封装在IP报文中的;
RIP报文有两种:请求报文和响应报文;
OSPF有五种:hello报文、数据库描述报文(DD)、链路状态请求报文(LSR)、链路状态更新报文(LSU)和链路状态确认报文(LSAck);
RIP以“跳数”来作为路由开销的定义,OSPF理论上可以采取任何参量作文开销定义,最常见的就是采用链路带宽来定义路由开销;
OSPF具有区域化结构,RIP没有;
OSPF网路中路由器有角色之分,不同路由器有着不同的功能和作用,RIP没有角色之分;
OSPF每台路由器都有独一无二的路由器身份号(Router-ID),在RIP网络中是没有Router-ID的;
内容 | OSPF | RIPv2 | RIPv1 |
协议类型 | 链路状态 | 距离矢量 | 距离矢量 |
CIDR | 支持 | 支持 | 不支持 |
VLSM | 支持 | 支持 | 不支持 |
自动汇总 | 不支持 | 支持 | 支持 |
手动汇总 | 支持 | 支持 | 不支持 |
路由的泛洪 | 周期性的组播更新 | 周期性的组播更新 | 周期性的组播更新 |
路径的开销(度量值) | 带宽 | 跳数 | 跳数 |
路由的收敛速度 | 快 | 慢 | 慢 |
跳数的限制 | 没有限制 | 限制15跳 | 限制15跳 |
认证 | 支持 | 支持 | 不支持 |
层次化网络 | 支持(区域) | 不支持 | 不支持 |
路由更新 | 事件触发更新 | 路由表更新 | 路由表更新 |
路由的计算方法 | SPF | Bellman-ford | Bellman-ford |
(3)有类路由、无类路由
最近看到RIP和OSPF方面了。这两个协议在NA里面被划分为距离矢量路由协议和链路状态路由协议。但是在NP里面划分路由又有种方法是基于有类的路由协议和无类的路由协议。
RIP正是基于有类的路由协议,OSPF则是无类的路由协议。
有类的路由不会识别子网的信息,如宣告10.0.1.0/24 172.16.1.0/22 192.168.1.64/28 路由表中只会识别A类10.0.0.0/8,B类172.16.0.0/16 C类192.168.1.0/24
无类的路由协议不会根据A B C类来识别,根据子网掩码的长度来区分网段,所以说无类的路由协议都可以不支持路由自动汇总
有类的路由自然也就不支持VLSM 无类的路由就可以支持VLSM
IP路由协议可以被分为两大类,一类是有类的,另一类是无类的。
IP Classful:RIPv1, IGRP ,EGP
IP Classless:RIPv2 ,EIGRP, OSPF, IS-IS, BGP
有类的路由协议只会传送网络前缀(网络地址),但是不会包含子网掩码。当它传送更新时,它首先检查直接连接的网络是否和发送更新的网络属于同一个大一点的子网,如果是的,那么它会继续检查它们的子网掩码是否相等,如果不等,那么更新信息会被丢弃而不会被广播。
当路由器A发送更新给路由器B时,它遵循下列几个步骤:
1、路由器A检查192.168.1.0/24是否和192.168.2.0/30(更新传向过的网络)属于同一个大一点的网路。
2、答案是是的,所以路由器A比较它们的子网掩码192.168.1.0/24和192.168.2.0/30。
3、因为它们有两个不同的子网掩码,所以信息被丢弃。这就是为什么有类路由协议不支持VLSM(可变长子网掩码),无类路由协议传输网络前缀(网络地址)的同时也会传输子网掩码,所以它支持VLSM。
有类地址:早期的IP地址没有子网掩码,所有的地址都属于相应的主类网,距离矢量路由协议如RIPv1,IGRP属于有类的路由协议,它所不能从邻居那里学到子网,所有关于子网的路由被学到后自动转为相应的主类网。譬如182.16.1.0就会变成B类地址的主类网182.16.0.0。
无类地址:根据可变长度的子网掩码划分不同的网络。譬如182.16.1.101,有类的话所在子网网段为182.16.0.0,子网掩码255.255.0.0,现在将子网掩码改为255.255.255.252的30位掩码,所在子网网段就是182.16.1.100。支持可变长度子网掩码的路由协议有RIP2,OSPF以及EIGRP
2、OSPF定义
OSPF:开放式最短路径优先协议(Open Shortest Path First) 协议是IETF定义的一种基于链路状态的内部网关路由协议,是目前业内使用非常广泛的IGP协议之一。
·IPv4协议使用的是OSPF Version 2(RFC2328);IPv6协议使用OSPF Version 3(RFC2740)
·运行OSPF路由器之间交互的是链路状态(Link State,LS)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息。
· OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。
·每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。
3、动态路由协议用处
为什么需要动态路由协议?
静态路由是由工程师手动配置和维护的路由条目,命令行简单明确,适用于小型或稳定的网络。
静态路由有以下问题∶
1)无法适应规模较大的网络∶随着设备数量增加,配置量急剧增加。
2)无法动态响应网络变化∶网络发生变化,无法自动收敛网络,需要工程师手动修改。
4、OSPF在园区网络中的应用
OSPF是一种基于链路状态的路由协议,它从设计上就保证了无路由环路。OSPF支持区域的划分,区域内部的路由器使用SPF最短路径算法保证了区域内部的无环路。OSPF还利用区域间的连接规则保证了区域之间无路由环路。
OSPF支持触发更新,能够快速检测并通告自治系统内的拓扑变化。
OSPF可以解决网络扩容带来的问题。当网络上路由器越来越多,路由信息流量急剧增长的时候,OSPF可以将每个自治系统划分为多个区域,并限制每个区域的范围。OSPF这种分区域的特点,使得OSPF特别适用于大中型网络。
OSPF可以提供认证功能。OSPF路由器之间的报文可以配置成必须经过认证才能进行交换。
5、OSPF特点
1、OSPF属于IGP,开放最短路径优先协议。收敛速度快,相对RIP快,相对BGP快,相对EIGRP慢;
2、链路状态协议,无类的路由协议,支持VLSM (可变长子网掩码),支持CIDR;
3、OSPF封装在IP层,端口号89,管理距离AD(prefrence)协议内部优先级10,外部优先级150 ;
4、OSPF基于接口开销(cost)来进行路由计算的,相对RIP的跳数,更优100M/接口带宽;
5、OSPF支持等价负载均衡 EIGRP(非等价负载均衡),等价负载多路径协议(负载均衡)
6、OSPF支持区域划分,多区域配置,区域0为骨干区域,其他为常规区域。
7、OSPF安全措施:GTSM ,采用TTL安全机制。0是不认证,1、简单明文认证,2、MD5认证;
8、OSPF在同一个区域内是绝对无环路,基于SPF算法,不可能产生环路由;
9、OSPF使用组播来收发报文:OSPF组播地址:224.0.0.5(DR router) 224.0.0.6;
OSPF协议拥有三个特点:
① 路由信息传递与路由计算分离
OSPF作为链路状态路由协议,不直接传递各路由器的路由表,而传递链路状态信息,各路由器基于链路状态信息独立计算路由。
② 基于SPF算法
所有路由器各自维护一个链路状态数据库。邻居路由器间先同步链路状态数据库,再各自基于SPF(Shortest Path First)算法计算最优路由,从而提高收敛速度。
③ 以“累计链路开销”作为选路参考值
在度量方式上,OSPF将链路带宽作为选路时的参考依据。 “累计带宽”是一种要比“累积跳数”更科学的计算方式。
整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】