[ 网络协议篇 ] IGP 详解之 OSPF 详解

Posted _PowerShell

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] IGP 详解之 OSPF 详解相关的知识,希望对你有一定的参考价值。

🍬 博主介绍  

  • 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
  • ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
  • 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
  • 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
  • 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

ospf 是当前用的最多的 IGP 路由协议

走网络方向的兄弟们,ospf 是必须掌握的

同时,ospf 的内容很多,这里我会有三四篇的文章来写 ospf

可能由于能力有限,不会写的特别全面,但对于网络工作来说,应该是够用了

目录

🍬 博主介绍  

一、知识点介绍

1. 基本概念:

2. router id

3. ospf三张表

4. 邻接关系

5. 区域的概念及多区域部署

6. 默认路由

7. 报文认证

8. 静默接口

9. 多进程

10. ospf 网络类型:

11. DR 和 BDR

12. OSPF邻居与邻接关系

 二、专栏分享


一、知识点介绍

1. 基本概念:

开放式最短路径优先,典型的链路状态路由协议

所有厂商的设备都可以实现ospf,是目前行业内使用最为广泛的IGP。

版本:OSPFv2(IPv4),OSPFv3(IPv6)    

协议号89            组播:224.0.0.5  224.0.0.6

优先级:10(内部)  150(外部)

度量方式:路由如接口综合

自治系统(AS):

自治系统(Autonomous System) : (狭义的自治系统)

一个自治系统是指使用同一种路由协议交换路由信息的一组路由器。

2. router id

作用:用于自治系统中,唯一标识运行了OSPF的一个路由器

32bit长度数值,点分十进制表示。

用于在同一个ospf域中唯一的标识一台ospf路由器。

router id选举:  1.通过ospf 1 router-id x.x.x.x指定(手工配置)

                       2.通过router id x.x.x.x 指定(手工)

                           3.最大Loopback接口地址(大的优先)

                           4.最大物理接口地址(大的优先)

router id不会被抢占,如果要重新设置router id,在配置完后需要使用:

<huawei>reset ospf process  重启ospf进程,router id才会重新选举。

3. ospf三张表

邻居表(dis ospf peer):

其中描述了这个邻居的状态、主从关系(master/slave)、router id、DR优先级(若有)、接口ip等信息。

链路状态数据库(LSDB)(dis ospf lsdb))(拓扑表):

LSDB可以当做是路由器对整个网络的认知,其中存放了路由器所收到的所有的LSA。

包括LSA的类型、链路标识、始发路由、时间、长度、序列号、度量值等信息。

ospf路由表(dis ospf routing):

ospf根据LSDB中的数据,

运行SPF算法并得到一颗以自己为根的、无环路的最短路径树,基于这棵树,

ospf能够发现到达网络中各个网段的最佳路径,

从而得到路由信息并加载到ospf路由表中。

4. 邻接关系

邻居:双方接口激活后开始发送并侦听hello报文,在通过hello报文发现彼此并确认双向通信后,二者是成为邻居关系。

邻接:当二者的LSDB完成同步后,两台路由器形成了对网 络拓扑的一致认知,并开始独立计算路由时,二者成为邻接关系。

5. 区域的概念及多区域部署

划分区域的规则:将整个ospf域划分为多个子区域,每一个区域都有自己的编号,也就是区域id,在划分的子区域中必须存在一个骨干区域,其他的则是常规区域。

骨干区域编号固定为0,也就是area 0。

分区的作用:减小数据库规模,支持大型网络

虚链路:常规区域没有与骨干区域之间相连的问题,碰到这种问题最好是修改ospf的网络设计重新配置,使其与骨干区域直接相连,这个改动就会涉及网络改动成本等问题,因此我们有一种解决这个问题的临时方案,那就是虚链路。

分区:每个区域维护一个区域内的LSDB

好处:减少了LSDB的大小,加快了SPF的计算(收敛更快)

区域间传递的不是链路状态信息,是传递的路由信息(和rip就一样了(可能有环))

分为:骨干区(0)和非骨干区(非0)

区域:一组网络的集合

划分区域的方式:以接口为单位(一个接口只能属于一个区域)

解决区域间环路问题:

       常规区域必须在逻辑上与骨干区域直接相连

非骨干区域之前不能传递LSA

只有骨干区域能与常规区域直接通信,常规区域之间不能直接通信,

必须通过骨干区域的转发,从而避免环路的产生。

路由器的分类:

       IR(内部路由器)常规区域内部路由器

       BR(骨干路由器)骨干区域内部

       ABR(区域边界路由器)连接骨干区域和非骨干区域

       ASBR(AS边界路由器)使用BGP连接另一个AS(做了引入)

同一个区域内路由器才会建立邻居关系,交换LSA,收敛后,同一个区域内所有设备具有相同的LSDB,这个LSDB反映了区域内的链路状态,再计算区域内的路由。

不同区域之间,由区域边界路由器ABR直接转发路由

每个区域有一个ID, ID是32位二进制,可以表示为一个十进制数,也可以表示为点分十进制形式

例如:区域0等价于区域0.0.0.0;区域1等价于区域0.0.0.1。

6. 默认路由

手工配置的静态路由不能通过路由引入命令引入到ospf中,

原因:是因为ospf会认为在进行重分发时可能会产生环路。

下发默认路由:

[R1-ospf-1]default-route-advertise (always) (cost x)

always关键字:不加表示当前设备中如果存在一条默认路由,则下发默认路由,否则不下发;添加always关键字表示无论当前设备有没有默认路由都会下发;

cost关键字:设置下发的默认路由的cost值,不加cost关键字则使用缺省的cost值10。

引入路由:1 mport-route di rect

7. 报文认证

两类三种报文认证:两类:接口认证;区域认证。

三种:空认证;简单口令认证;密文认证。

空认证:缺省情况下接口使用,也就是不进行报文收发的认证。

简单口令认证(明文认证):会进行报文收发认证,且口令会以明文的方式存放在ospf报文头部。

密文认证:报文中不直接包含口令,而是包含一个哈希值,这个哈希值是用户配置的口令经过MD5算法计算的结果。MD5算法是一种理论上不可逆的散列算法,因此即使报文被捕获,也无法通过哈希值反推出口令。

区域认证:对整个区域进行报文收发的认证,同一区域内所有路由器都需配置相同的口令。配置如下:

[R1-ospf-area0.0.0.0]authentication-mode md5 1 cipher123

接口认证:同一链路上的所有接口都需要配置相同的口令,优先级高于区域认证,配置了接口认证的链路上,如果区域认证失败,就算通过了区域认证也还是不能进行报文收发。

配置:[R1-g0/0/0]authentication-mode simple cipher 123

8. 静默接口

作用与rip静默接口一样,区别是ospf静默接C ]既不接收又不发送ospf协议报文。

配置[R1-ospf-1]silent-interface g/0/0

9. 多进程

当一台设备运行了多个ospf进程,这些进程将相互独立,互环干扰,各自维护各自的L SDB和ospf
路由表。如果要两个进程之间需要通信,则需在边界路由器上进行路由引入。

例如在进程1中引入进程2:

[R1-ospf-1]import-route ospf 2

10. ospf 网络类型:

1.点对点:指一条链路上只能连接两台路由器的环境。

例如PPP链路。在p2p链路上不会选举DR和BDR。

2.广播型多路访问:是一个允许多台路由器接入且支持广播的网络环境。例如以太网。

3.非广播型多路访问:允许多台路由器接入但不支持广播的环境。例如帧中继。

4点对多点:这种网络类型不是路由器根据接口数据链路层封装情况自动设置的,而是网络工程师手工指定的,类似于将多条P2P链路的一端进行捆绑得到的网络。

接口视图使用:ospf network (p2p/p2mp/broadcast/nbma)修改接口的网络类型

11. DR 和 BDR

DR(指定路由器)  BDR(备份的指定路由器)   DRother(不是DR也不是BDR)

所有的DRother都只与DR以及BDR建立邻居关系,

BDR也与DR建立邻居关系,而DRother之间则停留在2-way状态。

1.在那种网络类型下才会有DR和BDR:广播和NBMA(简称为MA网络)

2.使用哪一个协议报文去选举DR和BDR:Hello

3.在那个状态机下选举:2-way

4.选举时间多少秒:40s

5.DR和BDR作用:

       1.减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,减少路由器硬件的负担

(DRother之间只需要维护邻居关系(2-way))

(DRother只需要和DR、BDR建立邻接关系(full))

2.在描述拓扑的LSDB中,一个NBMA网段或者广播型网段是由单独一条LSA来描述的,这条LSA是由该网段上的DR产生的。(二类LSA)

组播地址使用:

DRother把自己的LSA信息通告给DR、BDR用的是:224.0.0.6

DR收到DRother信息广播用的是:224.0.0.5

DR与BDR选举:非抢占

通过hello报文中的“DR优先级”字段选举

       1.接口的DR优先级,默认为1,取值范围0-255,数值越大越优先,为0表示不参与选举。(可通过接口下ospf dr-priority x修改。)

       2.router id,最大router id的路由器会成为DR。

DR与BDR一旦选定,没有故障或手动设置的话不会被抢占。

不可抢占原因:防止路由的重复计算(路由表震荡 重新建立邻接关系邻居关系)

<huawei>reset ospf process  重启ospf进程,router id才会重新选举。

改变DR  BDR  

ospf dr-priority x修改优先级

<huawei>reset ospf process  重启ospf进程,DR  BDR才会重新选举。

原来的DR  BDR都需要重新启动OSPF进程    (DR必须重启)

查看接口的ospf属性:dis  ospf  interface  g0/0/0(查看DR  BDR  网络状态等等)

12. OSPF邻居与邻接关系

邻居:2-way状态     只是知道对方存在  (用到hello报文)

邻接:full状态        相互交互了LSA:生查路由表

是否建立邻居关系:

点到点链路:上一定要建立邻接关系(就两台设备)

点到多点:一定建立邻接

虚链路:一定建立邻接

广播和NBMA:DR、BDR、与其他建立邻接。其他与其他建立邻居。

 二、专栏分享

每个专栏都在持续更新中~~~

渗透测试自学篇        web基础知识点

网络基础                   面试总结

网络工程师                python

操作系统篇                通讯安全

闲聊                           漏洞复现篇

代码审计                    SSM

docker                        环境搭建篇

python爬虫                 靶场

​​​​​​心理学

以上是关于[ 网络协议篇 ] IGP 详解之 OSPF 详解的主要内容,如果未能解决你的问题,请参考以下文章

[ 网络协议篇 ] IGP 详解之 OSPF 详解--- 四种网络类型 && 虚链路 详解

[ 网络协议篇 ] IGP 详解之 RIP 详解

# 大型网络构建-OSPF详解二(特殊区域与虚链路)

动态路由——OSPF 理论篇

OSPF报文详解

OSPF报文详解