OSPF基础-个人理解

12 篇文章 9 订阅
11 篇文章 1 订阅

一、ospf 是什么?

OSPF(Open Shortest Path First,开放式最短路由优先)是一种典型的链路状态路由协议,由IETF的OSPF工作小组开发,是目前应用最广泛的IGP(内部网关协议)之一。OSPF支持VLSM(变长的子网掩码),支持路由汇总等,引入Area(区域)的概念使OSPF能够支持更广大规模的网络。目前OSPF主要有两个版本,一个是OSPFv2,这版本主要针对IPv4,另外一个版本是OSPFv3,改版本主要针对IPv6。


二、ospf 基本信息

1)ospf 区域内使用SPF算法(Dijkstra算法)计算无环路由
2)ospf (网络层协议)运行在IP之上,协议号:89
3)优先级:内部网关协议:10 ,外部网关协议:150


路由生成特点

1)快速收敛:
触发更新----及时相应
增量更新----更新高效
周期更新----每隔30min泛洪一次拓扑表
维护三张表----邻居表、拓扑表、路由表
邻居表:
利用Hello包发现与维持邻居关系
由于Hello小,占用资源少
快速检测建立状态连接(Hello包发送周期为10s)
拓扑表:由于OSPF属于链路状态协议,所以会构建网络拓扑信息
路由表:根据拓扑信息再通过SPF强大算法计算生成

2)组播、单播路由更新:使得ospf更新更为高效

3)支持CIDR(无类别域间路由选择),VLSM(可变长子网掩码):支持路由聚合(路由汇总),路由计算携带掩码(路由更加精确)

4)支持认证(明文认证/MD5 认证): 抵御恶意的路由Flood攻击

5)区域内无环路由协议:SPF算法特点

6)支持等价负载均衡:通告的路由必须是源于相同的区域才能负载均衡

7)ospf路由建立过程: ospf邻接建立----交换LSA构建LSDB-----生成本地路由表

8)路由信息交互与路由计算分离: OSPF路由计算不以赖邻居的路由通告


ospf报文有类型及作用?

1、Hello报文用于发现邻居、维护邻居关系、选举DR/BDR、保证邻居的双向通信。
2、DBD(Database description)用于选举DR/BDR、交互数据库摘要信息。
3、LSR(LSA Request)向对方请求对方有而自己没有的LSA摘要信息。
4、LSU(LSA Update)向请求发送LSA一方发送LSA信息更新报文。
5、LSACK(Link State Acknowledgement)对发送更新报文的邻居进行确认。


ospf是怎么工作的?

1、在路由器启用ospf进程接口处互相发送自己的Hello报文,并且匹配Hello报文中的各种参数,如果参数匹配,就进行下一步,建立邻居。
2、接口根据ospf网络类型建立邻居或者邻接关系,邻居关系就只是交互Hello报文,并不知道邻居的拓扑信息,邻接关系就是两个邻居之间相互交互各种报文,两台路由器都各自拥有完整的拓扑信息从而实现LSDB数据库同步。
3、路由器根据对方建立的邻居或者邻接关系发送不同的LSA报文,这些LSA中包含了路由器的ospf进程信息。
4、当接受到邻居路由器发过来的LSA之后该路由器会它加入到LSDB中,并且再根据路由器自身角色对发送过来的LSA进行泛洪。
5、当一个网络中所有路由器都完成了LSDB同步时,网络收敛完成。
6、网络收敛完成后,区域内每个路由器以自己为树根,计算到达每一个节点的最短路径,画出最短路径的矢量图,这个拓扑图就是SPF算法树。
7、根据SPF算法算出的矢量图算出到达每个节点的最优路径,最后放进路由表中。


Router Id是什么,它的规则是怎么样的?

1、路由器在履行自己的职责时,为了区别于其他路由器,于是每台路由器都有了属于自己的名字(Router ID),Router ID是用32比特位来命名的,在配置ospf时,Router ID的规则是:手动配置优先,默认逻辑接口中最大的IP地址优先,否则路由器物理地址最大的优先。


ospf的八种状态机

第一种、Down 失效状态:
这是邻居的初始状态,
表示路由器还没有从邻居收到任何信息。
也是最开始的状态。

• 停滞于此状态表明路由器没有从邻居处接收到Hello报文。

第二种、Attempt 尝试状态:
 此状态只在NBMA网络上存在,表示路由器没有收到邻居的任何信息,
 但是已经周期性地向邻居发送了Hello报文;
 如果在Router Dead Interval的时间间隔内未收到邻居的Hello报文,
 则转为Down状态。

• 停滞于此状态表明路由器向已配置的邻居发送了单播Hello报文,但没有收到该邻居的Hello报文。

第三种、Init 初始状态:
  表示路由器已经从邻居收到了Hello报文,
  但是自己不在所收到的Hello报文的邻居列表中。
  这说明自己尚未与邻居建立起双向通信关系。

• 停滞于此状态表明路由器收到了邻居的Hello报文,但Hello报文中没有包含接收路由器的OSPF RID(Router ID)。

第四种、2-Way 双向通信状态:
  表示路由器与邻居的双向通信关系已经建立(即已经建立起了邻居关系),
  但是尚未建立起邻接关系。

• 停滞于此状态表明路由器彼此都收到了对方的Hello报文,并且都从Hello报文中发现了自己的OSPF RID。对于以太网链路上的非DR/BDR路由器来说,这种状态是可以接受的。

第五种、ExStart 信息交换初始状态:
  邻居状态变成此状态以后,
  路由器开始向邻居发送DD报文。
  Master/Slave关系是在此状态下形成的,
  初始DD序列号也是在此状态下确定的。
  在此状态下发送的DD报文不包含链路状态描述。

• 停滞于此状态表明邻居路由器之间的MTU不匹配或OSPF RID重复。

第六种、Exchange 信息交换状态:
  在此状态下,
  路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。

• 停滞于此状态表明邻居路由器之间的MTU不匹配。

第七种、Loading 信息加载状态:
   在此状态下,
   路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。

• 停滞于此状态表明可能存在硬件故障或硬件故障或MTU不匹配。

第八种、Full 完全邻接状态
   表示LSDB同步过程完成,
   路由器与邻居之间形成了完全的邻接关系。

• Full状态是OSPF路由器的一个最常见的状态。如果一个路由器停留在另外一个状态,那么就说明了在路由器建立临接关系的过程中是存在问题的。唯一的例外是2-way状态,是在广播网络中常见的。在广播网络中,邻居之间(除了和DR,BDR之外)会最终处于2-way状态。


ospf的网络类型详解

首先讲解一下,什么是MA网络?
MA网络就是多路访问网络(Multiaccess ),它分为两种:一是广播(Broadcast),二是非广播的多路访问网络(NBMA)MA网络在ospf中需要选出DR和BDR,用来减小LSA泛洪。

1)P2P(点对点)
传输介质为(PPP, HDLC, FR点对点子接口)ospf默认网络类型为P2P
邻居发现: 自动
DR/BDR选举:无
Hello/Dead间隔时间: 10/40s

2)BMA(广播型多路访问)
传输介质为(Ethernet)
邻居发现:自动
DR/BDR:存在
Hello/Dead间隔时间10/40s
Next-hop:不改变

3)P2MP (点对多点)
传输介质: 不存在
邻居发现:自动
DR/BDR:不存在
Hello/Dead间隔时间30/120s
Next-hop: 包含所有节点的32位的主机路由

4)NBMA(非广播多路访问)
传输介质: FR(帧中继),FR多点子接口
邻居发现: 手动建立邻居(相互指定)
DR/BDR选举:存在
Hello/Dead时间: 30/120s
Next-hop: 参考BMA

5)Vlink (虚链路)


常见LSA类型讲解

背景:ospf 是一种基于链路状态的动态路由协议,每台ospf路由器都会生成相关的LSA,并将这些LSA通告出去。路由器收到LSA后,会将它们存放在链路状态数据库LSDB中。

Type-1 LSA (Router LSA): 每台路由器均会产生,用来描述路由器的直连链路状态和开销值。Type-1 LSA只能在所属区域内部泛洪,不能泛洪到其他区域。

Type-2 LSA (Network LSA): 它由DR产生,主要用来描述该DR所在网段的网络掩码以及该网段内有哪些路由器。Type-2 LSA只能在所属区域内部泛洪,不能泛洪到其他区域。

Type-3 LSA (Network Summary LSA):它是由ABR路由器产生的,ABR路由器将所连区域内的Type-1和Type-2 LSA转换成Type-3 LSA,用来描述区域间的路由信息。Type-3 LSA 可以泛洪到整个自治区域内,但是不能泛洪到Totally Stub区域和Totally NSSA区域。

Type-4 LSA (ASBR Summary LSA): 它是由ASBR所在区域的ABR产生的,用来描述到ASBR的路由。Type-4 LSA 可以泛洪到整个AS内部,但是不能泛洪到stub,Totally stub,NSSA 和Totally NSSA区域。
Type-5 LSA (AS External LSA): 它是由ASBR所在区域的ABR产生的,用来描述到AS外部网络的路由。Type-5 LSA可以泛洪到整个AS内,但是不能泛洪到stub,Totally stub,NSSA 和Totally NSSA区域。

Type-6 LSA (Group Membership LSA): 在MOSPF中用于标识组播成员使用的用户组播路由。

Type-7 LSA (NSSA LSA): 它是由NSSA区域或Totally NSSA区域的ASBR产生的,用来描述AS外部的路由。Type-7 LSA 只能出现在所属区域NSSA区域或Totally NSSA区域内部。


NBMA场景问题

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

NBMA的理解,首先是造一个NBMA的环境(举例R1,其他路由器类比),底层配置是配置NBMA网络类型 link-protocol fr
然后在帧中继中搭好专线
fr map ip 155.1.0.2 102
fr map ip 155.1.0.3 103
分支之间没有搭建专线,分支之间不能互通,运营商与分支之间可以互通,此时需要把R2、R3优先级改为0,避免DR选举抢占,让R1成为R2、R3的DR。当大家都配置OSPF时,此时R2、R3却不能通信,原因如下图所示:因为hello报文的交互需要组播,此时我们需要手动指定邻居(单播建立邻居关系)
peer 155.1.0.2
peer 155.1.0.3
邻居建立之后,我们需要让R2通过201专线到达R1,再通过R1到达R3。
fr map ip 155.1.0.3 201
在这里插入图片描述

P2MP与P2P的场景

在这里插入图片描述
注意点是邻居建立时间要改为一致,OSPF才能建立。
在这里插入图片描述

典型vink场景问题

现网尽量避免虚链路问题,虚链路连接的命令是peer对端router-id。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

路由优先级比较

外部类型2引入沿途不累加开销
在这里插入图片描述
场景一:
路由优先级比较场景LSA1>LSA4,无论R2-R4开销开多大都走R2-R4,拓扑比LSA算的更准。
在这里插入图片描述
场景二:
在这里插入图片描述

stub、totally stub和nssa、totally nssa场景拓扑图如下

在这里插入图片描述

下发缺省问题:

下发缺省的前提是ABR必须要有这条到外面的缺省路由
命令是 : detault-route-advertise
在这里插入图片描述
在引入外部路由时,需要避免因为某ip挂掉而导致路由汇总由精确变为不精确,从而导致环路的产生,决解办法是在ABR上手动添加静态路由空接口。(ASBR引入也需要注意到这个细节)如下所示:
在这里插入图片描述

OSPF报文认证

在这里插入图片描述
vlink-peer 150.1.1.1 md5 1 plain HUAWEI 虚链路添加认证
vlink-peer 150.1.2.2 authentication-null 虚链路空认证
双方都要认证才能成功,若一方区域认证,一方接口认证也可以认证成功。
区域配置命令:
在这里插入图片描述
接口认证配置:
在这里插入图片描述
查看MD5认证是否成功看邻居有没有断(dis ospf peer brief),如果邻居断了,说明认证不成功,否则反之。
在这里插入图片描述

静默接口

节约带宽,提高性能。一般跟终端相连,常间配置方法有两种,如下:
这个是挨个挨个接口配置,过程比较麻烦。
在这里插入图片描述
第二种是直接让全部接口配置成静默接口,然后再undo不需要静默的接口就好了,如下:
在这里插入图片描述

LSA5、LSA7之间比较优先级

第一步我们需要看定义的标准是什么(默认RFC1583),默认是比较优先级。
但是我们可以更改标准,使用undo rfc1583 compatible之后采用的标准就变为rfc2328标准了,这时候就不比开销了,这时候比较区域号,选择区域号大的优先。
在这里插入图片描述
在这里插入图片描述

OSPF转发地址(FA地址)

目的:解决转发过程中次优路径问题。

在这里插入图片描述
先找转发地址,而不是先找通告者,再去找目标地址(外部网络)我们也可以手动执行强制指定路由器执行七转五。命令:nssa translator-always
在这里插入图片描述
当我们在执行了手动执行七转五之后又把配置删除时(命令:nssa translator-always suppress-forwarding-address )容易发生环路,如下环路:
在这里插入图片描述
nssa translator-always suppress-forwarding-address 清空转发地址命令

FA存在场景如下图:
在这里插入图片描述

PRC

在这里插入图片描述

智能定时器

在这里插入图片描述
在这里插入图片描述
基本配置如下
第二个调成0意思是LSA一变化就马上改变
在这里插入图片描述
配置Smart-discover
在这里插入图片描述

FRR

解决路由器故障时,路由不能快速跟着改变路由的问题。
符合接盘侠的条件如下:
在这里插入图片描述

次拓扑全配OSPF无其他要点
在这里插入图片描述
在这里插入图片描述

此时说明已经成为接盘侠了。如果配置接盘侠不合格,没有成功,则发生故障时,使用SPF算法也就是时间会长一点而已。

OSPF Database Overflow

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

LSA更新、同步机制(结论)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

OSPF排错诊断

邻居无法建立

1、OSPF 计时器不匹配
2、OSPF区域ID不匹配
3、OSPF 区域类型不匹配
*末梢与完全末梢可以建立邻居关系
4、OSPF认证
5、双方router-id相同
6、前缀或掩码不一致
*P2P网络类型忽略
*华为允许掩码或前缀不一致
*思科仅允许掩码不一致
MA网络类型考虑掩码与地址
MA网络仅存在一条LSA2,仅描述DR对应掩码
7、OSPF网络类型不匹配
NBMA与P2P、MA、P2MP无法建立
一下网络类型可以建立邻居
MA与P2P—无法路由计算
MA与P2MP----无法路由计算
P2P与P2MP—需修改OSPF计时器
8、
在这里插入图片描述

排错工具:
debug ospf error
dis ospf error

OSPF最终拓扑

在这里插入图片描述

先配置好底层环境之后直接开干


实验需求
1.区域ID如图所示;R1能与R2,R3通信,R2,R3不能直接通信
所有路由器的router-id设置为150.1.X.X/32(X为路由器ID)
其中SW1不支持组播转发(此处模拟器BUG)
交换机LSW2配置:
vlan batch 10 20 30

interface GigabitEthernet0/0/1
port hybrid pvid vlan 10
port hybrid untagged vlan 10 20 30

interface GigabitEthernet0/0/2
port hybrid pvid vlan 20
port hybrid untagged vlan 10 20

interface GigabitEthernet0/0/3
port hybrid pvid vlan 30
port hybrid untagged vlan 10 30
R1:
ospf network-type nbma
ospf 1 router-id 150.1.1.1
peer 155.1.0.2
peer 155.1.0.3
R2:
ospf network-type nbma
ospf 1 router-id 150.1.2.2
peer 155.1.0.1
R3:
ospf network-type nbma
ospf 1 router-id 150.1.3.3
peer 155.1.0.1


2.蓝色区域不包含LSA4,LSA5,可以引入外部路由
R4:
ospf 1
area 0.0.0.2
nssa
R5:
ospf 1
area 0.0.0.2
nssa
R6:
ospf 1
area 0.0.0.2
nssa


3.10.1.0.0/24;10.1.1.0/24属于区域1
10.1.2.0/24;10.1.3.0/24;150.1.1.1/32不属于OSPF网络;

这只是一个被告知的条件


4.R2,R4启用区域MD5认证,R3,R5互联接口启用MD5认证
R2:
ospf 1
area 0.0.0.0
authentication-mode md5 1 plain huawei
R3:
interface GigabitEthernet0/0/2
ospf authentication-mode md5 1 plain huawei
R4:
ospf 1
area 0.0.0.0
authentication-mode md5 1 plain huawei
R5:
interface GigabitEthernet0/0/2
ospf authentication-mode md5 1 plain huawei


5.为了防止R4,R5互联链路故障导致骨干区域分裂,R2,R3部署VLINK作为备份
R2:
vlink-peer 150.1.3.3
R3:
area 0.0.0.1
vlink-peer 150.1.2.2 smart-discover md5 1 plain huawei


6.优化区域0不包含LSA2
R2:
interface GigabitEthernet0/0/1
ospf network-type p2p
R3:
interface GigabitEthernet0/0/1
ospf network-type p2p
R4:
interface GigabitEthernet0/0/2
ospf network-type p2p
R5:
interface GigabitEthernet0/0/2
ospf network-type p2p


7.精确汇总10.1.0.0/24,10.1.1.0/24
R2:
abr-summary 10.1.0.0 255.255.254.0
R3:
abr-summary 10.1.0.0 255.255.254.0

精确汇总10.1.2.0/24,10.1.3.0/24
import-route direct route-policy DIR->OSPF

route-policy DIR->OSPF permit node 10
if-match ip-prefix NET10

ip ip-prefix NET10 index 10 permit 10.1.2.0 23 greater-equal 24 less-equal 24


8.区域0不包含150.1.6.6/32,OSPF网络内部节点可以访问外部网络(未学跳过)


9.R1下发缺省路由并累加沿途开销,实现所有节点均可以访问150.1.1.1/32
R1:
default-route-advertise always type 1


10.保障R1访问10.1.2.0/24,10.1.3.0/24使用R3作为下一跳,但是通告者为R4
R4:
nssa translator-always
R2:
ospf cost 10


11.若R2,R4互联链路故障,R4可以快速将流量切换到备份路由上
R4:
frr
loop-free-alternate


12.R1与R2,R3之间检测到链路故障时,快速断开OSPF邻居关系(未学跳过)

13.设置合理的SPF计算的间隔时间,可以避免占用过多的路由器内存和带宽资源
? 设置SPF计算的最长间隔时间10s
? 设置SPF计算的初始间隔时间1s
? 设置SPF计算的基数间隔时间0.5s
R1:
spf-schedule-interval intelligent-timer 10000 1000 500
R2:
spf-schedule-interval intelligent-timer 10000 1000 500
R3:
spf-schedule-interval intelligent-timer 10000 1000 500
R4:
spf-schedule-interval intelligent-timer 10000 1000 500
R5:
spf-schedule-interval intelligent-timer 10000 1000 500
R6:
spf-schedule-interval intelligent-timer 10000 1000 500


14.修改AREA 1的Hello间隔为默认的1/3, 设置VLINK设置主动发送Hello报文
R1:
interface GigabitEthernet0/0/0
ospf timer hello 10
R2:
interface GigabitEthernet0/0/0
ospf timer hello 10
vlink-peer 150.1.3.3 smart-discover
R3:
interface GigabitEthernet0/0/0
ospf timer hello 10
vlink-peer 150.1.2.2 smart-discover md5 1 plain huawei


OSPF常见命令如下

在这里插入图片描述
dis ospf int g0/0/0
dis ospf peer brief
dis ip route-table protocol ospf
dis ospf interface
dis ospf peer brief
dis ospf brief (stub)
ospf dr-priority 0
dis ospf lsdb router self-originate
dis ospf abr-asbr
dis ospf routing
dis ospf lsdb summary X.X.X.X
dis ospf vlik
dis ospf lsdb ase
dis ospf lsdb ase self-originate
dis ospf lsdb asbr
dis ospf error interface e0/0/0
vlink-peer 150.1.1.1 md5 1 plain HUAWEI 虚链路添加认证
vlink-peer 150.1.2.2 authentication-null 虚链路空认证
nssa translator-always suppress-forwarding-address 清空转发地址命令
dis ospf lsdb ase X.X.X.X 可以查看FA地址
ospf timer hello 5 hello包间隔时间
ospf timer dead 15 收不到hello包多久就认为对方已经挂掉了
ospf smart-discover 启用smart-discover
spf-schedule-interval intelligent-timer 5000 100 100 设置SPF智能定时器
lsa-originate-interval 0 LSA产生间隔
lsa-originate-interval intelligent-timer 5000 500 1000 设置LSA接收处理的智能定时器
dis ospf routing X.X.X.X
在这里插入图片描述
lsdb-overflow-limit numer 设置ospf中lsdb的外部LSA的最大数目
dis ospf error 查看ospf错误信息
debug ospf error 排错工具

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
OSPF LSDB(Link State Database)是指OSPF协议中的链路状态数据库,它存储了所有OSPF路由器收集到的链路状态信息。通过查询OSPF LSDB,可以获取到网络拓扑信息、邻居关系、路由信息等。\[1\] 在OSPF中,LSDB是由每个OSPF路由器维护的,它包含了该路由器所知道的所有链路状态信息。通过使用命令"display ospf lsdb",可以查询并显示当前路由器的LSDB内容。这个命令可以提供详细的链路状态信息,包括链路类型、链路状态类型、链路ID、链路数据等。\[1\] 通过查询OSPF LSDB,可以了解到当前网络中的所有OSPF路由器、它们之间的邻居关系、链路状态类型(如网络链接、点到点链接等)、链路ID、链路数据等信息。这些信息对于网络管理员来说非常重要,可以帮助他们进行网络故障排查、优化网络拓扑、调整路由策略等工作。\[1\] 总结来说,OSPF LSDB是OSPF协议中的链路状态数据库,存储了所有OSPF路由器收集到的链路状态信息。通过查询OSPF LSDB,可以获取到网络拓扑信息、邻居关系、路由信息等。\[1\] #### 引用[.reference_title] - *1* [计算机网络基础---ospf---vlan](https://blog.csdn.net/Dream_weiwei/article/details/126414925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [OSPF扩展--网络类型、重发布](https://blog.csdn.net/qq_45124553/article/details/97834545)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

混子不当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值