OSPF Summarize

3 篇文章 0 订阅

技术背景

距离矢量路由协议的工作原理

  • 运行距离矢量路由协议的路由器周期性地泛洪自己的路由表,
  • 每台路由器都从相邻的路由器学习到路由,并且将路由加载进自己的路由表中,
  • 但是它们并不清楚网络的拓扑结构,只是简单地知道到达某个目标网段应该从哪里走、距离有多远(需要几跳)。

链路状态路由协议的工作原理

运行链路状态路由协议的路由器知晓整个网络的拓扑结构,这使得路由更不易发生环路:
(1) 运行链路状态路由协议的路由器之间首先会建立邻居关系,之后开始交互链路状态(Link-State ,LS )信息。链路状态信息可以理解为每台路由器都会产生的、描述自己直连接口状况(包括接口的开销、与邻居路由器之间的关系或网段信息等)的通告,更通俗的说法是,每台路由器都产生一个描述自己家门口情况的通告。
(2)这些链路状态通告会被泛洪到整个网络,从而保证网络中的每台路由器都拥有对该网络的一致认知。
(3)路由器将这些链路状态信息存储在LSDB ( Link-State Database,链路状态数据库)之中,LSDB内的数据有助于路由器还原全网的拓扑结构,如下图所示。
在这里插入图片描述
(4)每台路由器都基于LSDB使用相同算法进行路由计算,计算的结果是得到一棵以自己为根的、无环的最短路径“树”。有了这棵“树”,路由器就已经知道了到达网络各个角落的最优路径。
(5)最后路由器将计算出来的最优路径(路由)加载到自己的路由表。

OSPF

  • OSPF ( Open Shortest Path First,开放式最短路径优先)是一种典型的链路状态路由协议,由IETF的OSPF工作小组开发,是目前业内使用最为广泛的IGP (Interior Gateway Protocol,内部网关协议)之一。
  • OSPF中的“O”意为“Open",即开放的意思,也就是说所有的厂商都可以遵循公有标准,在其设备上实现OSPF。
  • OSPF支持VLSM ( Variable-lengthsubnet,可变长子网掩码),支持路由汇总等,区域(Area)的概念引入使得OSPF能够支持更大规模的网络。
  • 当网络拓扑发生变更的时候,OSPF可以快速地感知并进行路由的计算和重新收敛。
  • 目前OSPF主要有两个版本,一是OSPFv2,该版本主要针对IPv4,在RFC2328 (OSPF Version 2)中描述;另一个是OSPFv3,该版本主要针对IPv6,在RFC2740 ( OSPF for IPv6)中描述。
Router-ID
  • OSPF Router-ID (Router Identification,路由器标识)是一个32bit长度的数值,通常使用点分十进制的形式表现(与IPv4地址的格式一样,比如192.168.200.1),用于在OSPF域(Domain )中唯一地标识一台OSPF路由器。
  • 一般而言,一系列连续的OSPF路由器采用相同的OSPF策略组成的网络称为OSPF域。OSPF要求路由器的Router-ID必须全域唯一,即在同一个域内不允许出现两台OSPF路由器拥有相同的Router-ID的情况。
  • Router-ID支持自动或者手工的配置方式进行设定。如果在创建OSPF进程时没有手工指定Router-ID,则系统会自动选择设备上的一个IP地址作为Router-ID。(在现网部署中,建议手工配置OSPF的Router-ID,因为这关系到协议的稳定性。一个常见的做法是,将设备的OSPF Router-ID指定为该设备的Loopback接口(本地环回接口)的IP地址。)
 #为设备创建一个Loopback接口,并指定接口的IP地址:
[Router]interface loopback 0
[Router-LoopBack0]ip address 1.1.1.1 32
[Router-LoopBack0]quit

#创建一个OSPF进程,并指定该设备的Router-ID为1.1.1.1 ( Loopback0接口的地址):
[Router]ospf 1 router-id 1.1.1.1

(1)ospf 1 router-id 1.1.1.1命令(HW)用于创建一个OSPF进程,该进程的Process-ID为1 ( Process-ID即进程标识,用于在一台设备上标识一个OSPF进程),并且路由器在该OSPF进程中所使用的Router-ID为1.1.1.1。
(2)无论是采用手工配置还是自动选取的方式,一旦OSPF确定了Router-ID,之后如果再变更的话就需要将OSPF进程重启才能使新的Router-ID生效,用于重启OSPF进程的命令是:

<Router>reset ospf process

(3)需要注意的是,这条命令需谨慎使用,因为一旦这条命令被执行,OSPF的进程便会重启,该OSPF进程的所有邻接关系将会被重置,这会引发路由的动荡。

NOTE:

  • Loopback接口也即是本地环回接口,是一种软件的、逻辑的接口,
  • 需要了解的是,不光是网络设备支持Loopback接口,很多主机(比如Windows或Linux主机)也同样支持。
  • 用户可以根据业务需求,在网络设备上创建Loopback接口,并为该接口配置IP地址。
  • Loopback接口非常稳定,除非人为地进行关闭或删除,否则是永远不会失效的。正因如此,Loopback接口通常用于设备网管、网络测试、网络协议应用等。
OSPF的三张表

OSPF使用三张表格以确保其正常运行。

(1)邻居表(Peer Table或Neighbor Table)

  • 在OSPF交互链路状态通告之前,两台直连路由器需建立OSPF邻居关系。
  • 当一个接口激活OSPF后,该接口将周期性地发送OSPF Hello报文,同时也开始侦听Hello报文从而发现直连链路上的邻居。
  • 当OSPF在接口上发现邻居后,邻居的信息就会被写入路由器的OSPF邻居表,随后一个邻接关系的建立过程也就开始了。

如下图所示的网络中:
在这里插入图片描述

  • R1、R2及R3都运行了OSPF。
  • 以R2为例,它将在自己的GE0/0/0及Serial1/0/0接口上分别发现R1及R3,并最终与这两者都建立OSPF邻接关系,先查看一下R2的邻居表:
    在这里插入图片描述

从上面的显示输出可以看出:

  • R2己经与R1和R3建立了全毗邻的邻接关系,(通过查看两个邻居的状态State都为Full来确认)
  • 每台OSPF路由器都与其邻居建立会话,每个会话都使用一个“邻居数据结构”来描述,这些数据结构是与路由器的接口相关联的,它们描
    述了这个邻居的状态、主/从(Master/Slave )关系、Router-ID、DR优先级、接口IP地址等信息,OSPF邻居表则汇总了这些信息,统一将路由器所有邻居的相关数据展示出来。

(2)链路状态数据库( Link-State Database, LSDB )

  • 运行链路状态路由协议的路由器在网络中泛洪链路状态信息,在OSPF中,这些信息被称为LSA (Link-State Advertisement,链路状态通告),

  • 路由器将网络中的LSA搜集后存储到自己的LSDB中,因此LSDB可以当作是路由器对网络的完整认知。

  • 使用display ospf lsdb命令可以查看设备的LSDB,以上图中的R2为例:
    在这里插入图片描述

  • 实际上由于R1、R2及R3的所有接口都属于同一个OSPF区域,因此三台路由器的LSDB都是一致的。

(3)OSPF路由表(Routing Table )

  • 使用display ospf routing命令可以查看设备的OSPF路由表,也就是设备通过OSPF所发现的路由,以R2为例:
    在这里插入图片描述

  • OSPF根据LSDB中的数据,运行SPF算法并且得到一棵以自己为根的、无环的最短路径树,基于这棵树,OSPF能够发现到达网络中各个网段的最佳路径,从而得到路由信息并将其加载到OSPF路由表中。

  • 需要注意的是,这些OSPF路由表中的路由最终是否会被加载到全局路由表,还要经过进一步比较路由优先级等过程。

度量值
  • 每种路由协议对路由度量值的规定是不同的,OSPF使用Cost(开销)作为路由度量值,所谓开销,亦可理解为成本或者代价,Cost值越小,则路径(路由)越优。
  • 每一个激活OSPF的接口都拥有一个接口级别的Cost值,这个值等于OSPF带宽参考值/接口带宽,取计算结果的整数部分,当结果小于1时,值取1。OSPF带宽参考值缺省为100Mbit/s(HW),这个值是可以人为修改的,但是修改参考值将直接影响Cost值的计算,从而影响网络中OSPF路由的优选,需格外谨慎。

如下图所示的网络拓中:
在这里插入图片描述

  • R1、R2及R3在各自的接口上都激活了OSPF(所有的接口都属于相同的OSPF区域)。
  • 图中已经标出了每个接口的Cost值。每台路由器产生的LSA描述了自己直连接口的状况,其中就包括接口的Cost。
  • LSA的泛洪使得每台路由器都获知了网络中所有路由器的信息。
  • 一条OSPF路径的Cost等于从目的地到本地路由器沿途的所有入接口Cost的总和。

以R2到达目标网段10.1.13.0/24为例,有两条路可选:
(1)一条是从R1到达,另一条则是从R3到达。
(2)R2从R1这条路径到达目标网段的话,Cost等于R1的GE0/0/1接口的Cost加上R2的GE0/0/0接口的Cost,也就是2。而从R3到达目的网段的Cost则等于R3的GE0/0/1接口的Cost加上R2的Serial1/0/0接口的Cost,也就是49。
(3)很明显,前者的Cost要更小,因此R2经过计算,将R1视为到达10.1.13.0/24的最优下一跳,并将得出的路由加载到路由表中。

  • 需要注意的是,OSPF的接口Cost是可以手工调整的,可以通过将R2的GE0/0/0接口的Cost值调大(至少要大于48),从而让R2选择从R3到达10.1.13.0/24。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值