【OSPF详解(PC打开更为直观)】

【OSPF详解】

文章目录

一、0SPF知识点

0SPF知识点 : 1.什么是OSPF 2.四种网络类型 3.四种链接类型 4.五种报文 5.OSPF的7种状态机制 6.邻居邻接的建立过程 7.OSPF邻居建不起来的原因 8.OSPF使用两个多播地址 9.OSPF进程号 10.OSPF链路状态序列号 11.LSA的新旧 12.常用的6种LSA以及区域分布 13.OSPF选路规则 14.避免域间路由环路 15.计时器 16.四大特殊区域 17.DR BDR的选举 18.ABR ASBR 19.收敛优先级 20.0SPF的三大表项 21.Silent-Interface 22.路由聚合 23.OSPF认证 24.Router ID 25.虚连接 26.外部路由Type1和Type2 27.开销

二、OSPF的配置实验

28.拓扑图 29.配置步骤

1.什么是OSPF

开放式最短路径优先,链路状态路由协议,单一AS内,IP协议号89。

2.四种网络类型

广播类型:Hello发送时间间隔10s,存活40s,组播发送Hello、LSU、LSACK,单播发送DD、LSR;选举DR和BDR
P2P类型:Hello发送时间间隔10s,存活40s,以组播发送所有OSPF报文;不选举DR和BDR
P2MP类型:Hello发送时间间隔30s,存活120s,组播Hello,单播其他;不选举DR和BDR
NBMA 类型:Hello发送时间间隔30s,存活120s,以单播发送所有OSPF报文。选举DR和BDR

3.四种链接类型

Point to Point link 描述链路是点到点。拓扑信息
Stub network link 描述网段信息,路由信息
Trans network link 描述DR、BDR,拓扑信息
Virtual-link link 描述虚链接,拓扑信息

4.五种报文

报文用于双方认识并传递信息。
Hello:发现邻居、建立邻居、维护(Keepalive)邻居,包括定时器的数值;
DD:交换链路状态数据库LSDB的摘要,LSDB每30min同步一次;
LSR:请求发送特定的链路状态信息;
LSU:发性详细的链路状态信息;
LSack:确认报文。

5.OSPF的7种状态机制

Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中。
2-way:在此状态下,路由器发现自己的Router ID存在于收到的Hello报文的邻居列表中。
ExStart:邻居状态变成此状态以后,路由器开始向邻居发送DD报文。在此状态下发送的DD报文不包含链路状态描述。
Exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。
Loading:在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。
Full:双方交互完毕。
OSPF主从关系的选举是一种可靠的更新机制,主发给从,从要回复一个相同的序列号给主进行确认。主从关系的选举只比较Router ID。

6.邻居邻接的建立过程

OSPF详细建立过程

7.OSPF邻居建不起来的原因

(1)hello间隔和dead 间隔不同;
(2)接口下OSPF网络类型不匹配;
(3)区域号码不一致;
(4)特殊区域(如stub,nssa等)区域类型不匹配;
(5)认证类型或密码不一致;
(6)路由器 router-id 相同;
(7)链路上的 MTU 不匹配;
(8)在broadcast链路上的子网掩码不匹配;
(9)在MA网络中,没有DR;
(10)接口设置为 silent-interface(沉默接口)。
OSPF几个需要注意的地方:
(1)当hello时间不同时是永远起不来邻居的;
(2)当hello时间不同时会停留在INIT状态;
(3)如果路由的优先级都改成了0,会停留在TWO-WAY状态;
(4)当MTU值不同时会停留在EXSTART或EXCHANGE状态。

8.OSPF 使用两个多播地址

224.0.0.5—All OSPF Routers.
224.0.0.6—All DR Routers(DR+BDR)
224.0.0.5指运行OSPF的路由器、交换机都接收所有224.0.0.5的组播数据包,224.0.0.6 指一个多路访问网络中DR和BDR的组播接收地址。MA网络路由器发向DR.BDR 的为224.0.0.6,DR、BDR回应的是 224.0.0.5。

9.OSPF 进程号

OSPF Process ID只是本地有效,用来在本地区分不同的OSPF进程 。虽然OSPF Process ID本地有效,但是我们建议,除非有特殊需求,否则全网使用一致的OSPF进程ID,这将方便网络管理和维护 。不同的进程之间相互独立,若需交互则需要是引入。

10.OSPF 链路状态序列号

最大寿命定时器、刷新定时器和链路状态序列号一起确保数据库只包含最新的链路状态记录。
(1)LSDB中每一个LSA都有一个序列号,序列号越大,LSA 越新;
(2)序列号范围从0x80000001-0x7FFFFFFF;
(3)OSPF每30分钟flood一次LSA来维持LSDB同步,每次flood序列号加 1;
(4)当一个路由器遇到同一个LSA的两个实例时,它必须能够确定哪一个是最新的LSA。
(5)当一条LSA的序列号到达最大序列号时,始发路由器会发送一个生存时间为最大值的LSA,让其它的路由器从LSDB中清除 这条LSA,当其它路由器确认后,再发送一个初始序列号的LSA。注意:只有始发路由器才可以提前使这条LSA老化,LSA条目的老化时间默认是一小时(0-3600S)

11.LSA的新旧

序列号>最大无符号校验和>老化时间(多于15min越小越新 ,小于15越大越新)泛洪没有跳数限制(30min泛洪一次),都无法判定则认为是相同LSA。泛洪:描述自己在连接口的状态,开销与邻居路由器的关系等。

12.常用的6种LSA以及区域分布

1、2、3、4、5、7。 LSA三要素:ADV Router 产生者路由器、link ID 链路标识符、 LSA链接类型。

OSPF中6种常用的LSA:

OSPF中6种常用的LSA

OSPF中6种常用的LSA在各个区域的分布:

OSPF中6种常用的LSA在各个区域的分布

13.OSPF选路规则

区域内的 > 区域间的 > Type 1 > Type 2( Type 1 h和Type 2后文有备注)

14.避免域间路由环路

为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则。
(1)OSPF划分了骨干区域和非骨干区域,所有非骨干区域均直接和骨干区域相连且骨干区域只有一个,固定位area 0。非骨干区域 之间的通信都要通过骨干区域中转。
(2) OSPF规定从骨干区域传来的三类LSA不再传回骨干区域。
(3)ABR从非骨干区域收到的3类L SA不能用于区域间路由的计算。

15.计时器

(1) int g0/0/0
ospf timer poll 130 
缺省情况下,时间间隔为120秒。

用来配置NBMA网络上发送轮询Hello报文的时间间隔。当邻居失效后,将按ospf timer poll设置的轮询时间间隔定期地发送Hello报文。 轮询时间间隔值至少应为Hello报文时间间隔的4倍。

(2) int g0/0/0
ospf timer retransmit 6
缺省情况下,时间间隔为5秒。

用来设置接口重传LSA的时间间隔。当一台设备向它的邻居发送一条链LSA后,需要等到对方的确认报文。若在该重传LSA的时间间隔内未收到对方的确认报文,就会重传这条LSA。相邻设备重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。

(3) int g0/0/0
ospf trans-delay 2
 缺省情况下,传输延迟时间为1秒。

用来设置接口上发送LSA过程中的传输延迟时间。LSA在本设备的链LSDB中会随时间老化(每秒钟加1),但在网络的传输过程中却不会,所以有必要在发送之前在LSA的老化时间上增加本命令所设置的一段时间。此配置对低速率的网络尤其重要。

16.四大特殊区域

(1)Stub区域
Stub区域的ABR不向Stub区域内传播它接收到的AS外部路由,Stub区域中路由器的LSDB、路由表规模会大大减小。为保证Stub区域能够到达AS外部,Stub区域的ABR将生成一条缺省3类LSA路由 。因此Stub区域仅存在1、2、3、缺省3类(ABR产生)。
配置Stub区域时需要注意下列几点:
1)骨干区域不能被配置为Stub区域;
2)Stub区域中的所有路由器都必须将该区域配置为Stub;
3)Stub区域内不能引入也不接收AS外部路由;
4)虚连接不能穿越Stub区域。
(2)Totally Stub区域
Totally Stub区域既不允许AS外部路由在本区域内传播,也不允许区域间路由在本区域内传播。仅有1、2和缺省3类(ABR产生)。
Totally Stub区域内的路由器通过本区域ABR下发的缺省3类路由到达其他区域以及AS外部。
配置Totally Stub区域时需要注意:
与Stub区域配置的区别在于,在ABR上需要追加no-summary关键字。
(3)NSSA区域
1)NSSA区域和Stub区域有许多相似的地方。两者的差别在于,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中, 同时又不会学习来自OSPF网络其它区域的外部路由。七类LSA是为了支持NSSA区域而新增的一种LSA类型,用于描述NSSA区域引入的外部路由信息。七类LSA由NSSA区域的ASBR产生,其扩散范围仅限于ASBR所在的NSSA区域。
2 )NSSA区域存在1、2、3、7(ASBR产生)、缺省7(ABR产生)。NSSA区域的ABR会将7类LSA转化为5类LSA,并将该LSA注入到骨干区域,从而在整个OSPF域内泛洪。
3)七类LSA转换为五类LSA:
NSSA区域的ABR收到7类LSA时,会有选择地将其转换为5类LSA,以便将外部路由信息通告到OSPF网络的其它区域。NSSA区域有多个ABR时,进行7类LSA与5类LSA转换的是Router ID最大的ABR。
NSSA区域的ABR会阻挡其他区域引入的外部路由引入本区域,即NSSA区域不会存在4类及5类LSA,为了让NSSA区域内的路由器能够通过骨干区域到达AS外、BR会自动向该区域注入一条缺省7类路由。
(4)Totally NSSA区域
Totally NSSA区域的ABR会阻挡3类LSA进入该区域。Totally NSSA与NSSA区域的配置区别在于前者在ABR上需要追加no summary关键字。仅有1、2、缺省3(ABR产生)、7类。

17.DR BDR的选举

(1)先选举BDR,后有DR。因为DR和BDR的切换状态机是:当DR失效时BDR成为DR。如果先选举DR,再选举BDR,那么当选举BDR的过程中DR失效,此时网络中既没有DR也没有BDR,切换将无法进行,选举基于接口。
(2)优先级为0-255,默认为1。优先级>Router ID ,0不参与选举,越大越优且不抢占。
(3)接口UP后,发送Hello报文,同时进入到Waiting状态。在Waiting状态下会有一个WaitingTimer,该计时器的长度与DeadTimer一样。
默认值为40秒,用户不可自行调整。
(4)在WaitingTimer触发前,发送的Hello报文是没有DR和BDR字段的。在Waiting阶段,如果收到Hello报文中有DR和BDR,那么直接承认网络中的DR和BDR,而不会触发选举。直接离开Waiting状态,开始邻居同步。
(5)假设网络中已经存在一个DR和一个BDR,这时新加入网络中的路由器,不论它的Router ID或者DR优先级有多大,都会承认现网中已有的DR和BDR。
(6)当DR因为故障Down掉之后,BDR会继承DR的位置,剩下的优先级大于0的路由器会竞争成为新的BDR。
(7)只有当不同Router ID,或者配置不同DR优先级的路由器同时起来,在同一时刻进行DR选举才会应用DR选举规则产生DR。

18.ABR ASBR

ABR:区域边界路由器:其中有一个接口必须接入骨干区域,维护主干和非主干拓扑的路由选择表。
ASBR:只要有一台OSPF路由器引入外部路由信息,它就是ASBR。

19.收敛优先级

critical>high >mediam >low,我暂时没有深入的去了解,感兴趣的小伙伴可以查下资料实践实践哦。

20.OSPF的三大表项

先有OSPF邻居表、再有OSPF的LSDB、后OSPF路由表(只保存最优路径)

(1)OSPF邻居表:

OSPF邻居表

(2)OSPF的LSDB:

OSPF的LSDDB表

(3)OSPF路由表:

OSPF路由表

21.Silent-Interface

1.通过Silent-Interface的配置, 增强OSPF的组网适应能力,减少系统资源的消耗。[R1-0spf-1 ]silent-int G0/0/1
2.Silent-Interface有以下特性:
(1)Silent-Interface不会接收和发送OSPF报文。
(2)Silent- Interface的直连路由仍可以发布出去。

22.路由聚合

路由汇总又被称为路由聚合,即是将一 组前缀相同的路由汇聚成- 条路由,从而达到减小路由表规模以及优化设备资源利用率的目的,我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。
1.在ABR执行路由汇总:对区域间的路由执行路由汇总。
2.在ASBR执行路由汇总:对引入的外部路由执行路由汇总。

[R2]ospf
[R2-ospf-1]area 1
[R2-ospf-1-area-0.0.0.1abr-summary 192.168.0.0  255.255.0.0
[R2]aspf
[R2-ospf-1-area-0.0.0.1]asbr-summary 192.168.0.0  255.255.0.0

23.报文认证

OSPF支持报文认证功能,只有通过认证的OSPF报文才能被接收。路由器支持两种OSPF报文认证方式,当两种认证方式都存在时,优先使用接口认证方式。而两种认证又分为简单验证、MD5验证和Key chain认证。两边都要做,只做一边,邻居不能建立。
1.区域认证方式:一个OSPF区域中所有的路由器在该区域下的认证模式和口令必须一致。
2.接口认证方式:相邻路由器直连接口下的认证模式和口令必须一致。
(1)简单验证模式:明文传输,很容易被截获。
R2: 区域简单认证:

ospf
area 1
authentication-mode simple plain huawei
cipher 密文     plain  明文

(2)MD5 验证模式:密钥是经过MD5加密传输。

R2:链路MD5验证:
int g0/0/0
ospf authentication-mode md5 1 huawei 
MD5 验证模式,验证字标识符为1,密码为 huawei 

(3)key chain 验证模式:可以同时配置多个密钥,不同密钥可单独设置生效周期等。配置R1的key chain认证,在链路上调用。

R1:
keychain key mode periodic daily
key-id 1
algorithm md5
key-string huawei
send-time daily 08:00 to 18:00
receive-time daily 08:00 to 18:00
int g0/0/2
ospf authentication-mode keychain key 

24.Router ID

用于在自治系统中唯一标识一 台运行OSPF的路由器,它是一个32位的无符号整数。 选举规则:
(1)手动配置OSPF路由器的Router ID (建议手动配置)
(2)未手动配置,则使用Loopback接口中最大的IP地址作为Router ID
(3)未配置Loopback接口,则使用物理接口中最大的IP地址作为Router ID

25.虚连接

虚连接的作用及配置:
(1)OSPF要求骨干区域必须是连续的,但是并不要求物理上连续,可以使用虚连接使骨干区域在逻辑上连续。
(2)虚连接可以在任意两个ABR上建立,但是要求这两个ABR都有端口连接到一个相同的非骨干区域。
(3)两个ABR之间只能有一个区域,只能是普通区域。
(4)虚连接的创建使OSPF协议可以通过非骨干区域通信,违背了OSPF区域间的防环规则,在某些场景下会导致路由环路的产生,因此不建议部署OSPF虚连接。
(5)虚链路在建立初始会发送hello包用于建立虚链路OSPF邻居,但是一旦虚链路OSPF邻居建立成功,hello机制在虚链路上面不在发送。因此说明虚链路仅仅是一种临时解决方案,非常不稳定。通过虚链路学习到的LSA没有老化时间概念,同时每30分钟的LSA泛洪机制也不会再虚链路上面传递。

26.外部路由Type1和Type2

OSPF引入外部路由,共有两种类型:
( 1) Type1:外部路由的AS外部开销值被认为和AS内部开销值是同一数量级的,因此第一类外部路由的开销值为AS内部开销值(路由器到ASBR的开销)与AS外部开销值之和;这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。开销=AS内+外
(2) Type2:外部路由的AS外部开销值被认为远大于AS内部开销值,因此第二类外部路由的开销值只包含AS外部开销,忽略AS内部开销(默认为第二类),这类路由的可信度比较低。开销=AS外
默认情况下,OSPF外部路由采用的是第二类外部路由。

27.开销

OSPF基础术语----度量值
OSPF使用Cost 作为路由的度量值。每一 个激活了OSPF的接口都会维护一 个接口Cost值,缺省的接口Cost =100 Mbit/s ÷接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。OSPF以’累计cost为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和。OSPF不同接口因其带宽不同,有不同的Cost。在实际应用中,推荐根据接口带宽大小手动配置Cost值,而不是修改OSPF参考带(100 Mbit/s)

28.配置步骤

拓扑图:

拓扑图

第一步:给所有的路由器命名并为各端口配置IP,创建环回接口,以R9为例:

[R9]sysname R9
[R9]int g0/0/0
[R9-G0/0/0]ip add 192.168.19.9 24
[R9]int loopback 0
[R9-LoopBack0]ip add 9.9.9.9 24

第二步:配置成为OSSPF路由器,把不同的端口宣告进不同的区域。(在哪里宣告错了,在哪里undo) ,以R2为例:

[R2]ospf 1 router-id 2.2.2.2 
[R2-ospf-1]area 0 
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0 
[R2-ospf-1-area-0.0.0.0]network 192.168.12.2 0.0.0.0 
[R2-ospf-1-area-0.0.0.0]network 192.168.23.2 0.0.0.0 
[R2-ospf-1area 1 
[R2-ospf-1-area-0.0.0.1]network 192.168.27.2 0.0.0.0 
[R2-ospf-1area 3
[R2-ospf-1-area-0.0.0.3]network 192.168.24.2 0.0.0.0 
[R2-ospf-1area 4
[R2-ospf-1-area-0.0.0.4]network 192.168.25.2 0.0.0.0 

R2的S4/0/0接口为 PPP协议数据链路层,不需要MAC地址,点对点独享带宽。(与OSPF无关,可忽略)

[R2]int Serial4/0/0 
[R2-Serial4/0/0] link-protocol ppp
[R2-Serial4/0/0]ip address 192.168.23.2 255.255.255.0 
例:配置错误可undo
[R2-ospf-1-area-0.0.0.4]undo network 192.168.25.2 0.0.0.0 
[R9-G0/0/0]undo ip add 192.168.19.9 24

第三步:将区域5用虚连接与区域0合并(都进入区域4),在R3和R5之间建立。

虚连接

[R5]ospf router-id 5.5.5.5
[R5-ospf-1]area 4
[R5-ospf-1-area-0.0.0.4]vlink-peer 3.3.3.3
[R3]ospf router-id 3.3.3.3
[R5-ospf-1]area 4
[R5-ospf-1-area-0.0.0.4]vlink-peer 5.5.5.5

第四步:创建R1的loopback1,将其引入OSPF中。R1/ospf/import-route direct(环回就是直连)

(1)R1上创建loopback1:
[R1]int loopback 1
[R1-LoopBack1]ip add 100.0.0.1 24

R2上未引入直连时,ping不通100.0.0.1:

R2ping不通100.0.0.1

(2)在R1上引入直连后:
[R1-ospf-1] import-route direct
(3)所有OSPF路由器的路由表均存在100.0.0.0/24。(除特殊区域)

R2有100.0.0.0/24的路由条目,可ping通100.0.0.1:

R2ping通100.0.0.1

第五步:在R8与R11之间建立RIP,并在R8上进行双向引入。

[R11]rip
[R11-rip-1]version 2
[R11-rip-1]network 11.0.0.0
[R11-rip-1]network 192.168.118.0
[R8]rip
[R8-rip-1]version 2
[R8-rip-1]network 192.168.118.0

在R8上做RIP与OSPF双向引入:

[R8]ospf
[R8-ospf-1]import-route rip 
[R8]rip
[R8-rip-1]import-route ospf

在R8上双向引入后,在R4上查看,路由表有11.11.11.0/24和192.168.118.0/24网段。R4有R11的两个网段且ping通:

R4有R11的两个网段且ping通

R4上显示这两个网段为引入:

R4上显示这两个网段为引入

[R11路由表有引入的OSPF网段,比较多未截全:

R11路由表有引入的OSPF网段,比较多未截全

第六步:
(1)将area 1 先设置为末梢区域(全部路由器)。

[R7]ospf
[R7-ospf-1]area 1
[R7-ospf-1-area-0.0.0.1]stub

R7未设置stub时的区域1:

R7区域1未设置为stub区域

R2区域1未设置stub时的区域1:

R2区域1未设置为stub区域

R2设置stub时的区域1产生缺省3:

R2区域1设置stub时的区域1产生缺省3:

R7区域1设置stub时的区域1存在缺省3:

 R7区域1设置stub时的区域1存在缺省3

(2)再设置为完全末梢(只需要在ABR上)。

[R2-ospf-1-area-0.0.0.1]stub no-summary 

Area 1为totally NSSA区域,R2、R7只存在1、2缺省3类,且可以ping通外部:

R2为Totally stub

R7为Totally stub

第七步:
(1)将area 2 设置为NSSA区域(全部路由器)。

[R3-ospf-1-area-0.0.0.2]nssa 

R3区域2未设置为NSSA:

R3区域2未设置为NSSA

R8区域2未设置为NSSA:

R8区域2未设置为NSSA

R3区域2设置为NSSA,产生默认7:

R3区域2设置为NSSA,产生默认7

R8区域2设置为NSSA,存在默认7:

R8区域2设置为NSSA,存在默认7

检验:R4和R11互通:

R4ping通R11

R11ping通R4

(2)area 2设置完全NSSA区域(ABR/ASBR)。

[R3-ospf-1-area-0.0.0.2]nssa no-summary

R3产生缺省3:

R3产生缺省3

R8存在缺省3,可ping通OSPF内:

R8存在缺省3,可ping通OSPF内

R4存在11.11.11.0/24网段,但ping不通:

R4存在11.11.11.0/24网段

但R4ping不通R11

R3的G0/0/1接口ip可和11.11.11.0/24互通:
R3的G0/0/1接口ip可和11.11.11.0/24互通

R11只能ping通与R8所在同一区域的网段

小白出身,有错误的地方可以互相交流学习一下,有需要拓扑的同行者可以私信我哦。

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值