文章目录

  • 前言
  • 一、OSPF基础
  • OSPF的LSA类型
  • 类型 1 (Router Link)
  • 类型 2 (Network Link)
  • 类型 3 (Summary Link)
  • 类型 4 (ASBR Summary Link)
  • 类型 5 (External Link)
  • 类型 7 (NSSA Link)
  • 二、OSPF建立邻居的过程
  • 1.建立邻居期间的状态
  • 2.建立邻居的过程
  • 3.厂商配置
  • **OSPF的基本配置**
  • OSPF的DR选举优先级配置
  • 三、OSPF的区域类型



前言

开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。
目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。


提示:以下是本篇文章正文内容,下面案例可供参考

一、OSPF基础

OSPF协议具有以下特点:

OSPF把自治系统AS(Autonomous System)划分成逻辑意义上的一个或多个区域;

OSPF通过LSA(Link State Advertisement)的形式发布路由;

OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;

OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。

OSPF的五种数据包:
①Hello:周期性发送,用来发现和维持OSPF邻居关系。
(建立邻居关系的报文)
②DBD:检查路由器的数据库之间是否同步,描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。
数据库描述数据包 使用隐式确认,分为两种:
1.主从选举DBD
2. 发送LSA头部摘要信息(LSA目录)
③ LSR:向另外一台设备请求特定的链路状态(链路状态请求),用于向对方请求所需的LSA。
注:设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。
④ LSU:发送链路状态信息(链路状态更新,携带各种LSA),用于向对方发送其所需要的LSA。
⑤ LSACK:确认多段的发送信息(链路状态确认),用来对收到的LSA进行确认。

OSPF的LSA类型

OSPF由于有着多种区域类型,多种网络类型,多种链路类型,多种路由器身份,所以LSA(Link-State Advertisements)也是多样的。在详细讲解LSA之前,需要重点说明,只有同一个区域内的LSA,才是精确的,区域外的LSA,并不一定包含所有必备的信息,因此,所有LSA知识信息,并不一定可以套用到每一类LSA。

OSPF中共有11类LSA,而在CCIE的要求中,只需要理解1、2、3、4、5、7共6类即可,这些LSA会因为区域类型,网络类型,链路类型,路由器身份的不同而不同,以下是详细介绍:

类型 1 (Router Link)

类型1的LSA是任何一台OSPF路由器都会产生的,每一台OSPF路由器的每一个OSPF接口都会有自己的链路状态,但是每台OSPF路由器只能产生一条类型1的LSA,即使有多个OSPF接口,也只有一条类型1的LSA,因为所有OSPF接口的链路状态是被打包成一条类型1的LSA发送的。
一个区域正是由于LSA 1的存在,才有精确的路由表,一个区域如果只有LSA 1,同样可以正常通信。LSA 1 只能在单个区域内传递,ABR不能将LSA 1转到发另外一个区域,并且没有任何权利修改LSA 1。

类型 2 (Network Link)

类型2的LSA只有在需要选举DR/BDR的网络类型中才会产生,并且只是DR产生,BDR没有权利产生,LSA 2与LSA 1没有任何关联,没有任何依存关系,是相互独立的。

类型 3 (Summary Link)

类型3的LSA就是将一个区域的LSA发向另一个区域时的汇总和简化,ABR其实就是将LSA 1汇总和简化,变成LSA 3后再发到另一个区域的,如果是详细完整的LSA 1,是绝不允许的,LSA 3是LSA 1的缩略版。

类型 4 (ASBR Summary Link)

对于外部路由,执行重分布的路由器ASBR在LSA中写上自己的Router-ID,然后传递到多个OSPF区域,所以会被多个ABR转发,而ABR在转发外部路由的LSA时,是没有权限修改LSA的Router-ID,这样一来,外部路由的Router-ID在所有OSPF路由器上都不会改变,永远是ASBR的Router-ID,最终造成的结果是只有与ASBR同在一个区域的路由器才能到达外部路由,因为只有与ASBR同在一个区域的路由器才知道如何到达ASBR的Router-ID,而其它区域的路由器对此却无能为力;为了能够让OSPF所有区域都能与外部路由连通,在ABR将外部路由从ASBR所在的区域转发至其它区域时,需要发送单独的LSA来告知如何到达ASBR的Router-ID,因为ABR将外部路由的LSA告诉了其它区域,是有义务让它们与外部路由可达的,所以额外发送了单独的LSA来告知如何到达ASBR的Router-ID;这个单独的LSA就是类型4的LSA,LSA 4是包含的ASBR 的Router-ID,只要不是ASBR所在的区域,都需要ABR发送LSA 4来告知如何去往ASBR。

类型 5 (External Link)

类型5的LSA就是外部路由重分布进OSPF时产生的,并且是由ASBR产生的,LSA中包含ASBR的Router-ID,任何路由器都不允许更改该Router-ID,LSA 5中还包含Forward Address,对于LSA 5 的Metric值计算与选路规则也有所不同,详细信息请见OSPF外部路由部分。

类型 7 (NSSA Link)

因为NSSA区域可以将外部路由重分布进OSPF进程,而NSSA不是一般的常规区域,所以在NSSA将外部路由重分布进OSPF时,路由信息使用类型7来表示,LSA 7由NSSA区域的ASBR产生,LSA 7也只能在NSSA区域内传递,如果要传递到NSSA之外的其它区域,需要同时连接NSSA与其它区域的ABR将LSA 7 转变成LSA 5后再转发。

OSPF的基本配置是什么 ospf基础配置_网络协议

这里可以参考OSPF中不同区域的LSA情况

OSPF的基本配置是什么 ospf基础配置_web安全_02

二、OSPF建立邻居的过程

1.建立邻居期间的状态

OSPF协议路由的计算过程可简单描述如下:

路由器从启动OSPF进程,到根据链路状态数据库计算出路由表,同样需要经历一系列的启动过程,总共有8种可能的启动过程,但并不是一定会经历这8个过程,具体过程如下:
Down → Attempt → Init → Two-way → Exstart → Exchange → Loading → Full

1.Down状态:建立邻居的第一步就是down,指的是我没有给邻居发送任何报文,也没有收到邻居给我发任何报文

2.init–初始化状态:收到Hello分组

3.two-way状态:(在hello包中看到自己的Router-ID)当接收到来自对方的Hello报文,并且报文中的active neighbor字段中内容是自己的话,那么就为two-way状态;象征着邻居关系建立成功

4.ex-start状态:(确定了主从角色)双方开始互相发送DBD报文;并且依靠DBD报文来选举出主从关系(RID)

5.ex-change状态:(LSDB摘要)发送DBD报文,来确认将要同步的链路状态数据信息

6.loading状态(交换LSU和LSR用来完善LSDB信息)发送LSR报文,索取缺失的链路状态数据信息,做为从会发送LSU,做为主会发送从路由器缺失的条目,并且还会发送LSACK来确认接收到信息

7.full状态:所有设备的链路状态数据库将保持一致;并且会定期发送Hello;形成邻接关系

8.attempt:能够接收到对方发送的OSPF相关报文;但是自身无法回复任何信息(双方OSPF工作模式不匹配)

2.建立邻居的过程

建立邻接关系,过程如下:

  1. 本端设备通过接口向外发送Hello报文与对端设备建立邻居关系。
  2. 两端设备进行主/从关系协商和DD报文交换。
  3. 两端设备通过更新LSA完成链路数据库LSDB的同步。
  4. 此时,邻接关系建立成功。
    路由计算方面OSPF采用SPF(Shortest Path First)算法计算路由,可以达到路由快速收敛的目的。

3.厂商配置

OSPF的基本配置

华为厂商(举例):
[Huawei]ospf 110
[Huawei-ospf-1] area 0
[Huawei-ospf-1] router id 3.3.3.3
[Huawei-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255

思科厂商(举例):
Router(config)#router ospf 110
Router(config-router)#router-id 1.1.1.1
Router(config-router)#network 192.168.1.0 0.0.0.255 area 0

OSPF的DR选举优先级配置

华为
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ospf dr-priority 100
在各路由器的用户视图下,同时执行命令reset ospf 1 process,以重启OSPF进程

思科
Router(config)#interface ethernet 0/1
Router(config-if)#ip ospf priority 100
Router#clear ip ospf process(清除后进程进行重新选举DR和BDR)
Reset ALL OSPF processes? [no]: y

当优先级相同时,router-id高的为DR。若DR、BDR已经选择完毕,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR。

三、OSPF的区域类型

OSPF的基本配置是什么 ospf基础配置_OSPF的基本配置是什么_03

1.末梢区域-Stub area

如果启用该特殊区域;那么会过滤掉4类和5类LSA,并且ABR强制下发默认路由

R2(config-router)#area 1 stub

普通区域想要访问外部路由必须经过ABR(ABR向域内发送了一条指向自己的默认路由) 通常配置在ABR 普通区域通过默认路由访问外部条目(对不要的路由条目进行过滤) 用于过滤本区域内部不需要的路由,不接受自治系统外部信息,同时也拒绝4类LSA、5类LSA

OSPF的基本配置是什么 ospf基础配置_网络_04

2.完全末梢区域-totally Stub area

如果启用该特殊区域;那么会过滤掉4类和5类LSA以及3类LSA,并且ABR强制下发默认路由
R1(config-router)#area 2 stub no-summary
只需在ABR上配置完全末节区域,非零区域中的路由器配置末节区域即可。

3.非完全末梢区域-not so Stubby area

7类LSA:就是5类LSA;因为区域比较特殊,该区域是末梢区域,所以区域内不能存在5类LSA 如果启用该特殊区域;那么会过滤掉4类和5类LSA,并且ASBR会发送7类LSA(由5类转换得到);该区域边界的ABR会接收到7类LSA并且转换成5类LSA发给骨干区域
R2(config-router)#area 1 nssa

4.完全非完全末梢区域-totally not so Stubby area

如果启用该特殊区域;那么会过滤掉4类和5类LSA以及3类LSA,并且ASBR会发送7类LSA(由5类转换得到);该区域边界的ABR会接收到7类LSA并且转换成5类LSA发给骨干区域还会强制下发默认路由
R2(config-router)#area 1 nssa no-summary