在上个世纪九十年代撰写的《TCP/IP协议详解 卷一:协议》的动态选路中,内容大部分还是介绍 RIP路由选择信息协议,在互联网络如此发达的今天,RIP因为它的局限性逐步被OSPF取代。
在思科的这本教材中,大篇幅的介绍了OSPF -开放最短路径优先协议,它也和RIP一样,是内部网关协议IGP的一种,但是它也和RIP非常不一样:RIP是距离向量协议,OSPF则是链路状态协议等。

RIP的局限性

RIP,路由信息选择协议,通过定时(一般为30s)向外界传播和获取路由选择表,来更新路由表。
它是一个典型的距离向量协议:根据跳数来确定前往目的网络的路径。

它的局限性也非常的明显,由于要定时向外界传播路由选择表,导致 RIP更新报文 的数量非常之多,这很容易对原本就十分拥塞的网络“火上浇油”。
因此,RIP在低速网络(比如WAN)或者存在大量路由器的网络里 效率极低在链路速度不相同的网络中,RIP根本不管用。

如今,我们很少能够看到RIP的身影。教材上提及了 重分发,大致上说,重分发就是在 路由选择协议之间 交换路由:比如你可以在老式路由器上使用RIP,在网络其他部分则可以使用OSPF,EIGRP等其他性能好的多的 路由选择协议。

单区域OSPF

OSPF这一块内容,分为 单区域OSPF 和 多区域OSPF,本文主要介绍单区域OPSF(也会提到分层,但是不会细化)。

OSPF(open shortest path first,开放最短路径优先),是一种标准的开发路由选择协议。目前被包括思科在内的众多网络厂商所实现。它灵活而深受欢迎,原因正是因为它开放和标准特征。

工作原理:
思科路由器首先通过Hello报文 和 数据库同步 与邻接路由器建立邻居关系,这种关系允许它们进行路由信息的交换。随后从邻居处获取LSA,得到链路信息状态,存入拓扑数据库。使用Dijkstra算法创建一个最短路径树:从拓扑数据库中获取输入;计算得到最短路径,利用最短路径更新路由表。

它的工作原理使得它汇聚速度非常之快。汇聚:路由选择协议 更新路由表的一部分,所有路由器根据信息更新路由表项完毕,汇聚就结束了。

另外两个重要的优点:和EIGRP一样,支持多条到同一个目的网络的等cost路由(负载均衡);被路由的协议方面,支持IPv4,IPv6。

一些重要的特色:

  • 允许创建区域及自主系统AS(在多区域的OSPF中会提到)。
  • 最大限度的减少了路由选择更新流量。
  • 高度灵活,功能多样,可拓展性极强。
  • 支持 VLSM/CIDR 。
  • 对跳数没有任何限制(使用cost/带宽作为度量)。
  • 属于开放标准,让你能够在网络中部署多个厂商的设备。

说明:OSPF最大的优点是由它的分层决定的:上面提到的 汇聚快,可拓展性极强,减少了路由选择更新。

教材的P265的表格,列举了OSPF和RIP的比较,特征中需要注意的几点:

  • OSPF支持VLSM,RIP不支持。
  • 度量值:OSPF为cost,或者说是带宽,而RIPv1,RIPv2是距离向量协议,采用的度量是跳数。
  • OSPF没有跳数限制。
  • OSPF汇聚速度极快。
  • OSPF要求把网络分层。
  • 如何触发 路由表项的更新:OSPF使用事件触发,RIP是定期(30s)触发。
  • 路由算法:OPSF -Dijkstra,RIP -Bellman-Ford。

OSPF最重要的特征就是对分层的支持,这意味着他能够让我们将大型网络划分为多个部分,称为区域。

为什么要采用分层呢?
1)降低路由选择的开销。2)提高汇聚的速度。3)将网络不稳定性限制在单个区域内。
为了实现这些优点,需要付出代价,这也是 OSPF配置起来如此困难的原因。

单区域顾名思义,就是只划分了一个区域,多区域就是划分了多个区域。不管对于多区域还是单区域的OSPF来说,主干区域 -区域0必不可少。
将其他区域连接到主干区域0的路由器:区域边界路由器ABR。这些路由器至少需要一个接口和区域0相连。
将AS连接起来的路由器:自主系统边界路由器 ASBR

注:比如该图中,R2和R3就是 ABR。

理想情况:创建区域 最大限度地减少路由更新,这在大型网络中很重要,这样做的话,可以将问题限制在单个区域内,避免它影响整个网络。

OSPF术语

参考:OSPF的一些重要术语

注意点:
1.文中的邻接关系,即书中的full状态,邻居关系是2WAY状态。
2.OSPF在共享路由方面非常的挑剔,只与与它建立邻居关系的路由器进行共享路由。与哪些邻居建立邻居关系取决于网络类型和路由器的配置。
3.DR的选举:使用route命令手动配置的最优先 -> 启动时活动的loopback环回接口的IP地址中最大的那一个 -> 启动时处于活动状态的最大的物理接口的IP地址
4.流程:建立邻接关系 -> 交换链路信息LSA -> 存入LADB(拓扑数据库) -> Dijkstra算法 -> 得到最短路 -> 更新路由表项。
5.LSA分组用于更新和维护拓扑数据库。

OSPF的工作原理

OSPF工作分为三类:

  • 初始化邻居关系
  • LSA洪泛
  • 计算SPF(shortest path first)树

第一个阶段就是建立邻居关系,这是OSPF操作重要的组成部分,初始化OSPF的时候,路由器给它分配内存,并分配维护邻居表和拓扑表的内存。
确定配置了OSPF的接口之后,路由器将检查这些接口是否处在活跃状态。如果是的话,开始发送Hello报文分组。
Hello协议用于发现邻居,建立邻居关系,以及维护与其他的OSPF路由器的关系。在支持组播的环境中,定期的通过每个启用了OSPF的接口向外发送Hello分组。

OSPF通过使用 LSA泛洪 来交换和共享路由信息。发送LSU分组,在区域内所有OSPF的路由器之间共享包含链路状态数据的LSA信息。
LSA更新创建了网络拓扑图,而泛洪保证所有的OSPF路由器都拥有相同的网络拓扑图。
为实现高效的泛洪,使用了保留的组播地址224.0.0.5(ALLSPFRouters),用于发送更新的组播地址取决于网络类型。
LSA更新泛洪到整个网络之后,每个接收方都必须确认它收到了更新,另外还必须对它进行验证。

计算SPF树,每台路由器都计算前往当前区域中的每个网络的最佳/最短路径。流程:从LSDB获取输入 -> Dijkstra算法 -> 从输出结果获取最短路。
这棵树只包含路由器所属区域的网络,选择最佳路由的时候,OSPF考虑的一个重要指标是:前往网络的每条潜在路径的metric度量和cost成本。SPF不计算前往其他区域的路由。

OSPF度量值,称为成本,思科利用带宽计算成本:10^8/带宽。SPF树的每一个出站接口都有相关联的成本。

注意:让链路两端的路由器上的成本相同,这样OSPF才能运行。

2016/8/28

CCNA学习指南 -开放最短路径优先OSPF(单区域)的更多相关文章

  1. CCNA学习指南 -开放最短路径优先OSPF(多区域部分)

    在之前的介绍中,可以看到单区域OSPF对于古老的RIP的优点: 路由选择更新流量减小 使用与大型网络和链路速度不一样的网络 OSPF能够在LSDB中呈现网络拓扑结构,这使得它汇聚的速度远快于RIP. ...

  2. OSPF单区域配置

    OSPF单区域配置 实验环境:华为模拟器eNSP 现在有这样一个拓扑图: 我想要让R1可以ping通R3,显然目前是不行的: <R1>ping 192.168.2.2 PING 192.1 ...

  3. 重拾IP路由选择:CCNA学习指南中的IP路由选择

    IP路由选择技术 是网络技术的核心部分,也是目前研究的热点,其中的 动态路由选择协议 比如RIPv1,RIPv2,OSPF等,解决了数据在网络中转递的诸多问题. 在TCP/IP协议详解的学习过程中,我 ...

  4. 开放式最短路径优先OSPF

    1.OSPF基本知识 OSPF作为基于链路状态的协议,解决了RIP在收敛慢,路由环路,可扩展性差等问题,还有以下优点: 采用组播方式发布报文,可以减少对其他不运行ospf路由器的影响 ospf直尺无类 ...

  5. OSPF 单区域实验

    实验拓扑 实验需求 按照图示配置 IP 地址 按照图示分区域配置 OSPF ,实现全网互通 为了路由结构稳定,要求路由器使用环回口作为 Router-id 实验步骤 每台路由器都要将本地的所有直连网段 ...

  6. ccna学习指南第七版

    1.加电post自检    闪存查找ios 可随时从命令行进入设置模式,为此可在特权模式下输入setup    ctrl+c退出特权模式 6.2cli   命令行界面 进入cli router> ...

  7. eNSP模拟器OSPF单区域配置

    实验拓扑图如下 下一步对终端设备与路由器的端口进行基本的ip设置 配置完成后要注意检查是否有小错误,不然会对后面的测试带来麻烦.在进行基础配置的时候一定要细心细心细心. 下一步我们就要进行OSPF的配 ...

  8. 华为HCIP实验--OSPF单区域

    场景:你是公司的网络管理员.现在公司的网络中有三台ARG3路由器,通过以太网实现相互的连通.在以太网这样的广播式多路访问网络上,可能存在安全隐患,所有你选择采用OSPF区域认证的方法来避免恶意的路由攻 ...

  9. OSPF但区域配置

    原理概述 实验内容 实验拓扑 实验编址 实验步骤1.基本配置配置完成后,使用ping命令检测 2.部署单区域OSPF网络使用命令ospf创建并运行OSPF 其中1是进程号,如果没有写明进程号,则默认为 ...

随机推荐

  1. python flask的request模块以及在flask编程中遇到的坑

    一.首先来讲讲遇到的坑: 1.linux下package的打包引用: """ 路径结构如下: ./project ./bin ./api ""&quo ...

  2. hibernate在Oracle中插入数据,默认字段被设置为null的问题解决

    参考内容: http://blog.sina.cn/dpool/blog/s/blog_90629d5301014a5w.html 在数据库中一个字段的默认值为1,但是在插入数据后,本来该字段为空,值 ...

  3. mybatis按姓名或手机号搜索

    1.AND ((USER_NAME LIKE '%'||#{searchKey}||'%') OR (MOBILE_PHONE LIKE '%'||#{searchKey}||'%'))2. < ...

  4. VS2012编译FFmpeg 2.1.4

    这次的目标是完整编译FFmpeg包括汇编代码,并且尽量少修改源代码. 环境是WIN7 64位,VS2012, Intel.Parallel.Studio.XE.2013.SP1 一. 安装MinGW, ...

  5. 用到了yii2 hasMany() 方法,一对多关联

    view页面代码:其中supply,item,price是一个AR类都是一个类,item和prices是一对多关系: [ 'label' => '参考', 'format' => 'htm ...

  6. mysql : show processlist 详解

    最近排查一些MySQL的问题,会经常用到 show processlist,所以在这里把这个命令总结一下,做个备忘,以备不时只需. 首先是几条常用的SQL. 1.按客户端 IP 分组,看哪个客户端的链 ...

  7. poj3171 Cleaning Shifts【线段树(单点修改区间查询)】【DP】

    Cleaning Shifts Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4422   Accepted: 1482 D ...

  8. Eclipse Tomcat插件的使用

    目录 Eclipse Tomcat插件的使用 Eclipse Tomcat插件的使用 我使用的Eclipse版本是:4.6.3 Eclipse已经自带Tomcat插件,不需要再自己进行安装 1.新建T ...

  9. Database Sharding, The “Shared-Nothing” Approach DATABASE SHARDING

    w将单个服务器上的单个数据库打碎为多个服务器上的单个数据库 http://www.agildata.com/database-sharding/ Database Sharding provides ...

  10. vue - 指令系统

    指令系统: 所谓指令系统,大家可以联想咱们的cmd命令行工具,只要我输入一条正确的指令,系统就开始干活了. 在vue中,指令系统,设置一些命令之后,来操作我们的数据属性,并展示到我们的DOM上. 1. ...