OSPF详解(三)

引用https://blog.csdn.net/weixin_42240537/article/details/80418289


ospf

1.   ospf定义

1.1. ospf(Open Shortest Path First)就是使用链路状态路由算法的内部网关协议。在单一自治系统(AS)内部工作。能够建立邻居和邻接关系,并且能够划分区域管理,提高网络效率的无类链路状态路由协议。(个人理解,非官方)

 

1.2. ospf适用于大型网络的原因:1.收敛速度比较快。2.同时基于链路状态算法,协议自身无环,克服了距离矢量算法的环路和慢收敛问题。3.同时有了区域的概念,这样通过区域将网络分割成不同的路由域,将网络的复杂性变小。4.通过层次化的网络减少了网络之间的通信量。支持更高的等价负载均衡。5.安全md5 认证在网络更换密码时不会断流。6.其余的一些特性如无类路由、采用组播地址(节省了服务器的负载)等等使得它更适合大型网络。

            总结:为何适用于大型网络     

1. OSPF是一个触发更新

2.   OSPF有邻居机制,收敛速度快

3.   有vlsm,支持不连续子网  

4.   支持组播更新

5.   OSPF没有跳数限制     

6.   百分百无环路,spf算法,星型结构,汇总指向null0   

7.   能够跟踪外部路由标记     

8.   可以修改cost,不用修改带宽参数 

9.   支持更安全的路由选择认证

10. 支持多条负载均衡  

 

2.   ospf基本特征 

2.1. 开放式最短路径优先    

2.2. SPF算法   

      选择开销最小的可用路径,提高效率,节约带宽.

2.3. 只支持手工汇总     

   三类汇总

      五类汇总   

2.4. 无类路由协议,链路状态路由协议  

      带掩码信息

      传递的不是单个路由条目,而是链路状态数据库信息LSA   

2.5. 属于传输层,IP协议号:89     

2.6. 支持简单口令认证,MD5口令认证

支持认证类型:不认证、明文认证、密文认证

不认证:null 明文认证:simple  plain 密文认证:md5,cipher,hmac-md5接口下认证:可开启认证、配置密码;

区域认证:可开启认证、配置密码;

接口和区域启用不同类型的认证,则接口强

接口和区域起用相同类型的认证,则区域强

2.7. 触发更新组播 

      224.0.0.5用来发现设备,所有路由器都可以监听   

      224.0.0.6用来维护邻接关系,只有DR和BDR可以监听   

2.8. 增量更新:只传输变化的条目  

2.9. 周期更新   

      邻居30分钟发送一次LSU条目,60分钟死亡时间

 

4.   ospf区域  

4.1. 为啥要划分区域     

1、减小路由表大小

2、限制lsa的扩散

3、加快收敛    

4、增强稳定性

5    在路由器比较多的情况下,为了使得路由器资源不会被ospf占用太多,我们划分区域。使得具体的LSA的内容只在区域内传递,跨越区域时,进行LSA的汇总。所以汇总只能在区域间手动进行,区域内部无法汇总。  

4.2. 区域划分

骨干区域   

常规区域

区域之间基于接口划分

4.3. 区域边界上的路由器    

      内部路由器IR(路由器的所有接口属于同一区域内)   

   区域边界路由器ABR(骨干区域与常规区域之间)

   自助系统边界路由ASBR(将外部不同协议的路由条目重分发进ospf) 

特殊区域类型  

stub area :末节区域(过滤4,5类,允许3类。ABR会给区域自动发送一条默认路由)当一个区域被配置成Stub区域后,它就不接受外部五类和四类LSA,在lsdb中看不到五类和四类的LSA,在路由表中会增加一条默认路由以到达外部路由。直接进入区域,输入 stub 即可配置成stub区域。此时可以发现lsdb中不存在五类和四类lsdb,但是多了一条默认路由的三类LSA

totally stub area :完全末节区域(过滤4,5类,明细的的3类)不接受三类、四类以及五类LSA,在abr上进入相应区域输入stub no-summary 即可,因为三类LSA是有abr产生的,所以只要在ABR上进入配置就可以了,此时可以发现lsdb中只存在一条默认的三类LSA 

      NSSA区域:不同于Stub区域,NSSA区域虽然不接受四类和五类LSA,但是区域可引入外部路由,存在ASBR,能将外部路由发送给其他区域,其实引入的路由会以七类LSA的形式通告出去   

      完全NSSA区域:不接收三类四类五类LSA,在abr上进行相应区域输入 NSSA no-summary 即可。此时可以发现LSDB中只存在一条默认的三类LSA

 

5.   Router-ID 

5.1. OSPF的身份表示,相当于给OSPF里的路由器取了一个名字(且只能有一个,相当于我们身份证就一个,点分十进制表示;整个OSPF自治系统的Router-ID不能一致    

 

5.2. 如何确定Router-ID: 1、手动指定一个Router-ID2、活动的回环口IP最大的 3、活动的物理接口IP最大的

(可能会跳过回环口,直接选择物理接口    )

 

5.3. 实验:配置Router-ID: [Huawei]ospf 1 router-id1.1.1.1 重置进程: <Huawei>reset ospf process

5.4. 为什么要有RID 因为我们建立邻居、相互识别邻居关系,需要通过RID来识别     10

 

6.   ospf数据包     

6.1. 5种包 

1.   hello包:用于路由器之间发现和维护邻居关系/协商邻接关系  

2.   DBD(数据描述)包:有的教材也叫DD包,用于向邻居表述自己已经知道LSA(确认信息:序列号,LSA的摘要)    

3.   LSR(链路状态请求)包:用于请求邻接的路由器发送链路信息(确认信息:LSU)

4.   LSU(链路状态更新)包:用于回应链路状态请求包LSR,而发送的更新包(确认信息:LSAck,交换详细的LSA信息)  

5.   LSAck(链路状态确认)包:用于对邻接的路由器发送过来的LSU包的确认回复包 

 

6.2. 1、2、3、5、4、7类LSA

type 1(router LSA):每一台路由器都会产生1类通告。自己区域内泛洪扩散,包含直连邻居的接口信息,告知自己的链路状态信息及方向     

type 2(network LSA):每一个多路访问网络中的DR将会产生2类通告。将DR路由器看作一个“伪”节点,用于描绘一个多路访问和与之相连的所有路由器,也就是通告列出与之相连的所有路由器,包括本身   

      type 3(sum-net LSA):对应的是ABR路由器,将一个区域里的1类,2类LSA转换成3类通告到其他区域,在这里类似于做了一个汇总    

      type 5(自治系统外部LSA):域外的路由信息     

      type 4(ASBR汇总LSA):也是作为一个节点,使得区域内的路由信息能和区域外的信息交换,然后通信     

      type 7:(NSSA外部LSA):指在非纯末梢区域内始发于ASBR路由器的LSA通告,也是域外路由信息  

 

7.   OSPF在网络中的路由信息交互

7.1. 建立邻居和邻接关系

邻居

邻居关系是通过Hello报文建立和维持,带有路由器的关于协议的一些参数,

只有这些参数匹配才可以建立邻居关系。在two-way状态,没有数据库同步。

邻居如果没有建立起来,就要通过排查以下参数来确定原因。

区域ID一致

Hello时间与Dead时间一致

认证类型和密码一致

特殊区域标签一致

mtu值一致 不一致会进行到exstart

掩码要一致

网络类型一致(p2p和broadcast之间能建立邻接关系,但是学习不到路由条目)

router-id要不一致

      邻接

达到full状态,有数据库同步,邻居关系建立是前提

3张表

邻居表:存放邻居的相关信息

dis ospf peer brief

拓扑表:链路数据库(LSDB),存放LSA

dis ospf lsdb

路由表:经过SPF算法的最优路由(将管理距离最小,cost值最小的路由条目加载到该表中)

dis ip routing-table protocol ospf

7种状态

down状态:在失效时间间隔内未收到邻居路由器发送过来的Hello包

Attempt:在NBMA的环境下,自己发出去Hello包,还没收到Hello包

init状态:已收到邻居的Hello包,但在该Hello包中未发现自己的状态,或者Hello参数不匹配时的状态

two-way状态:在邻居发送过来的Hello包中发现自己的RID,Hello参数匹配且通过验证时的状态(选举DR/BDR)

选举DR/BDR

接口优先级大的优先,DR优先级的范围是0-255,默认是1

RID大的优先,BDR则是一人之下万人之上

注意:DR和BDR都是不抢占,即DR和BDR被选取之后,即使有新的路由器加入该多路访问,则也不会立刻参与成为DR和BDR,这样可以保证网络的稳定性。除非DR挂了,BDR立刻成为DR不管这个时候网络内是不是有比BDR参数更高的存在,其他所有人则去竞选BDR。

选举环境:广播式多路访问网络和非广播式多路访问网络

为什么在这个状态下选举?

为了确定哪些是邻居关系,哪些是邻接关系

因为是在多路访问下,导致防止LSA泛洪,会建立多个邻居关系,邻居太多了

exstart状态:向224.0.0.5发送了第一条DBD包后的状态,直到RID较高的路由器成为主路由器

备注:不会丢包,这里发的是空的DBD包,只是LSA的摘要,会产生序列号来确认数据包,再通过RID高的决定用谁的序列号

exchangge状态:选举完成,两路由器继续交换DBD包直到双方获悉的LSDB库信息相同

loading状态:这时开始发送LSR/LSU包进行详细的LSA交换

备注:发现自己的状态里没有对方的LSA信息,才会发送LSR,请求到后,才会使用LSU;而且两台设备可能由于发送的数据包大小不同,会不同步

full状态:发送收到并且确认所有的LSA之后,双方路由器LSA完全相同,邻接关系建立完成

备注:这7种状态不是都必须存在,如果收到的数据包已经匹配了,就可以直接从down到two-way状态

7.3. 重分发 [huawei-ospf-1]import-route direct 将区域1设置成NSSA区域 [huawei-ospf-1-area-0.0.0.1]nssa 将区域1设置为完全NSSA区域 [huawei-ospf-1-area-0.0.0.1]nssano-summary   

 

8.   优化路由条目  

8.1. 汇总(分内外部条目的一个汇总)  

1.   实验: 3类LSA汇总配置:[huawei-ospf-1-area-0.0.0.1]abr-summary 10.1.0.0 255.255.252.0

5类LSA汇总、ASBR汇总配置: [huawei-ospf-1]asbr-summary10.1.0.0 255.255.252.0

 

8.2. 特殊区域(自己),使得路由器的性能更好, 减少这个区域LSA数目,SPF算法就会更快  

      在现网中,并不是每台路由器都像核心路由器那么强大,随着路由器的更换,总有一些很弱的路由器存在现网中,于是OSPF末节区域就产生了,考虑到这些路由器的性能较差,把它们归于末节区域,通过减少这些路由中的LSA来减少他们的压力。     

      条件: 1、骨干区域不能设置为特殊区域 2、区域内所有路由器都要配置末节的命令 3、虚链路的透传区域不能配置特殊区域 

   特殊区域种类          

 

8.3. 虚链路 

      击穿非骨干区域,建立一条逻辑上的连接通道,使得路由器间通信更快 

R2:[huawei-ospf-1-area-0.0.0.1]vlink-peer3.3.3.3

R3:[huawei-ospf-1-area-0.0.0.1]vlink-peer2.2.2.2

作为一枚纯种网络小白和馄青,我最大的梦想就是实现共产主义和成为一名AR,文章坑定还会有许多僻陋,欢迎大家指教!


  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值