OSPF基本原理、OSPF单区域、多区域与特殊区域

目录

OSPF基本原理

OSPF协议概述

OSPF工作原理

OPSF的报文类型

OSPF单区域

OSPF多区域

特殊区域

Stub区域(末梢区域)

Totally stub(完全末梢区域)

NSSA区域 (not so stub area  -  不那么末梢的区域)

Totally NSSA(完全不那么末梢的区域)

预告:


OSPF基本原理

背景:随着企业的发展网络的规模越来越大,公司内的网段越来越多,如果想要实现批次之间的互通,就得依靠大量的路由器和路由条目,工作量庞大并且随着网络的扩展,后期管理难度增大。

不同网段互通,需要在每个路由器上配置新增加的网段,如果想删除某个网段,也需要在所有路由器上进行删除,工作量庞大,导致后期网络管理的不易。

解决方案:在路由器之间运行动态路由协议,让路由器之间自动的学习和分享彼此的路由表信息,每个路由器都独立的计算出一个去往目标网段的最好路由

动态路由协议的特点:

  • 减少后期网路管理任务,避免人为的配置错误
  • 在设备之间传输路由,会占用少量的网络宽带

动态路由协议的类型:

  • 内部网关协议(IGP):在同一公司内部运行的路由协议,如RIP、ISIS、OSPF
  • 外部网关协议(EGP):主要应用在大型规模的网络之间,BGP

OSPF协议概述

OSPF协议(open shortest path first),开放式最短路径优先协议,该协议的目标是以最快的速度,计算一个去往目标网络,最短的,无环的路径

  • OSPF协议属于OSI模型第三层,属于公有标准协议
  • OSPF的数据包,包含在IP头部后面,协议号为89
  • OSPF支持企业网络的层次化设计,将网络分为2层

OSPF工作原理

  • 建立邻居表:包含的是与自己建立邻居关系的OSPF路由器
  • 同步数据库:包含的都是链路状态信息(LSA: link state advertisement - 链路状态通告)
  • 计算路由表,每个路由器根据自己数据库中的链路状态信息,计算OSPF的路由表

OPSF的报文类型

OSPF报文类型 描述

Hello

用于发现、建立、维护和拆除OSPF邻居;
数据库描述报文(DD) 用于发送OSPF数据库条目的简要信息、高效、稳定的时下你数据库同步
链路状态请求报文(LSU) 用于请求自己数据库中没有的链路状态通告信息(LSA)
链路状态更新报文(LSU) 用于回应LSR报文,其中包含的是详细的链路状态通告(LSA)
链路状态确认报文(LSAck) 用于对LSR和LSU报文确认,实现LSR和LSU报文的可靠传输

OSPF单区域

 如图配置网络

在路由器上启用OSPF协议

@R1
[R1]ospf 
[R1-ospf-1]area 0 
[R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255


@R2
[R2]ospf 2
[R2-ospf-2]area 0 
[R2-ospf-2-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-2-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[R2-ospf-2-area-0.0.0.0]network 192.168.2.0  0.0.0.255
[R2-ospf-2-area-0.0.0.0]quit 

@R3
[R3]ospf 3
[R3-ospf-3]area 0 
[R3-ospf-3-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R3-ospf-3-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[R3-ospf-3-area-0.0.0.0]quit 

经过上面的配置,网络中的主机就可以互通

查看邻居表

[R2]dis ospf peer brief 

	 OSPF Process 2 with Router ID 192.168.2.254
		  Peer Statistic Information
 ----------------------------------------------------------------------------
 Area Id          Interface                        Neighbor id      State    
 0.0.0.0          GigabitEthernet0/0/1             192.168.1.254    Full        
 0.0.0.0          GigabitEthernet0/0/0             192.168.3.254    Full        
 ----------------------------------------------------------------------------
[R2]

参数解释:

  • OSPF Process 2:进程号,如果不写,默认是1,取值范围为1-65535,
    • 作用:在路由器本地区分不同的OSPF协议,同一个路由器上,不同进程的OSPF协议是互相隔离,不能互通。
  • Router-ID:OSPF为区分不同的路由器,为每个OSPF路由器取得一个名字,确定Router-ID的方式有两种
    • 手动指定:OSPF { 进程号 } router-id 1.1.1.1
    • 自动选举:首先选择IP地址大的逻辑端口的IP地址,其次选择IP地址大的那个物理端口的IP地址。
  • Area ID:区域号,在OSPF网络中,一定需要用到区域号,OSPF协议通过区域号对网络进行分层,区域号取值空间为0-4294967295,但是分为两种类型:骨干区域,即0区域,非骨干区域,即非0区域。并且所有的非骨干区域,必须与骨干区域 “直接相连” 。
  • Neighbor  id,表示的是邻居设备的router-id
  • State,表示的是邻居的状态,最终完美状态是FULL
    • init  初始化状态
    • two-way 双向通信状态
    • exstart   交换初始化状态
    • exchange 交换
    • loading  加载
    • full  完美状态

单区域总结

  • 企业内网,如果仅仅配置一个区域,那必须是OSPF区域0,主干区域
  • OSPF进程号的作用是:在同一个额路由器上区分不同的OSPF协议,不同路由器上的进程号可以相同也可以不相同。
  • OSPF的Router-ID用于标识不同的路由器们必须确保全网唯一
  • OSPF Ruter-id最大特点:稳定。一旦确定,就无法修改,除非重启OSPF协议或者重启路由器
  • OSPF邻居表中的状态必须是Full,才能互相学习对方的路由

OSPF多区域

企业内网规模越来越大,网络的稳定性,扩展性以及管理工作,受到越来越大的考验,为了增强网络的稳定性以及扩展性,简化网络管理和故障排查工作,引入OSPF多区域

路由器的类型:

  • 骨干区域路由器:路由器的所有接口,都属于骨干区域的路由器
  • 非骨干区域路由器:路由器的所有借口,都属于非骨干区域
  • 区域边界路由器:同时连接着骨干区域和非骨干区域的路由去
  • 自治系统边界路由器:具有产生外部路由能力的路由器

OSPF区域的类型:

  • 骨干区域:area 0
  • 非骨干区域:
    • 普通区域
    • 特殊区域:Stub区域、完全Stub区域、NSSA区域、完全NSSA区域

所有的非骨干区域,必须与骨干区域直接相连,否则区域之间无法互通


案例1:

  1. 如图连接并配置设备接口IP地址
  2. 将R1和R2属于设置为区域12,R5、R6设置为区域56
  3. 将区域R2/3/4/5设置为区域0,最终实现PC1和PC2的互通

配置各个路由器接口和PC的ip地址

配置OSPF R1 R2 R3 R4   R5  R6

R1:

[AR1]ospf 1 router-id 1.1.1.1
[AR1-ospf-1]area 12	
[AR1-ospf-1]silent-interface g0/0/1     //静默接口  不发送也不接收ospf报文
[AR1-ospf-1-area-0.0.0.12]network 192.168.1.0 0.0.0.255  //将接口宣告进ospf 1 area 12
[AR1-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255

R2:
[AR2]ospf 1 router-id 2.2.2.2
[AR2-ospf-1]area  12	
[AR2-ospf-1-area-0.0.0.12]network 192.168.12.0 0.0.0.255
[AR2-ospf-1]area 0              //将接口宣告进ospf 1 area 0  骨干区域
[AR2-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255

R3:
[AR3]ospf 1 router-id 3.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]network 192.168.34.0 0.0.0.255

R4:
[AR4]ospf 1 router-id 4.4.4.4
[AR4-ospf-1]area 0
[AR4-ospf-1-area-0.0.0.0]network  192.168.34.0 0.0.0.255
[AR4-ospf-1-area-0.0.0.0]network  192.168.45.0 0.0.0.255

R5:
[AR5]ospf 1 router-id 5.5.5.5
[AR5-ospf-1]area 0	
[AR5-ospf-1-area-0.0.0.0]network 192.168.45.0 0.0.0.255
[AR5-ospf-1-area-0.0.0.0]q
[AR5-ospf-1]area 56
[AR5-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255

R6:
[AR6]ospf 1 router-id 6.6.6.6
[AR6-ospf-1]silent-interface g0/0/01
[AR6-ospf-1]area 56
[AR6-ospf-1-area-0.0.0.56]network 192.168.56.0 0.0.0.255
[AR6-ospf-1-area-0.0.0.56]network 192.168.2.0 0.0.0.255
[AR6-ospf-1-area-0.0.0.56]

验证与测试

  • 多区域的OSPF,最关键的是ABR的配置,实现区域之间互通
  • 在ABR上配置的时候,必须出现“区域0”的相关配置.
  • 多区域的OSPF网络,非骨干区域必须和骨干区域直接相连
  • 路由器之间的直连网段,必须通过network,命令宣告进OSPF

OSPF常用的查询命令

display ospf peer brief          -> 查看邻居表
display ospf brief               -> 查看设备角色
display ip routing-table         -> 查看路由表
display ip routing-table protocol ospf          -> 查看OSPF路由
display ip interface brief                      -> 查看接口IP地址信息
reset ospf process                              -> 重启 OSPF 进程
ospf {进程号} router-id {x.x.x.x}               ->配置router-id
import-route {类型}                             -> 导入OSPF外部路由
default-route-advertise                         ->产生OSPF默认路由

特殊区域

背景:

 在上述的拓扑中,我们为了确保企业内网和外部网络互通,我们在企业的边界设备上(R6)通过“Import-route”这种方式宣告了外网路由进入到企业内网,从而实现了互通。

但是,我们发现:通过import-route 方式宣告的路由,被称之为OSPF外部路由。并且这种外部路由(O_ASE),可以在整个 OSPF 网络中任意的传输。ospf计算外部路由是通过External LSA计算出来的

那么,一旦这种外部路由,非常的不稳定。就会导致全网的OSPF路由器都会不稳定。但是,在企业内网通常又会存在很多重要的区域,希望不要受到不稳定的链路的影响(即保护特定的区域),即,所谓的特殊区域,指的就是那些不要外部路由的区域

R7:
[AR7]ip route-static 0.0.0.0 0 192.168.67.6
[AR7]

R6:
[AR6]ip route-static 192.168.3.0 24 192.168.67.7
[AR6-ospf-1]import-route static 


查看R1的OSPF路由表
<AR1>dis ip routing-table protocol ospf  
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 6        Routes : 6        

OSPF routing table status : <Active>
         Destinations : 6        Routes : 6

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

   192.168.2.0/24  OSPF     10   6           D   192.168.12.2    GigabitEthernet0/0/0
   192.168.3.0/24  O_ASE    150  1           D   192.168.12.2    GigabitEthernet0/0/0
   192.168.23.0/24  OSPF    10   2           D   192.168.12.2    GigabitEthernet0/0/0
   192.168.34.0/24  OSPF    10   3           D   192.168.12.2    GigabitEthernet0/0/0
   192.168.45.0/24  OSPF    10   4           D   192.168.12.2    GigabitEthernet0/0/0
   192.168.56.0/24  OSPF    10   5           D   192.168.12.2    GigabitEthernet0/0/0
OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

Stub区域(末梢区域)

  • 场景:如果想保护一个区域,不要收到外部路由的影响,就可以配置为stub区域
  • 配置原则:整个区域中的所有路由器,都必须使用下面的相同的命令

将区域12配置为 stub 区域。

[AR2]ospf
[AR2-ospf-1]area 12
[AR2-ospf-1-area-0.0.0.12]stub 

[AR1]ospf
[AR1-ospf-1]area 12
[AR1-ospf-1-area-0.0.0.12]stub
--------------------------------------------------
没有配置之前,我们可以在区域12的R1上看到 O_ASE的路由
在配置之后,我们在区域12的R1上就再也看不到 O_ASE的路由
-----------------------------------------------

display ospf brief ->查看某个特定的区域的类型

Area: 0.0.0.12  Area Flag:stub

Totally stub(完全末梢区域)

  • 场景:保护一个区域不要受到外部链路影响,同时也不要受到其他区域的链路的影响。
  • 配置
步骤:
1.配置为stub区域
2.配置该区域的ABR,不要发送区域之间的路由

1:
[AR2]ospf
[AR2-ospf-1]area 12
[AR2-ospf-1-area-0.0.0.12]stub 

[AR1]ospf
[AR1-ospf-1]area 12
[AR1-ospf-1-area-0.0.0.12]stub
[AR2-ospf-1-area-0.0.0.12]stub no-summary 

此时,在区域12中的R1上没有外部路由,有没有其他区域的路由。只有区域内的路由
以及ABR自动产生的1个默认路由,指导数据包转发

[AR1]dis ip routing-table protocol ospf

Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 1        Routes : 1        

OSPF routing table status : <Active>
         Destinations : 1        Routes : 1

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   OSPF    10   2           D   192.168.12.2    GigabitEthernet0/0/0

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0
[AR1]
  •  Stub区域,不会受到外部链路的不稳定的影响
  • ABR会自动产生一个默认路由,确保该区域与外部链路及其他区域互通
  • 在Stub区域基础上,更加优化的方案是:ToTally Stub区域
  • 在Totally Stub 区域中的设备,不会受到外部链路及其他区域的链路的影响,确保该区域更加稳定和安全

NSSA区域 (not so stub area  -  不那么末梢的区域)

  • 场景:想保护一个区域不受到外部链路的影响,自己本区域还能引入外部路由。
  • 既保持了Stub区域的特点,该类型的区域内的设备,还可以引入外部路由,是NSSA  LSA的形式

 将区域12配置为NSSA区域,在区域12上配置

R2:
[R2-ospf-1]area 12
[R2-ospf-1-area-0.0.0.12]undo stub   撤销stub
[R2-ospf-1-area-0.0.0.12]nssa 

R1:
[R1-ospf-1]import-route direct 
[R1-ospf-1]area 12
[R1-ospf-1-area-0.0.0.12]undo stub
[R1-ospf-1-area-0.0.0.12]nssa 
[R1-ospf-1]dis ip routing-table protocol ospf 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 6        Routes : 6        

OSPF routing table status : <Active>
         Destinations : 6        Routes : 6

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   O_NSSA  150  1           D   192.168.12.2    GigabitEthernet
0/0/0
    192.168.2.0/24  OSPF    10   6           D   192.168.12.2    GigabitEthernet
0/0/0
   192.168.23.0/24  OSPF    10   2           D   192.168.12.2    GigabitEthernet
0/0/0
   192.168.34.0/24  OSPF    10   3           D   192.168.12.2    GigabitEthernet
0/0/0
   192.168.45.0/24  OSPF    10   4           D   192.168.12.2    GigabitEthernet
0/0/0
   192.168.56.0/24  OSPF    10   5           D   192.168.12.2    GigabitEthernet
0/0/0

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

在NSSA区域查看R1的路由表,此时已经不存在区域56引入的外部路由(192.168.3.0的路由条目)

在其他区域的路由器上查看路由

<R5>dis ip routing-table protocol ospf 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 6        Routes : 6        

OSPF routing table status : <Active>
         Destinations : 6        Routes : 6

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

    192.168.1.0/24  OSPF    10   5           D   192.168.45.4    GigabitEthernet
0/0/1
    192.168.2.0/24  OSPF    10   2           D   192.168.56.6    GigabitEthernet
0/0/0
   192.168.12.0/24  OSPF    10   4           D   192.168.45.4    GigabitEthernet
0/0/1
   192.168.23.0/24  OSPF    10   3           D   192.168.45.4    GigabitEthernet
0/0/1
   192.168.34.0/24  OSPF    10   2           D   192.168.45.4    GigabitEthernet
0/0/1
  192.168.110.0/24  O_ASE   150  1           D   192.168.45.4    GigabitEthernet
0/0/1

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

<R5>
  • NSSA区域的特点:
  • 不接收其他区域的设备产生的外部路由,但是本区域设备自己可以产生外部路由
  • ABR会自动产生一个默认路由,确保该区域可以与外部链路互通
  • 该区域依然会受到其他区域链路不稳定所造成的影响

Totally NSSA(完全不那么末梢的区域)

  • 在NSSA区域的ABR上配置,确保该区域上不包含“区域之间的链路”,从而避免该区域受到其它区域的影响
[R2-ospf-1]area 12
[R2-ospf-1-area-0.0.0.12]nssa no-summary

 查看totally nssa区域路由表

<R1>dis ip routing-table protocol ospf 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : OSPF
         Destinations : 1        Routes : 1        

OSPF routing table status : <Active>
         Destinations : 1        Routes : 1

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        0.0.0.0/0   OSPF    10   2           D   192.168.12.2    GigabitEthernet
0/0/0

OSPF routing table status : <Inactive>
         Destinations : 0        Routes : 0

此时在R1上只存在直连路由和一条缺省缺省路由。

此时,在区域1中的R1/R2上没有外部路由,也没有其他区域的路由。

只有区域内的路由 以及 ABR自动产生的1个默认路由 同时, 还有自己的区域路由器(R1)引入的外部路由。

此时,R1/R2的路由器上:

  • 包含了本区域的路由-OSPF,比如 192.168.12.0/24 或者 192.168.23.0/24 , OSPF
  • 包含了R1产生的外部路由 - 比如 192.168.110.0/24 , 类型是 O_NSSA
  • 包含了一个 ABR 产生的 OSPF 默认路由 : 0.0.0.0/0 ,类型是 OSPF
  • 不包含其他区域的OSPF路由 - 比如 192.168.34.0/24
  • 也不包含其他区域产生的OSPF外部路由 - 比如 0.0.0.0/0 类型是 O_ASE

预告:

下一篇来说一下OSPF的报文、数据库和一些理论

猜你喜欢

转载自blog.csdn.net/weixin_45059947/article/details/127878483