一、原理概述

开放式最短路径优先(Open Shortest Path First,OSPF)是一个内部网关协议(Interior Gateway Protocol,IGP),用于在单一自治系统(Autonomous System,AS)内决策路由。OSPF适合小型、中型、较大规模网络。OSPF采用Dijkstra的最短路径优先算法(Shortest Path Firs,SPF)计算最小生成树,确定最短路径。OSPF基于IP,协议号为89,采用组播方式交换OSPF包。OSPF的组播地址为224.0.0.5(全部OSPF路由器)和224.0.0.6(指定路由器)。OSPF使用链路状态广播(LSA)传送给某区域内的所有路由器。

基本概念

  1. AS:自治系统(AS)是指使用同一个内部路由协议的一组网络。Internet可以被分割成许多不同的自治系统 。每个AS由一长度为16位的编码标识,由Internet地址授权机构(IANA)负责管理分配。AS编号分为公用AS(编号范围1-64511)私有AS(编号范围64512-65535),公有AS编号需要向IANA申请
  2. IGP:内部网关协议(IGP)在同一个自治系统内交换路由信息。IGP的主要目的是发现和计算自治域内的路由信息。IGP使用的路由协议有RIP、OSPF、IS-IS、EIGRP、IGRP。
  3. EGP:外部网关协议(EGP)是一种连接不同自治系统的相邻路由器之间交换路由信息的协议。EGP使用路由协议有BGP。三者关系如图22-3
  4. 链路状态路由协议:运行距离矢量路由协议的路由器会将所有它知道的路由信息与邻居共享,当然只是与直接邻居共享。运行链路状态路由协议的路由器只将它所直连的链路状态与邻居共享。如表22-2所示给出链路状态路由协议和距离矢量路由协议。
  5. 区域:OSPF是分层路由协议,每个AS中网络被分成不同的区域,每个区域拥有特定的标识符。OSPF的区域中必须包含Area0,其他区域必须连接Area0的区域需要通过虚链路,通过中间区域连接。

配置OSPF协议 ospf协议的配置_配置OSPF协议

 

OSPF的5类报文

OSPF使用IP包头封装了5类报文,用来交换链路状态广播(LSA)。

  1. Hello:用于发现邻居,保证邻居之间keeplive,能在NBMA上选举指定路由器(DR)、备份指定路由器(BDR)。默认的Hello报文的发送间隔时间是10秒,默认的无效时间间隔是Hello时间间隔的4倍,即如果在40秒内没有从特定的邻居收到这种分组,路由器就认为那个邻居不存在。Hello包应该包含:源路由器的RID、源路由器的Area ID、源路由器接口的掩码、源路由器连口的认证类型和信息、源路由器接口的Hello包发送的时间间隔、源路由器接口的无效时间间隔、优先级、DR/BDR接口IP地址、五个标记位、源路由器的所有邻居的RID。Hello组播地址为224.0.0.5。
  2. 数据库描述(DD或DBD)消息:用来交换每个LSA的摘要版本,一般出现在拓扑交换中,这样的路由器可以获悉邻接路由器的LSA列表并用于选择主从关系。LSA描述了路由器的所有链路、接口、路由器的邻居及链路状态信息。
  3. 链路状态请求(LSR)消息:请求一个或多个LSA,通告邻接路由器提供LSA的详细信息给发送路由器。
  4. 链路状态更新(LSU)消息:包含LSA的详细信息,一般用来响应LSR消息。
  5. 链路状态应答(LSAck)消息:用来确认已收到LSU消息。
  6. 上述消息可以支持路由器发现邻接路由器(Hello),学习其本身链路状态库(LSDB)中没有的LSA(DD),请求并可靠交换LSA(LSR/LSU),监测路由器是否发生拓扑改变。LSA每30分钟重传1次。

OSPF工作流程

  1. 启动OSPF进程的接口,发送Hello消息。
  2. 交换Hello消息建立邻居关系。
  3. 每台路由器对所在邻居发送LSA。
  4. 路由器接收邻居发过来的LSA并保存在LSDB中,发送一个LSAcopy给其他邻居。
  5. LSA泛洪扩散到整个区域,区域内所有路由器都会形成相同的LSDB。
  6. 当所有路由器的LSDB完全相同时,每台路由器将以自身为根,使用最短路径算法算出到达每个目的地的最短路径。
  7. 每台路由器通过最短路径构建出自己的路由表,包含区域内路由(最优)、区域间路由、E1外部路由和E2外部路由。

BR与BDR选举

在DR和BDR出现之前,每一台路由器和其所有邻居成为全连接的OSPF邻接关系,关系数为n*(n-1)。在多址网络中,路由器发出的LSA从邻居的邻居发回来,导致网络上产生很多LSA的复制,所以基于这种考虑产生了DR和BDR。网段中的所有路由器都从DR和BDR交换信息,而不是彼此交换信息。DR和BDR将信息转交给其他所有路由器,用DR和BDR方式的连接数为2*(n-1)。

        OSPF选举Router-id的规则:

  1. 手动配置Router-id为首选。
  2. 有所有loopback中最大的IP作为Router-id。
  3. 用所有活动物理接口中最大的IP作为Router-id(用作Router-id的接口不一定非要运行OSPF协议)。

        DR/BDR的选举过程如下:

  1. 选举路由器必须进入双向会话状态,优先级别必须大于0(优先级为0,则不能与选举)。
  2. 选举优先级最高的路由器为DR,次优的为BDR。
  3. 如果优先级相同,则选举Router-id最大的路由器。
  4. 如果DR/BDR已经存在,而又有新的OSPF路由器加入,即使该路由器优先级最高,也不剥夺现在DR/BDR的角色。
  5. 如果DR失效,则BDR接管DR,并重新激活一个新BDR选举进程。注意:DR的数据包通过224.0.0.5发往所有路由器,DR、BDR监听使用地址224.0.0.6;DROther监听使用地址:224.0.0.5。网络上允许有DR却不存在BDR的情况。DR/BDR的作用是减少网络通信量,负责为整个网络生成LSA、减少链路状态数据库的大小。

OSPF网络类型

配置OSPF协议 ospf协议的配置_华为_02

 

配置OSPF协议 ospf协议的配置_链路_03

二、实验要求

在每台路由器上开启OSPF进程

根据区域划分情况,指定各路由器接口的所属区域

三、实验拓扑

配置OSPF协议 ospf协议的配置_OSPF_04

四、实验步骤

1、AR1、AR2和AR3配置如下

//AR1
<huawei>sys
[Huawei]sysname AR1
[AR1]int e0/0/0
[AR1-Ethernet0/0/0]ip address 192.168.3.1 24
[AR1-Ethernet0/0/0]int e0/0/1
[AR1-Ethernet0/0/1]ip address 192.168.4.1 24
[AR1-Ethernet0/0/1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip address 172.16.1.1 24
[AR1-GigabitEthernet0/0/0]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip address 172.16.2.1 24
[AR1-GigabitEthernet0/0/1]q
//AR2
<huawei>sys
[Huawei]sysname AR2
[AR2]int e0/0/0
[AR2-Ethernet0/0/0]ip address 192.168.1.1 24
[AR2-Ethernet0/0/0]int e0/0/1
[AR2-Ethernet0/0/1]ip address 192.168.2.1 24
[AR2-Ethernet0/0/1]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip address 172.16.1.2 24
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip address 172.16.3.2 24
[AR2-GigabitEthernet0/0/1]q
//AR3
<huawei>sys
[Huawei]sysname AR3
[AR3]int e0/0/0
[AR3-Ethernet0/0/0]ip address 192.168.5.1 24
[AR3-Ethernet0/0/0]int e0/0/1
[AR3-Ethernet0/0/1]ip address 192.168.6.1 24
[AR3-Ethernet0/0/1]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip address 172.16.3.1 24
[AR3-GigabitEthernet0/0/1]int g0/0/2
[AR3-GigabitEthernet0/0/2]ip address 172.16.2.2 24
[AR3-GigabitEthernet0/0/2]q

各PC机设置如拓扑所示

配置OSPF协议 ospf协议的配置_华为_05

2、AR1、AR2和AR3配置OSPF,进程号为1,设置router-id,并使用network命令将需要的接口加入对应区域。

//AR1
[AR1]ospf 1 router-id 11.1.1.1
[AR1-ospf-1]area 0
[AR1-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]network 172.16.2.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.0]q
[AR1-ospf-1]area 1
[AR1-ospf-1-area-0.0.0.1]network 192.168.3.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.1]network 192.168.4.0 0.0.0.255
[AR1-ospf-1-area-0.0.0.1]q
//AR2
[AR2]ospf 1 router-id 22.2.2.2
[AR2-ospf-1]area 0
[AR2-ospf-1-area-0.0.0.0]network 172.16.1.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0]network 172.16.3.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.0]q
[AR2-ospf-1]area 2
[AR2-ospf-1-area-0.0.0.2]network 192.168.1.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.2]network 192.168.2.0 0.0.0.255
[AR2-ospf-1-area-0.0.0.2]q
//AR3
[AR3]ospf 1 router-id 33.3.3.3
[AR3-ospf-1]area 0
[AR3-ospf-1-area-0.0.0.0]network 172.16.2.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]network 172.16.3.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.0]q
[AR3-ospf-1]area 3
[AR3-ospf-1-area-0.0.0.3]network 192.168.5.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.3]network 192.168.6.0 0.0.0.255
[AR3-ospf-1-area-0.0.0.3]q

3、各PC机互相访问

配置OSPF协议 ospf协议的配置_华为_06