OSPF路由基础.docx
- 文档编号:6719697
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:17
- 大小:1.34MB
OSPF路由基础.docx
《OSPF路由基础.docx》由会员分享,可在线阅读,更多相关《OSPF路由基础.docx(17页珍藏版)》请在冰豆网上搜索。
OSPF路由基础
OSPF基础
引入
◆RIP路由协议存在无法避免的缺陷,多用于构建中小型网络
◆随着网络规模的日益扩大,RIP路由协议已经不能完全满足需求
◆OSPF路由协议解决了很多RIP路由协议无法解决的问题,因而得到广泛应用
课程目标
◆掌握OSPF路由协议基本原理
◆熟练配置单区域OSPF
◆掌握OSPF常见问题定位手段
RIP的缺陷
用跳数评估的路由并非最优路径
如果RTA选择S0/0传输时间回大大缩短为3S。
如图:
如果使用RIP协议,RTA路由根据距离矢量算法,RTA路由在选择到达目标网络10.24.0.0最优路径为RTB,因为RTA和RTB是直连路由跳数最小。
但如果从网络传输时延角度评估,这种选择显然不恰当,因为通过RTC到达目的网络的另一条路径的带宽远远高于选定的路径。
事实上,在大多网络中,以网络带宽和链路时延来衡量网络质量更加合理。
最大跳数16导致网络尺度小
RIP协议限制网络直径不能超过16跳,这决定了其无法用于构建规模较大的网络。
如图:
如果RTA到RTB路由中间刚好为16跳,这个网络目的地址是被认为不可达并丢弃数据包。
收敛速度慢
◆RTA和RTB收到的路由不可达信息后为了防止路由环路并进入抑制时间,在抑制时间内不能及时及时更新路由表,必须等到抑制时间结束
◆由于RIP更新周期较长,一个邻居突然掉线,其他路由器可能需要较长时间才能察觉,这也造成RIP的收敛速度较慢。
更新发送全部路由表浪费网络资源
为了保证网络同步,RIP会每隔一个周期向相邻路由器发送自身的全部路由信息,如果RIP网络规模越来越大,路由信息包也增多并占用大量的网络资源。
假设RTA和RTB各有1000条路由,每个路由各占20个字节,每次路由更新时,RTA与RTB之间单向需消耗至少160KB的带宽资源,这显然对网络是一个很重的负担。
什么是OSPF
◆OSPF(OpenShortestPathFirst,开放最短路径优先)是IETF开发的基于链路状态的自治系统内部路由协议,这类路由只关心网络中链路和接口状态(UP、Down、IP地址、掩码、带宽、利用率和时延等)每个路由将已知的的链路状态向该区域的其他路由器通告,使得网络上每台路由器对网络结构都有相同的认识。
之后,路由器以其为依据,使用SPF算法计算和选择路由。
◆OSPF仅传播对端设备不具备的路由信息,网络收敛迅速,并有效避免了网络资源浪费
◆OSPF直接工作于IP层之上,IP协议号为89
◆OSPF以组播地址发送协议包
OSPF协议工作过程概述
OSPF协议工作过程主要有4个阶段:
寻找邻居、建立邻接关系、链路状态信息传递、计算路由。
寻找邻居:
不同于RIP,OSPF运行后,并不立即向网络广播路由信息,而是先寻找能与自己交互链路状态信息的周边路由。
建立邻接关系:
邻接关系可以想象为一条点到点的虚链路,它是在一些邻居路由器之间构成的。
只有建立可靠邻接关系的路由器才相互传递链路状态信息。
链路信息状态传递:
OSPF路由器将建立描述网络链路状况的LSA(LinkStateAdvertisement,链路状态公告)建立邻接关系的OSPF路由器之间将交互LSA,最终形成包含网络完整链路状态信息的LSDB(LinkStateDatebase,链路状态数据库)
计算路由:
获得了完整的LSDB后,OSPF区域内的每个路由器将会对该区域的网络结构有相同的认识,随后各路由器依据LSDB的信息用SPF(ShortestPathFirt,最短路径优先)算法独立计算出路由。
寻找邻居
◆OSPF路由器周期性地从其启动OSPF协议的每一个接口以组播地址224.0.0.5发送Hello包以寻找邻居,Hello包携带的参数例如路由器ID、始发路由器接口区域ID、始发路由器接口地址掩码、选定的DR路由器、路由器优先级等信息。
如图:
当RTA向RTB初次发送Hello包时,RTB仅将RTA作为邻居候选人并将状态记录为init状态;只有在RTA与RTB相互成功协商Hello包中所指定的某些参数后,才真正变为邻居关系,记录状态为2-way状态。
当双方的链路状态交互成功后,状态将变迁为Full状态,这表明邻居路由器之间的链路状态信息已经同步。
◆一台路由器可以有很多邻居,也可以成为其他路由器的邻居。
为了跟踪和识别每台邻居路由器OSPF协议定义了路由器ID。
路由器ID在OSPF区域内唯一标识一台路由器的IP地址。
一台路由器可能有多个接口启动OSPF,并与其他路由器建立多个邻居关系,但网络里其他路由器只会使用这台路由器ID来标识这台路由器。
建立邻接关系
◆可以将邻接关系比喻为一条点到点的虚连接,那么可以想象,在广播型网络的OSPF路由之间邻接关系是很复杂的。
假设5台路由器,那么他们就有10个邻接关系;10台路由器,那么他们就有45个邻接关系;有N台路由器,那么就有N(N-1)/2台路由器,这样就造成网络资源和路由器处理能力的巨大浪费。
◆为解决以上问题,OSPF在广播型网络里选举一台DR(DesignatedRouter,指定路由器)DR负责LSA描述该网络类型及该网络内的其他路由器,同时也负责管理他们之间的链路状态信息交互过程。
DR选定后,该广播型网络内的所有路由器只与DR建立邻接关系,与DR互相交换链路状态信息以实现OSPF区域内路由器链路状态信息同步。
DR是一个OSPF路由器接口特性,不是整台路由器的特性;DR是某个网段的DR,而不是全网的DR
◆如果DR失效,所有的邻接关系都会消失,此时必须重新选取一台新的DR并重新同步网络信息。
所以网络将在一个较长的时间内无法有效地传送链路状态信息和数据包。
◆为了加快收敛速度,OSPF在选举DR的同时,还会在选举一个BDR(BackupDesignatedRouter,备份指定路由器)。
网络上所有路由器与DR和BDR同时形成邻接关系,如果DR失效,BDR立即成为新的DR。
DR和BDR选举
◆在初始阶段,OSPF路由器会在Hello包将DR和BDR指定0.0.0.0。
当路由器接收到邻居的Hello包后,检查Hello包携带的路由器优先级、DR和BDR等字段,然后列出所有具备DR和BDR资格的路由器。
(优先级为0的路由器不具备选举资格)
◆路由器优先级取值0-255,在具备选举资格的路由器中,优先级最高的将被选为BDR,优先级相同则选择路由ID大的优先。
BDR选举成功后,进行DR选举。
如果有一台或多台路由器宣传自己为DR,则优先级最高的将被宣告为DR,优先级相同则选择路由ID大的优先。
如果网络里没有路由宣称自己为DR,则将已有BDR推举为DR,然后再进行选举一次BDR。
等DR于BDR选举成功后,OSPF路由器会将DR和BDR的IP地址设置到Hello包的DR和BDR字段上,表明该OSPF区域内的DR和BDR已经有效。
◆最然路由器的优先级可以影响选举过程,但它不能强制更改已经有效地DR和BDR,即使是该路由器优先级很高,也影响不了已经存在的DR和BDR。
传递信息过程
为避免网路资源的浪费,OSPF路由器采取路由增量更新机制发布LSA(链路状态公告),即只发布邻居缺失的联络状态给邻居。
当网路发生变化时,路由器立即向已经建立邻接关系的邻居发送LSA摘要信息;而如果网络未发送变化,OSPF路由器每隔30分钟向已经建立好邻接关系的邻居发送一次LSA摘要信息。
摘要信息仅对该路由的链路状态进行简单描述,并不是具体链路信息。
当邻居接收到LSA信息后,比较自身链路状态信息,如果发现对方具有自己不具有的链路信息并向对方发送请求链路信息,否则不做任何动作。
当OSPF路由器收到邻居发来的请求某个LSA的包后,将立即向邻居提供它所需要的LSA,邻居收到LSA后会立即返回确认信息进行确认。
◆以上是RTB获得RTALSA的过程,RTA也通过相同的过程获得RTB的LSA
◆在RTB于RTA的LSA信息同步后,RTA在RTB邻居表内的状态变迁为FULL状态
◆OSPF协议包具备超过重传机制。
在LSA更新阶段,如果发送的包在规定时间内没有收到对方的反应,则认为包丢失,重新发送包。
◆为了避免网路时延造成路由器超时重传,OSPF协议为每个包编写从小到大的序列号,当路由器接收到重复序列号的包时,只响应第一个包。
◆同时LSA更新时携带掩码,OSPF支持VLSM,能准确反映实际网路情况。
路由计算
OSPF路由计算通过以下步骤完成:
1、评估一台路由器到另外台路由器所需要的开销(Cost)
OSPF协议时根据路由器的每一个接口指定的度量值来决定最短路径的,这里的度量值指的是接口指定的开销。
一条路由的开销是指沿着到达目的网络的路径上所有路由器出接口的开销总和。
Cost值与接口带宽密切相关。
2、同步OSPF区域内每台路由器的LSDB
◆OSPF路由器通过交换LSA实现LSDB的同步。
LSA不但携带了网络连接状态情况信息,而且携带了个接口的Cost信息
◆由于一条LSA是对一台路由器或一个网段拓扑结构的描述,整个LSDB就形成了对整个网络拓扑结构的描述。
3、使用SPF(ShortestPathFirst,最短路径优先算法)计算出路由
OSPF路由器用SPF算法以自身为根节点计算出一棵最短路径树,在这棵树上,由根到各节点的累计开销最小,即由根到各节点的路径在整个网络中都是最优的,这样也就获得了由根去往各个节点的路由。
计算完成后,路由器将路由加入OSPF路由表。
当SPF算法发现有两条到达目标网络的路径的Cost值相同,就会将这两条路径都将加入到OSPF路由表,形成等价路由。
OSPF协议分区域管理
OSPF协议使用了多个数据库和复杂的算法,这势必会耗费路由器更多的内存和CPU资源。
当网络规模不断扩大时路由更新包也会随这增多,给网络带来难以承受的负担。
为了减少这些不利的影响,OSPF协议提出分区域管理的解决方法。
OSPF将一个大的自治系统划分为几个小的区域(Area),路由器仅需要与其所有区域的其他路由器建立邻接关系共享相同的链路状态数据库,而不需要考虑其他区域的路由器。
在这种情况下,原来庞大的数据链路状态数据库被划分为几个小的数据库,并分别在每个区域里进行维护,从而降低了对路由器内存和CPU的消耗;同时,Hello和LSA更新包被控制在一个区域内,更有利于网络资源的利用。
为区分各个区域,每个区域都用一个32位的区域ID来标识。
划分区域以后,OSPF被划分为三大类型:
1、区域内通信:
在同一个区域内的路由器之间通信2、区域间通信:
不同区域的路由器之间的通信3、区域外部通信:
OSPF域内与另一个自治系统内的路由器之间的通信。
为完成上述通信,OSPF需要对本自治系统内的各区域及路由器进行任务分工。
◆当OSPF划分区域后,需要一个区域作为所有区域的枢纽即骨干区域(BackboneArea)负责汇总每一个区域的网络拓扑路由到其他所有区域,所有区域间通信都必须经过该区域。
协议规定区域0是骨干域保留的区域ID号。
◆所有非骨干区域都必须与骨干区域相连,非骨干区域之间不能直接交换数据包,它们之间的路由传递只能通过区域0完成。
区域仅是对区域的标识,与内部路由IP分配无关。
◆划分区域后,仅在同一区域的OSPF路由器建立邻居和邻接关系。
为保证区域间能够正常通信,区域边界路由器需要同时加入两个或两个以上的区域,负责向它连接发布其他区域的LSA通告,以实现OSPF自治系统内的链路状态同步,路由信息同步。
(区域边界路由器是连接一个区域或多个区域到骨干区域的路由器)
OSPF协议区域LSA发布
如图:
区域1和区域10.0.0.1只向区域0(骨干区域)发布自己区域的LSA,而区域0则必须负责将其自身LSA向其他区域发布,并且负责在非骨干区域之间传递路由信息。
为进一步减少区域间LSA的数量,OSPF区域边界路由器可以执行路由聚合。
如在区域10.0.0.1内,所有路由器的IP地址都20.1.0.0/16的网段内,那么可以在连续区域0和区域10.0.0.1的区域边界路由器上配置路由聚合,让其在向区域0发布区域10.0.0.1的LSA时,只描述20.1.0.0/16网段即可,不需要具体描述区域10.0.0.1内的20.1.2.0/24、20.1.0.0/24等网段的LSA,这样不仅大大减少区域间传递的LSA数量,还能降低整个OSPF自治系统内路由器维护LSDB数据库资源要求,降低SPF算法计算的复杂度。
OSPF基本配置命令
配置RouterID
[Router]routeridip-address
启动OSPF进程
[Router]ospf[process-id]
重启OSPF进程
配置OSPF区域
[Router-ospf-100]areaarea-id
在指定的接口上启动OSPF
[Router-ospf-1-area-0.0.0.0]networknetwork-addresswildcard-mask
OSPF可选配置命令
配置OSPF接口优先级
[Router-Ethernet0/0]ospfdr-prioritypriority
配置OSPF接口Cost
[Router-Ethernet0/0]ospfcostvalue
单区域OSPF配置示例一
如图:
将RTA上的lookback接口0的IP地址1.1.1.1设置为RTA的路由ID,将RTA所有接口的都加入OSPF的区域0.将RTB上的lookback接口0的IP地址2.2.2.2设置为RTB的路由ID,将RTC上的lookback接口0的IP地址3.3.3.3设置为RTC路由ID。
完成上述配置后,由于RTA的E0/0口与RTB的E0/0口共享同一条数据链路,并且在同一个网段内,故它们互为邻居,假设RTA的OSPF先启动,那么RTA的E0/0口会被选举为RTA与RTB之间网络的DR,假设RTA与RTB的OSPF同时启动,根据优先级相同时路由ID大的优先原则,RTB的E0/0会被选举为RTA与RTB之间网络的DR。
同理:
RTA的EO/1与RTC的E0/1互为邻居,假设RTA的OSPF先启动,那么RTA的E0/1会被选举为RTA与RTC之间网络的DR,假设RTA和RTC的OSPF同时启动,RTC的E0/1会被选举为RTA与RTB之间网络的DR。
RTC的E0/0与RTB的E0/1互为邻居,假设RTC的OSPF先启动,那么RTC的E0/1会被选举为RTC与RTB之间网络的DR,假设RTC和RTB的OSPF同时启动,RTB的E0/0会被选举为RTA与RTB之间网络的DR。
在RTC路由表上将记录到达地址1.1.1.1/32网段出接口为E0/1,到达地址2.2.2.2/32网段出接口为E0/0。
单区域OSPF配置示例二
本例在上一例基础上修改了RTA和RTC的OSPF接口配置,在RTA的EO/0配置优先级为0,接口Cost为50;在RTA的E0/1上配置优先级为0,接口Cost为10。
在RTC的E0/0上配置接口Cost为100,在RTC的E0/1上配置接口开销为10。
完成以上配置,将RTA、RTB、RTC的所有物理接口shutdown,然后先将RTA的接口UP,再将RTB的接口UP,最后将RTC的接口UP。
由于RTA的E0/0和E0/1的接口优先级为0,它们都不具备DR/BDR的选举权,故在RTA和RTB之间的网络上RTB为DR,在RTA和RTC之间的网络上RTC位DR,在RTB和RTC之间的网络上,由于RTB先启动,RTB将作为该网络的DR。
在RTC路由表上将记录到达地址1.1.1.1/32网段出接口为E0/1,到达地址2.2.2.2/32网段出接口也为E0/1,因为RTC从E0/1出发到达RTA、再由RTA的E0/0出发到达RTB的Cost为60,比从RTC直接从E0/0出发到达RTB的开销100要低。
多区域OSPF配置示例
◆RTA与RTC配置域单区域OSPF配置相同,重点集中在RTB配置上
◆RTB作为边界路由器,需要同时加入RTA和RTC所有的区域,需要注意的是在RTB指定接口加入OSPF区域0的时候,不在该区域的接口E0/1的地址不能加入区域0。
同样,接口E0/0的地址不能加入区域192.168.0.1。
显示OSPF邻居信息
显示OSPF的链路状态数据库
显示OSPF的路由信息
其他OSPF显示命令
显示OSPF摘要信息
[Router]displayospfbrief
显示启动OSPF的接口信息
[Router]displayospfinterface
显示OSPF的出错信息
lend借贷lentlent[Router]displayospferror
显示OSPF的进程信息
shrink收缩shrank/shrunkshrunk/shrunken[Router]displayospfINTEGER<1-16635>
调试OSPF
bend使弯曲bentbentOSPF事件调试信息
cast抛castcast
do/does做diddoneOSPF链路状态通告调试信息
drink喝drankdrunk
OSPF包调试信息
shoot射击shotshot
OSPF路由计算调试信息
weep哭泣;流泪weptwept
go去wentgoneOSPF进程调试信息
bend使弯曲bentbent总结
◆OSPF是链路状态路由协议,使用SPF算法计算最短路径,选路更合适,不会产生路由环路
◆OSPF通过DR/BDR选举减少邻接关系,网络链路状态信息同步通过DR/BDR进行管理
◆OSPF通过划分区域管理的方式优化运动
◆OSPF网络收敛快、信息传递可靠、节省网络资源、支持VLSM,适用于中小型网络,经细致规划后也可以用于大型网络
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OSPF 路由 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)