ospf基础配置实验 ospf实验原理_ospf基础配置实验


OSPF是一个水很深的路由协议,即使把 RFC 2328吃透了,倒背如流了,也不一定能完全掌握OSPF的精髓。

作为使用最广泛的路由协议,其优秀的性能和兼容性确实值得夸赞,但也正是因为如此,不同厂商在使用OSPF时还是会根据厂商自身的资源和优势对OSPF进行定制化,虽然变的不多,但是对于一些没有啥项目经验、没怎么摸过设备的“小白”来说,OSPF的水很深。

OSPF的工作原理


ospf基础配置实验 ospf实验原理_链路_02


当带有路由功能的网络设备运行OSPF协议之后,设备之间会开始交互hello报文,hello报文内通常包含了一些路由的基本信息,之后交互的是DBD报文,DBD报文,DBD报文简要描述了自身的LSA信息,通过收到的DBD报文来跟自身的LSA信息作对比
如果部分LSA信息缺失,则发送LSR报文,请求发送缺失部分,这时对等体设备会发出一个LSU报文,LSU主要更新LSA信息,然后发送ack报文来确保安全,最后LSU存放进LSA数据库,形成LSDB,再运行SPF算法,计算出最优路径,形成路由表。


ospf基础配置实验 ospf实验原理_ospf基础配置实验_03


OSPF的状态机
ospf状态机基于端口,在ospf进程还未启动时处于down状态;在hello报发送出去后处于attempt状态,该状态只会出现在frame-relay环境下;从邻居收到hello包,不包含自己RID信息后处于init状态双方都看到了对方发送的hello报文包含自己的RID时处于two-way状态。接下来的状态要基于网络环境来评定
如果是多路访问网路类型,直接选举出DR/BDR/DRothers来减少LSA信息的交换次数
如果是点对点网络类型,接下来就要交换初期DBD报文(不包含LSA头部),基于RID来选举主从,该阶段处于exstart状态,随后进入exchange状态,该状态交互包含LSA头部的DBD报文,然后进入load状态,根据DBD报文内容发送对应的LSA报文,最后进入full状态
接受并回复LSU报文、ack报文、加载路由表。


ospf基础配置实验 ospf实验原理_路由协议_04


OSPF协议涉及到的技术虚链路技术
在介绍虚链路技术之前,先了解一下设备的类型,设备分为ABR设备和ASBR设备,ABR设备是区域间设备,必须与区域0相连、至少连接一个其他区域;ASBR设备是自制系统边界设备。如图3.1所示,R2、R3为ABR设备,R1、R4为ASBR设备。


ospf基础配置实验 ospf实验原理_路由协议_05


OSPF区域拓扑图
我们都知道ospf协议一般情况下要求拓扑图中的普通区域必须要与核心区域紧密相连,形成向日葵状结构建立通讯。
但是如上图所示,拓扑图中的区域2没有与核心区域相连,如果想要与核心区域通讯,在一般情况下肯定是做不到的,这就反映出了向日葵状结构存在局限性比较大的问题,虚链路技术的存在就是为了解决这一问题,虚链路技术就是在ABR设备之间打通一个隧道来建立连接,以此完成通讯,还以上图为例,就是在R2和R3之间的区域1上打通一个隧道。


ospf基础配置实验 ospf实验原理_链路_06


负载均衡技术
路由器的负载均衡有着分担流量,优化带宽的作用,提高了网络的灵活性和可用性,主要通过修改带宽和cost值来实现。下面我们以下图利用负载均衡技术来解决问题。


ospf基础配置实验 ospf实验原理_ospf工作原理_07


首先我们查看一下R1的路由表


ospf基础配置实验 ospf实验原理_OSPF_08


可以看出R1上只有一条4.4.4.4的路由,想要把从13.1.1.3学到的4.4.4.4加入路由表,我们就要使用负载均衡技术,配置及结果如图所示:


ospf基础配置实验 ospf实验原理_ospf基础配置实验_09


从图中可以看出R1的路由表已经收到了来自13.1.1.3的4.4.4.4路由了,说明负载均衡配置成功。

知乎视频www.zhihu.com


总结:

1.链路状态路由协议出现的目的是为了克服距离矢量路由协议的缺点。链路状态路由协议具有如下特征。


ospf基础配置实验 ospf实验原理_链路_10

链路状态协议特征

链路状态路由协议仅在网络拓扑发生变化时才会生成路由更新。链路的状态发生变化后,检测到变化的设备将生成一个针对该链路状态通告(LSA),如下图


ospf基础配置实验 ospf实验原理_ospf工作原理_11

OSPF计算过程

链路状态路由器对LSDB应用Dijkstra算法(即SPF算法)以建立SPF树。每台路由器都从其SPF树中选择最佳路径,并将其加入到路由表中。设备都更新其数据库,然后更新路由表以反映新的拓扑。如上图所示,LSDB用于计算穿越网络的最佳路径。
链路状态路由器对LSDB应用Dijkstra算法(即SPF算法)以建立SPF树。每台路由器都从其SPF树中选择最佳路径,并将其加入到路由表中。
我们可以将LSDB视为一个城市的地图,城市中的每幅地图都相同,就像同一个区域内所有路由器的LSDB都相同一样。我们在城市中各个地点,各幅地图之间唯一的差别就是“当前位置”。根据当前位置,我们可以确定前往每个地点的最佳路线;前往特定地点的最佳路线随着我们当前所处的位置而异。链路状态路由器的功能与此类似,它们从自己的角度出发,使用LSDB计算前往区域内每个网络的最佳路径。
分发路由信息和计算路由的方式,OSPF和IS-IS都属于链路状态路由协议。
运行链路状态路由协议的路由器从网络或网络的指定区域内的所有路由器那里收集路由信息,然后每台路由器都使用Dijkatar(SPF)算法分别计算其前往网络中各个目的地的最佳路径。来自某台路由器的错误信息导致混乱的可能性较低,因为每台路由器都有其对网络的认识。
为确保网络中所有的路由器都作出一致的路由选择决策,每台路由器都必须记录下述信息。


ospf基础配置实验 ospf实验原理_链路_12

OSPF记录信息

1)直接相连的邻接路由器:失去与邻接路由器的关系后,路由器将在几秒钟之内将该邻居提供的所有路径作废,并重新计算路径。在OSPF中,有关邻居的信息存储在邻居表中,这个表也被称为邻接关系数据库。
2)网络或区域内的其他路由器及其连接的网路:路由器通过LSA来获得其他路由器和网络,LSA被扩散到整个网络,它存储在拓扑表或数据库(即LSDB)中。
3)前往每个目的地的最佳路径:每台路由器都使用Dijkstra(SPF)算法独立地计算前往网络中心每个目的地的最佳路径。所有路径都存储在LSDB中。最佳路径被加入到路由表(也称为转发数据库)中。路由器收到分组后,将根据路由表中的信息对其进行转发。
OSPF多种表叫法:


ospf基础配置实验 ospf实验原理_ospf基础配置实验_13

OSPF多种表叫法

为保存这些表,需要占用内存资源,这是链路状态协议的一个缺点。然而,在同一个区域内,所有OSPF路由器的拓扑表(LSDB)都相同,其中包含有关区域中所有路由器和链路的完整信息,因此每台路由器都能根据开销独立地选择前往区域中每个网络的无环路高效路径。还克服了距离矢量路由协议“根据流言选择路由”的缺点。
运行距离矢量路由协议的路由器依赖于邻居的路由抉择。路由器并不完全知道网络拓扑;而运行链路状态路由协议的每台路由器都完全了解网络拓扑,能够根据准确的网络拓扑信息独立地做出决策。