[ 网络协议篇 ] IGP 详解之 OSPF 详解
Posted _PowerShell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[ 网络协议篇 ] IGP 详解之 OSPF 详解相关的知识,希望对你有一定的参考价值。
🍬 博主介绍
- 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
- ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
- 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
- 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
- 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
ospf 是当前用的最多的 IGP 路由协议
走网络方向的兄弟们,ospf 是必须掌握的
同时,ospf 的内容很多,这里我会有三四篇的文章来写 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、与其他建立邻接。其他与其他建立邻居。
二、专栏分享
每个专栏都在持续更新中~~~
以上是关于[ 网络协议篇 ] IGP 详解之 OSPF 详解的主要内容,如果未能解决你的问题,请参考以下文章