OSPF详解-3 邻接、度量值

**一、OSPF邻接关系

运行链路状态路由协议的路由器必须首先与选定的邻居路由器建立邻接关系,这是通过与邻居路由器交换Hello分组来实现的。

1.邻接路由器建立步骤

路由器建立邻接关系的步骤如下:

1)路由器将Hello分组发送给邻居路由器,并接收来自邻居路由器的Hello分组。Hello分组的目标地址通常是组播地址。

2)路由器通过交换Hello分组来获悉协议特定的参数,如检查邻居是否位于同一个区域中,Hello间隔是否相等。交换完Hello分组后,路由器宣称邻居处于正常运行状态。

3)两台路由器使用Hello分组建立邻接关系后,它们通过LSA来同步LSDB,并确认已收到邻接路由器的LSA。至此,两台邻接路由器知道它们的LSDB已经同步。对OSPF而言,这意味着两台路由器已经处于完全邻接状态。

4)必要时,路由器将新的LSA转发给其他邻接路由器,确保在整个区域内,链路状态信息都是完全同步的。

2.点到点邻接

点到点串行链路上的两台路由器之间建立完全邻接的关系,它们使用的封装类型通常是高级数据链路控制(HDLC)或点到点协议(PPP)。然而,在LAN链路等广播网络上,将选举一个指定路由器(DR)和一个备用指定路由器(BDR)。其他的路由器都与这两台路由器建立邻接关系,却只将LSA通告给它们。DR从邻居那里收到更新后,将其转发给LAN上的其他所有邻居。DR的主要功能之一是确保同一个LAN中所有路由器的LSDB都相同。因此,在广播网络中,DROTHER(不属于DR或者BDR的路由器)与DR和BDR同步LSDB。

3.LAN链路中的邻接

LAN中不属于DR或BDR的路由器(DROTHER)之间维护部分邻居关系,这被称为双向邻居状态。例如,在上图中,路由器A为DR,路由器B为BDR,因此路由器C将与路由器A和B建立邻接关系,并与路由器D和E建立双向邻居关系。

需要指出的是,DR概念是链路级的。在多路访问的广播环境中,每个网段都有独立的DR和BDR。例如,如果路由器与多个多路访问广播网络相连,它可能在一个网段中为DR而在另一个网络中为DROTHER

LSA报告路由器和链路状态,因此有链路状态之说。路由器之间的链路状态信息必须同步,为此LSA必须具有如下特征。

1)LSA是可靠的,有一种用于确认LSA被成功递送的方法。

2)LSA被扩散到整个区域(或整个域,如果只包含一个区域的话)。

3)LSA有序列号和寿命,以确保每台路由器都知道自己有最新的LSA版本。

4)LSA被定期刷新以确保拓扑信息的有效性,直到LSA从LSDB中被删除。

只有以可靠的方式扩散链路状态信息,才能确保区域中每台路由器对网络的认识都是最新、最准确的这样,路由器才能做出可靠的路由器决策,并与网络中其他路由器的决策一致。

二、OSPF度量值的计算

1.简介

Edsger Dijkstra(SPF算法的创始者) 设计了一种用于计算复杂网络中最佳路径的数学算法,供链路状态路由器选择协议使用。通过网络中的每条链路指定开销,将特定的节点作为树根,并将前往特定目的地的开销相加,便可以对树中的分支进行计算以确定前往每个目的地的最佳路径。最佳路径被加入到转发数据库(路由选择表)中。

2.COST值的计算

默认情况下,Cisco路由器根据接口的配置带宽来计算OSPF开销,带宽越高,开销越低。在Cisco路由器上,默认情况下使用公式“100/(Mbit/s为单位的带宽)”来计算OSPF开销,这个公式也可以表示为“10^8/(bit/s为单位的带宽)”。

如果修改了链路带宽,OSPF开销也将相应地变化。对于每个接口,只能指定一种开销。在路由器链路通告中,以链路开销的方式通告它。默认的OSPF开销如下:

OSPF默认的COST值

也可以手工定义接口的OSPF开销,这种开销将覆盖默认开销(具体操作后续更新)。

3.SPF算法计算方式

下图是一个SPF计算示例,计算步骤如下。

1)路由器H向路由器E发送通告,以表明自己的存在。路由器E将路由器H和自己的通告传递给邻居(路由器C和G)。路由器G将这些通告及自己的通告传递给路由器D。依次类推。

2)这些LSA遵守水平分割规则,即路由器不应将LSA通告给提供该LSA的路由器。在这个例子中,路由器E不会将路由器H的LSA再通告给路由器H。

3)路由器X有4台邻接路由器:A、B、C和D。它从这些路由器那里接收到了网络中所有其他路由器的LSA。根据这些LSA,它能够推断出路由器之间的所有链路,并绘制出如上图所示的路由器连接情况。

4)在上图中每条以快速以太网链路的OSPF开销都被设置为1.通过将前往每个目的地的开销相加,路由器可以推断出最佳路径。

5)在上图的右边是路由器XX通过计算得到的最佳路径(SPF树)。根据这些最佳路径(实线),将前往每台路由器连接的目标网络的路由加入到路由表中,并将相应邻接路由器(A、B、C或D)指定为下一跳地址。

原文地址:http://blog.51cto.com/zxteach/2130325

时间: 2024-08-30 00:00:14

OSPF详解-3 邻接、度量值的相关文章

OSPF详解二之OSPF邻接关系剖析

OSPF邻接关系建立过程剖析 在OSPF网络中,为了交换路由信息,邻居设备之间首先要建立邻接关系,邻居(Neighbors)关系和邻接(Adjacencies)关系是两个不同的概念. 邻居关系:OSPF设备启动后,会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF设备会检查报文中所定义的参数,如果双方一致就会形成邻居关系,两端设备互为邻居. 邻接关系:形成邻居关系后,如果两端设备成功交换DD报文和LSA,才建立邻接关系. OSPF状态机 OSPF共有8种状态机,分别是:Dow

OSPF详解

OSPF绝对无环的原因:SPT生成一张地图,将整张拓扑记录下来 初始化配置 检查是否配置完成,通过检查三张表"路由表"."邻居表"."拓扑表" 路由认证 跟前面学习的认证过程有些区别,没有所谓的key chain等信息 链路认证 在接口下开启认证 在R1-R2之间建立一个基本的认证,其实这个也是没办法建立邻居的原因之一 区域认证 在进程下开启认证 在同一个区域里面的密码是共享的,配置起来跟链路认证没啥区别 完整过程 注意: 不同接口的密钥可以不同

OSPF详解之三:OSPF LSA详解

OSPF LSA详解 OSPF V2版本中常用的主要有6类LSA,分别是Router-LSA.Network-LSA.Network-summary-LSA.ASBR-summary-LSA.AS-External-LSA.NSSA-LSA,接下来我将一步一步为大家解析. Type 1:Router-LSA 每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播. 谈到1类LSA,大家必然会想到它的链路类型,链路类型分为4类:P2P.Stub.Transit.Vritual link.

OSPF详解-2 区域结构

在小型网络中,路由器链路构成的结构并不复杂,很容易确定前往各个目的地的路径.然而,在大型网络中,路由器链路组成的结构极其复杂,前往每个目的地的潜在路径为数众多.因此对所有可能路由进行比较的SPF算法非常复杂,需要很长时间. 一.区域扩大的问题 OSPF区域扩大的问题 1)最短路径优先(SPF)算法的频繁计算:在大型网络中,变化是不可避免的,路由器将大量的CPU周期用来重新计算SPF算法和更新路由表. 2)路由表庞大:默认情况下,OSPF不进行路由汇总,这样路由表可能非常大,这取决于网络的规模.

邻接表无向图(一)之 C语言详解

本章介绍邻接表无向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实现.实现的语言虽不同,但是原理如出一辙,选择其中之一进行了解即可.若文章有错误或不足的地方,请不吝指出! 目录 1. 邻接表无向图的介绍 2. 邻接表无向图的代码说明 3. 邻接表无向图的完整源码 转载请注明出处:http://www.cnblogs.com/skywang12345/ 更多内容:数据结构与算法

java文本相似度计算(Levenshtein Distance算法(中文翻译:编辑距离算法))----代码和详解

算法代码实现: package com.util; public class SimFeatureUtil { private static int min(int one, int two, int three) { int min = one; if (two < min) { min = two; } if (three < min) { min = three; } return min; } public static int ld(String str1, String str2)

五度圈详解

(一) 五度圈几乎是每一本教乐理的书里都会提到的的图表.你背过,你也忘记过:你再度又背过,可是你终究还是忘了它!Why?因为你觉得它并不重要?因为你不了解它的涵义?因为你就是记不住?因为背过以后就是没使用过?No!答 案是因为它不用背所以你背不住,酷吧?!究竟五度圈这个图表到底有什么意义?为什么非学它不可呢? 顾名思义,五度圈基本定义是一个以C为起始点(十二点方向),以完全五度音程(Perfect 5th Intervals)为间距,顺时 钟方向所围成的一个圆圈.现在就让我们实际来推演一次: C

详解算法的各种复杂度的差别有多大(带图)

做算法分析的时候经常用到各种时间复杂度如O(n), O(logn), O(nlogn), O(n^2), ... 它们之间到底有多大的差别呢?下面这张图是一个直观的表达: 可见,各个常用的时间复杂度之间都存在着巨大的差异.从O(nlogn)到O(n),从O(n)到O(logn),都是性能上的巨大飞跃. 从另一个角度而言,大于O(n^2)或O(n^3)时间复杂度的程序实际上都是不可用的.根据维基百科,现在最强的CPU每秒大概可执行428亿条指令(4*10^10),而对于一个O(2^n)的程序,当n

动态路由协议RIP,OSPF基础知识详解,以及配置实验验证

动态路由:不需要手工写路由,将各自的直连网段宣告出去,路由器之间就可以相互学习,如果路由表有变化则及时更新宣告给相邻的路由器 静态路由  优点:精确转发,由管理员手动控制  缺点:灵活性差 动态路由特点: (1)减少了管理任务 (2)占用了网络带宽 (3)动态路由基于某种路由协议实现 度量值:跳数,带宽,负载,时延,可靠性,成本 按照路由执行的算法分类 (1)距离矢量路由协议:依据从源网络到目标网络所经过的路由器的个数选择路由:RIP , IGRP (2)链路状态路由协议:综合考虑从源网络到目标