设为首页收藏本站language 语言切换
查看: 1899|回复: 4
收起左侧

[分享] OSPF

[复制链接]
发表于 2015-11-27 15:05:05 | 显示全部楼层 |阅读模式

关于 OSPF 的故事:

一群驴友打算穿越原始森林,他们通过彼此书信(Hello)聚集在了一起(邻居关系);
根据彼此的资历和能力(优先级 & IP 比拼)选举出了队长和副队长。

所有的队员根据自己的经历与队长和副队长分享了自己的信息(LSA),队长在掌握了所有可靠信息之后制作出了一张地图(LSDB/拓扑表),分发给了所有队员!

第二条一早,充满冒险精神的驴友们一手拿着地图一手拿着指南针(SPF),斗志昂扬地上路了!


OSPF介绍

1)OSPF(Open Shortest Path First)开放式“最短路径优先”,整个协议建基于“SPF算法”;

2)OSPF,链路状态路由协议,无路由环路,属于 IGP(Interior Gateway Protocol)—— RFC 2328;

3)OSPF,采用SPF算法计算到达目的地的最短路径:链路(Link)= 路由器接口;状态(State)= 接口和邻居路由器之间的关系;

4)SPF算法

① 每台路由器都把自己当作“根”,并且给予“累计成本(Cost值)”来计算到达目的地的最短路径;
② Cost = 参考带宽(108) / 接口带宽(b/s)

5)默认情况下,OSPF不进行“路由汇总”,路由表非常庞大,影响整个网络的运行状况,因此OSPF采用“分层次网络设计”方案:
① 减少了路由表的条目;
② 将区域中的拓扑变化影响限制于本地区域
通常我们把区域分为“非骨干区”和“骨干区”;
通过“分层区域路由选择”,可以进行“区域间路由选择”,同时“内部路由选择”被限制在区域内

6)OSPF三张表:邻居表(neighbor table);拓扑表(topology table);路由表(routing table)
① 邻居表:OSPF使用“邻居”机制 发现和维护路由的存在;邻居表 存储了 “双向通信”邻居关系OSPF路由器的列表信息;
② 拓扑表:OSPF使用“LSA(Line State Advertisement)链路状态通告”描述“网络拓扑信息”,然后OSPF路由器用“拓扑数据库”来存储网络的“LSA”;
③ 路由表:对“链路状态数据库”进行 SPF计算,计算得出“OSPF路由表”

7)OSPF计算基本步骤:
① 建立“邻接关系”(establish router adjacencies)

    Hello数据包 用来发现 OSPF邻居并建立邻接关系,通过组播地址:224.0.0.5 发送给ALLSPFRouters;
    Hello数据包 通告两台路由器之间建立相邻关系所必需统一的参数;
    Hello数据包 在‘以太网’和‘帧中继网络’等多路访问网络中,选举“指定路由器(DR)”和“备用指定路由器(BDR)”

② 必要时进行“DR选举”(Elect DR/BDR)

      在广播多路访问的网络中,为了减少OSPF流量,OSPF选举出一个“指定路由器(DR)”和“备用指定路由器(BDR)”;
      选举规则:最高“接口优先级”被选为‘DR’;如果相等,具有最高的“路由器ID”的路由器被选举为‘DR’;
                      ‘DR’不具有强制性
      备用指定路由器(BDR): BDR 监控 DR状态,在当前DR故障时接替
      指定路由器(DR):DR负责将更新信息推送到其他所有OSPF路由器(DROther);
                                    DR是否选举,要根据介质来判断:多路访问介质,需要选举;串口不需要
                                    DR如何选举,先到先得;可以通过修改优先级或者关闭路由器,还有一个进程命令:clear ip ospf process

      路由器ID 选举:Router ID用于标识OSPF路由器ID,全网唯一性,可手动配置,也可动态选举
        (有Loopback接口时,选择最高的Loopback IP地址作为‘路由器ID’;否则选择活跃的物理接口中IP地址最高的)

③ 发现路由(Discover Routes)
    路由器之间首先用“Hello包”中的交互路由器ID信息,从而确定“主从关系”;
    然后“主从关系”确认后,主从路由器之间相互交互“链路状态信息”;
    “LSA”交互完毕后,彼此建立“完全邻接关系”,同时邻接路由器具有自己独立的,完整的“链路状态数据库”

    多路访问网络(Multi-Access)内,DR 和 BDR 相互交换链路状态信息,同时与本网络内的其他路由器之间交换链路状态信息;
    点对点 和 点对多点网络中,相邻路由器之间互换“链路状态信息”。

④ 选择合适路由器(Select appropriate routes)
    当一台路由器 拥有 完整独立的链路状态数据库,OSPF路由器依据链路状态数据库的内容,独立地“运行SPF算法”,计算出“到每  
    一个目的网络的最优路径”,并将这条路径添加到‘路由表’中;
    OSPF利用“开销cost”计算到达目的地的最优路径,值最小为最优

⑤ 维护路由信息(Maintain routeing information)

路由器A 组播“224.0.0.6”通知 DR路由器;
如果有BDR,同时也会发送


DR利用组播地址(224.0.0.5)通知到其他路由器

连接其他网络的路由器将“LSU”扩散到该网络;
如果是“多路访问的网络”,“LSU”将传递给该网络的DR路由器

路由器接收到包含变化的“LSA的LSU”后,更新自己的链路状态数据库;
过一段时间(SPF延迟),对更新的链路状态数据库执行 SPF算法,更新路由表

8)OSPF网络类型




OSPF的特性:
1)适应大规模网络(不受限的‘跳数’);
2)收敛快,无路由环路;
3)支持 VLSM 和 CIDR;
4)支持“等价负载均衡”;
5)支持“区域划分”,构成结构化网络,路由分级管理;
   *OSPF区域(层次结构)的原因:减少路由选择的开销;加速收敛;单一的网络区域可缩小网络的不稳定性
6)支持 明文 和 MD5 认证;
7)组播方式(224.0.0.5 或 224.0.0.6)传送协议数据包;
8)OSPF路由协议的管理距离(AD)是‘110’;
9)OSPF路由协议采用“cost”作为度量标准;
10)OSPF路由协议维护折“邻居表”、“拓扑表”和“路由表”;
11)开放的标准(允许多厂商设备间的集成)


OSPF特征:
OSPF,作为一种“内部网关协议(IGP,Interior Gateway Protocol)”;
           在同一自治系统(AS)中的路由器之间交换路由信息;
           不同自治系统之间,通过“重发布”形式在不同路由协议之间交换路由信息


OSPF术语:
1)链路:就是路由器上的一个接口;
2)链路状态:有关每条链路的状态信息,用来描述路由器接口及其与邻居路由器的关系;
                     信息包括有:① 接口 IP Address / netmask;
                                        ② 网络类型;
                                        ③ 链路开销;
                                        ④ 链路上所有相邻的路由器。
      所有链路状态信息 构成 “链路状态数据库(LSDB)”
3)区域:共享“链路状态信息”的一组路由器;
     资质系统:交换“路由信息”
4)LSA:LSA用于描述路由器的本地状态;
              LSA的内容包括:路由器接口状态 和 所形成的邻接关系。
5)SPF算法;
6)邻居:路由器共享一条公共数据链路,且通过协商Hello数据包中所指定的参数,形成‘邻居关系’;
7)邻接:相互交换‘LSA’的邻居建立的关系;
               点到点,点到多点网络类型上的邻居关系都会形成“邻接关系”;
               BMA 和 NBMA 网络类型上,需要通过选举‘DR’和‘BDR’;
               所有‘DROther’与‘DR/BDR’形成邻接关系,DROther与DROther形成邻居关系
8)Hello协议:“Hello”动态地发现并维护“邻居关系”;
                       “Hello”和“LSA”共同建立和维护“LSDB/拓扑表”;
                       “Hello”组播地址:224.0.0.5
9)邻居关系数据库:邻居关系数据库 是 OSPF路由器列表;
10)拓扑数据库
       拓扑数据库(LSDB)中包含着来自所有从某个区域接收到的“LSA数据包”的信息;
       (LSA 用于更新和维护 LSDB)
11)广播多路访问 和 非广播多路访问(NBMA)
       NBMA 是 类似“帧中继”的网络;
       这些网络可实现“多路访问”,但不具有广播能力
       在“广播”或“非广播”多路访问链路上,DR/BDR都需要被选举
12)DR / BDR
       为了在“多路访问链路”上 最小化所需构成的“邻接”关系能够,被选中的DR将会负责“收集/分发路由选择信息”到广播网络内
       的其他路由器;
       从而确保所有路由器的LSDB的一致性,并及时进行同步。
13)点到点 和 点到多点
      “点到多点”,该拓扑包含路由器上的某一个接口与多个目的路由器之间的一系列连接,所有路由器的所有接口都共享这个属于同  
        一网络的“点到多点连接”;
      “点到多点”“点到点”无需选举 DR/BDR。


SPF树 计算
在区域中,每台一起都计算“到达同一区域中每个网络的‘最佳路径’”;
SPF树计算,基于“拓扑数据库中收集的信息”及“最短路径优先算法(SPF)”

路由器执行“SPF算法”,一个关键的标准是“去往特定网络的每个潜在路径的‘度量值/开销值’”

OSPF使用的是被称为“开销的度量”;
“开销” 与 每个包含在SPF树中的输出接口相互关联。

完整的“路径开销”是 “沿着这条路径的所有输出接口开销之和“

Cisco使用”10^8/带宽“来进行计算;
(“带宽”即接口配置的带宽)
例如:100Mb/s   快速以太网接口,它的OSPF开销默认为‘1’
          计算过程     1kbps = 1000 bps(10^8/带宽,带宽单位是‘bps’)
                            100Mb = 1024 × 100 × 1000 = 102400000 = 0.96
Cost值 可以 通过“ip ospf cost”命令进行修改(1~65535);
“开销”是被配置给每一条链路的,因此该值要在需要修改的接口上完成。



OSPF区域类型

“区域设置的特性”决定了“所能接收到的‘链路状态信息(LSA)类型’”

区分不同的OSPF区域,关键在于他们对于“外部路由的处理方式”

1)主干区域:必不可少的连接各区域的中心实体;其他区域都要连接到“主干区域”交换路由信息

2)标准区域:可接收 链路更新信息(相同区域的路由,区域间的路由 及 外部AS路由)

3)次末节区域(NSSA):允许接收区域间路由,不允许接收“5类LSA”;
                                       允许接收“7类LSA”发送的外部路由信息;并由ABR将“7类LSA”转换为“5类LSA”

4)末节区域(Stub Area):允许接收区域间路由;
                                           不允许接收外部AS路由

5)完全末节区域(Totally Stub Area):不接收“自治系统内部区域间的路由(路由总结)”;
                                                            不接收“外部自治系统路由信息”
     “完全末节区域”是“Cisco专有属性”




OSPF LSA类型





OSPF数据包的5种类型
1)Hello
     Hello 用以发现并维护邻居,邻接;
     “Hello + LSA”共同建立并维护“LSDB”;只在同区域的路由器之间传递
2)DBD(数据库描述)
     包含发送包路由器的链路状态数据库的”简略列表“;接收方路由器使用该数据包与”本地链路状态数据库“进行对比
3)LSR(链路状态请求)
     接收方路由器可通过发送”LSR数据包“请求”DBD中任何条目的详细信息“
4)LSU(链路状态更新)
     用以回复”LSR的通告新信息“
5)LSAck(链路状态确认)
     在接收到”LSU“之后,会发送“LSAck”确认已经收到LSU


OSPF若干参数
1)224.0.0.5 —— 作为Hello包的目的IPv4地址;
                           同时,它也是‘DR’将自己的更新数据包告知‘DROther’的目的地址;
                           ‘224.0.0.5’—— 转换MAC地址“01-00-5E-00-00-05”
2)224.0.0.6 —— ‘DROther’发送LSA的IP地址;
                            ‘DR’及‘BDR’监听‘224.0.0.6’;
                            ‘224.0.0.6’—— 转换MAC地址“01-00-5E-00-00-06”
3)OSPF 协议字段为“89”;
4)OSPF 管理距离为“110”; 度量值计算:10^8/bps,完整的路径开销是“沿着路径所有输出接口开销之和”
5)广播多路访问网络中,需要选举‘DR/BDR’,选举通过以下参数进行比较:
     ① OSPF接口优先级;② 使用“router-id”指定‘RID’;③ Loopback接口比较;④ Interface IP address(Active)
     优先级如下:
     OSPF接口优先级 > “router-id”> Loopback IP add > Interface IP address(Active)


OSPF其他知识点:
1)OSPF“区域0”
OSPF 必须有“区域0”;
所有路由器都应该能连接到“区域0”;
没有连接到该区域的,可通过“虚拟链路”进行连接

2)OSPF邻居关系 形成条件(缺一不可)
① Hello / Dead internals
    与 EIGRP协议 一样,发现和维护邻居都需要通过“Hello”交互完成;
    在 以太网链路上,Hello时间为‘10s’,Dead Time为‘40s’(Hello时间的 4倍)
② Area-id 一致;
③ 认证密码;如果启用认证密码,必须一致;
④ 末节区域标识(Stub Area Flag)

邻接关系
OSPF路由器 只与形成“邻接关系”的邻居共享路由信息

“距离矢量路由协议”需要使用“定时器”才能确保网络的稳定;
“链路状态路由协议”无需使用


评分

参与人数 1好评度 +1 收起 理由
jacck741011 + 1

查看全部评分

发表于 2015-11-27 15:45:11 | 显示全部楼层
看帖看完了至少要顶一下,还可以加入到淘帖哦!
板凳 2015-11-27 15:45:11 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-8-2 20:11:00 | 显示全部楼层
感谢楼主分享
地板 2020-8-2 20:11:00 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-8-2 21:24:15 | 显示全部楼层
学习了 先回复再看
5# 2020-8-2 21:24:15 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-14 14:13 , Processed in 0.094985 second(s), 26 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表