OSPF(一)OSPF协议简介 |
您所在的位置:网站首页 › ospf的五种报文 › OSPF(一)OSPF协议简介 |
文章目录
OSPF专题简介前言动态路由对比静态路由的优劣势
OSPFOSPF报文报文类型
OSPF简单工作原理邻居状态机Router ID、邻居与邻接Router ID邻居与邻接邻居关系和邻接关系演变邻居发现Hello报文
数据库同步建立完全邻接关系
LSAOSPF支持的网络类型OSPF单区域简单配置
OSPF专题简介
OSPF协议的内容较多,所以我将做一个专题来讲解。本文是OSPF协议专题的第一篇文章,主要是总体的简单的介绍OSPF协议,然后在后面的文章当中,再去逐个深入介绍OSPF协议中的比较重要的概念 前言上一篇文章常见路由协议中我主要列出了一些常见的协议以及分类。还简单的讲解了静态路由,那么我们知道静态路由的配置需要管理员手动来配置,相当于管理员用笔一笔一划的在绘制一张地图。但是在面对比较大型的网络拓扑时,静态路由就显得比较捉襟见肘。此时动态路由便显现了他的优势。 动态路由对比静态路由的优劣势优势 无需管理员手工维护,减轻了管理员的工作负担。在路由器上运行路由协议,使路由器可以自动根据网络拓朴结构的变化调整路由条目;网适用于络规模大、拓扑复杂的网络劣势 占用了网络带宽占用计算资源 OSPF在上一篇文章中:RIP协议,我也极为简洁的介绍了一下RIP协议,不详细介绍的原因是RIP协议目前已经逐步被淘汰,取它而代之的正是OSPF协议。 开放式最短路径优先协议----OSPF(Open Shortest Path First) RIP带来的问题: RIP特性带来的问题逐跳收敛收敛慢,故障恢复时间长传闻路由更新机制缺少对全局网络拓扑的了解最多有效跳数为15环形组网中,使远端路由不可达以“跳数”为度量存在选择次优路径的风险解决方案: RIP的问题优化或解决的方式(OSPF特性)收敛慢,故障恢复时间长“收到更新->计算路由->发送更新” 改为“收到更新->发送更新->计算路由”缺少对全局网络拓扑的了解路由器基于拓扑信息,独立计算路由最多有效跳数为15不限定跳数存在选择次优路径的风险将链路带宽作为选路参考值OSPF是一种基于链路状态的路由协议(LS)(根据链路状态做参考),它从设计上就保证了无路由环路。OSPF支持区域的划分,区域内部的路由器使用SPF最短路径算法保证了区域内部的无环路。OSPF还利用区域间的连接规则保证了区域之间无路由环路。 OSPF支持触发更新,能够快速检测并通告自治系统内的拓扑变化。 OSPF可以解决网络扩容带来的问题。当网络上路由器越来越多,路由信息流量急剧增长的时候,OSPF可以将每个自治系统划分为多个区域,并限制每个区域的范围。OSPF这种分区域的特点,使得OSPF特别适用于大中型网络。OSPF可以提供认证功能。OSPF路由器之间的报文可以配置成必须经过认证才能进行交换。 优点: 无环路1.用SPF算法 2.自己计算得知(每个OSPF路由器都知道整个区域的拓扑情况)(RIP是传闻式更新)收敛快1.使用SPF算法 2.OSPF收到链路状态信息,立即发送给其他人,再统一处理(RIP收到路由信息以后,自己处理完,周期到了发送给其他人)(举例:5桶水份给5个人煮开。RIP:A拿到5桶水,煮开自己的那桶,再把其他的水交给B…. OSPF:把水先分给每个人,再一起煮开。)扩展性好OSPF支持多种路由协议一起协同工作,区分内部路由和外部路由(划分不同的区域)(RIP统一,不知道谁是外部内部)支持认证(安全性好)两种认证:区域认证、接口认证(举例:一块区域,三个路由器做了区域认证,一个路由器没有做认证,则该路由器被其他路由器排除在外。它的路由一概不理。)(接口认证优先级大于区域认证:举例:两个路由器没有开启区域认证,但是开启了接口认证,那么他们也可以通信) OSPF报文OSPF报文封装在IP报文头部,协议号为89。 更新方式 单播:单播更新为特殊情况,要手工配置 组播:默认更新方式 报文类型OSPF报文类型有5种,每种报文都使用相同的OSPF报文头部。分别是: Type报文名称报文功能1Hello发现和维护邻居关系2Database Description交互链路状态数据库摘要3Link State Request请求特定的链路状态信息4Link State Update发送详细的链路状态信息5Link State Ack(LSAck发送确认报文(注意与LSA做区别)注意:DD、LSU、LSR、LSACK。只有LSU携带LSA的详细信息,其他都只是头部信息。 OSPF简单工作原理邻居建立 路由器之间发现并建立邻居关系。同步链路状态数据库 每台路由器产生并向邻居泛洪链路状态信息,同时收集来自其他路由器链路状态信息,完成LSDB(Link State Database)的同步。计算最优路由 每台路由器基于LSDB通过SPF算法,计算得到一棵以自己为根的 SPT(Shortest Path Tree),再以SPT为基础计算去往各目的网络的最优路由,并形成路由表。 邻居状态机总结:八种状态,除了Attempt有点特殊,我们作为了解。其他的我们来看一下。首先路由器开启了OSPF之后,最开始处于down状态,然后到2-Way状态这段过程种,路由器都处于邻居的关系中,这个阶段只发送Hello报文。之后三个状态,路由器都处于形成邻接状态的路上。然后到最后Full状态的时候,完成邻接状态。(具体邻居、邻接关系后面还会详细讲到) Router ID、邻居与邻接 Router ID概念:OSPF路由器在本AS(自治系统)内的唯一标识(不能重复,重复则一直报错,不能建立邻居关系)。 组成:32个比特,写法与IP地址相同(点分十进制),但是Router ID可以是路由器没有的ID 配置:可手动配置;若不手动配置则自动配置。(通常建议手动配置,以防因为地址改变发生的id改变) 自动配置规则: Router id会自动获取你配置的第一个IP地址如果设备存在多个逻辑接口地址,则路由器使用逻辑接口中最大的IP地址作为Router ID;如果没有配置逻辑接口,则路由器使用物理接口的最大IP地址作为Router ID在为一台运行OSPF的路由器配置新的Router ID后,可以在路由器上通过重置OSPF进程来更新Router ID在实际情况中,Router ID的变化采取稳定大于一些的原则:在设置好了Router ID之后,再去修改,不生效。 邻居与邻接邻居(Neighbor) 概念: 相连的路由器,互相知道对方的存在 状态2-Way的时候建立成邻居关系 邻接(Adjacency) 概念: 相连的路由器,LSDB进行了同步 只有当双方成功交换DD报文,并同步LSDB后,才形成真正意义上的邻接关系。 邻居关系和邻接关系演变 邻居发现
验证一个接收到的Hello报文是否合法包括: 如果接收端口的网络类型是广播型,点到多点或者NBMA,所接收的Hello报文中Network Mask字段必须和接收端口的网络掩码一致,如果接收端口的网络类型为点到点类型或者是虚连接,则不检查Network Mask字段;所接收的Hello报文中Hello Interval字段必须和接收端口的配置一致;所接收的Hello报文中Router Dead Interval字段必须和接收端口的配置一致;所接收的Hello报文中Options字段中的E-bit(表示是否接收外部路由信息)必须和相关区域的配置一致。 数据库同步路由器在建立完成邻居关系之后,路由器下一个状态就到ExStart。这时候便开始进行数据库同步。 路由器使用DD报文来进行主从路由器的选举和数据库摘要信息的交互。(DD报文的作用:选举主从关系、DD报文包含LSA的头部信息,用来描述LSDB的摘要信(告诉别人我有什么)) 数据库同步详细步骤 邻居状态变为ExStart以后,RTA向RTB发送第一个DD报文,在这个报文中,DD序列号被设置为X(假设),RTA宣告自己为主路由器。 RTB也向RTA发送第一个DD报文,在这个报文中,DD序列号被设置为Y(假设)。RTB也宣告自己为主路由器。由于RTB的Router ID比RTA的大,所以RTB应当为真正的主路由器。 主从关系选举完成 选举条件: 1. 接口优先级(接口优先级一样则看Router ID) 2. Router ID:越大越优先(开始信息的交互) RTA发送一个新的DD报文 (从),在这个新的报文中包含LSDB的摘要信息,序列号设置为RTB在步骤2里使用的序列号,因此RTB将邻居状态改变为Exchange。 邻居状态变为Exchange以后,RTB发送一个新的DD报文 (主) ,该报文中包含LSDB的描述信息,DD序列号设为Y+1(上次使用的序列号加1)。 即使RTA不需要新的DD报文描述自己的LSDB,但是作为从路由器,RTA需要对主路由器RTB发送的每一个DD报文进行确认。所以,RTA向RTB发送一个内容为空的DD报文,序列号为Y+1。 发送完最后一个DD报文之后,RTA将邻居状态改变为Loading;RTB收到最后一个DD报文之后,改变状态为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)。 建立完全邻接关系
假设RTB的LSDB是最新最全的,不需要向RTA请求更新,那么RTB直接进入Full状态。 RTA邻居状态变为Loading之后,RTA开始向RTB发送LSR报文,请求那些在Exchange状态下通过DD报文发现的,而且在本地LSDB中没有的链路状态信息。 RTB收到LSR报文之后,向RTA发送LSU报文,在LSU报文中,包含了那些被请求的链路状态的详细信息。RTA收到LSU报文之后,将邻居状态从Loading改变成Full。 RTA向RTB发送LSAck报文,用于对已接收LSA的确认。 若此时RTA一直不发送LSAck报文,则RTB会一直向RTA发送LSU报文此时,RTA和RTB之间的邻居状态变成Full,表示达到完全邻接状态。 以上就是OSPF一个完整的发现、建立邻居和邻接关系的工作工程。 LSALSA(Link State Advertisement)是路由器之间链路状态信息的载体。LSA是LSDB的最小组成单位,也就是说LSDB由一条条LSA构成的。 所有的LSA都有相同的头部,关键字段的含义如下: 字段作用LS age此字段表示LSA已经生存的时间,单位是秒。相当于年龄LS type此字段标识了LSA的格式和功能。常用的LSA类型有五种。1、2、3、5、7(后面文章会详细具体讲到)Link State ID此字段是该LSA所描述的那部分链路的标识,例如Router ID等。(Type不同,描述的信息不同)Advertising Router此字段是产生此LSA的路由器的Router ID。LS sequence number此字段用于检测旧的和重复的LSA。 OSPF支持的网络类型
扩展 MA网络是指multiple access多路访问网络。(MA=NBMA+广播式网络),多路访问是指在一条链路上有多个访问点,区别于点到点(P2P)或点到多点(P2MP)的网络。 OSPF单区域简单配置
验证: display ospf peer用于查看邻居相关的属性,包括区域、邻居的状态、邻接协商的主从状态以及DR和BDR情况。 [RTA]display ospf peer OSPF Process 1 with Router ID 1.1.1.1 //ospf进程号1,Router ID为1 Neighbors //邻居 Area 0.0.0.0 interface 192.168.1.2(GigabitEthernet0/0/0)'s //在Area 0的区域这个接口下邻居有谁 neighbors //邻居有谁 Router ID: 2.2.2.2 Address: 192.168.1.1 //有一个Router ID2的路由器,IP地址是192.168.1.1 State: Full Mode:Nbr is Slave Priority: 1 //邻接状态:full、模式:邻居是从(主从关系),优先级:1 邻居是主:MASTER DR: 192.168.1.2 BDR: 192.168.1.1 MTU: 0 // DR(从IP地址看是自己)、BDR(从IP地址看是Router 2的路由器) 与上面主从关系对标 Dead timer due in 40 sec //死亡时间40s Retrans timer interval: 5 //倒计时,会一直变 Neighbor is up for 00:00:31 //邻居起来多久了,计时。 Authentication Sequence: [ 0 ] //认证号,没有认证是0 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |