0%

HCIA OSPF动态路由实验

开放式最短路径优先OSPF(Open Shortest Path First)协议是IETF定义的一种基于链路状态的内部网关路由协议。

RIP是一种基于距离矢量算法的路由协议,存在着收敛慢、易产生路由环路、可扩展性差等问题,目前已逐渐被OSPF取代。

OSPF概述

  • 大中型网络使用最广泛的IGP协议
  • 链路状态路由协议
  • 无类别路由
  • 使用组播(224.0.0.5和224.0.0.6)
  • 收敛快
  • 已开销(cost)作为度量值
  • 采用SPF算法可以有效的避免环路
  • 触发式更新(以较低频率(每30分钟)定期发送更新,被称为链路状态泛洪)
  • 设置区域更新概率使得OSPF能够支持更大规模的网络(划分骨干区域、非骨干区域和特殊区域)
  • 通过LSA(链路状态信息)的形式发布路由
  • 支持手动汇总(在ABR和ASBR上配置)

OSPF区域

区域概述

术语备注
区域(Area)为了适应大型网络,OSPF在AS内划分多个区域。区域是以接口划分。每个OSP路由器只维护所在区域的完整链路状态信息
区域ID(Area-ID)可以表示成一个十进制的数字,如:1,也可以表示为一个IP,如:1.1.1.1
区域优点尽量减少LSDB大小,拓扑变化仅影响本区域内部

区域类型

划分多区域的作用,是为了减轻运行OSPF路由器的压力。

防环机制:划分了骨干区域和非骨干区域,所有非骨干区域通讯必须经过骨干区域中转,骨干区域传来的LSA不会再传回骨干区域。非骨干区域之间通信需要骨干区域转发。

类型备注
骨干区域area-0,骨干区域,也称为传输区域
非骨干区域非area-0,非骨干区域,称为末端区域

OSPF路由器角色

角色备注
IRinternal router (内部路由器):所有接口都属于同一个区域
BRbackbone router(骨干路由器):至少有一个接口属于骨干区域
ABRArea border router(区域边界路由):连接多个不同的区域,至少有一个接口属于骨干区域
ASBRAutonomous System Border(自制系统边界路由器):将其他路由协议学习到的路由以引入的方式到OSPF进程中

OSPF核心工作流程

  1. 发现并建立邻居
  2. 传播LSA(区别基于DV算法的路由更新)【LSA内容:链路状态宣告,路由器接口,描述接口信息】
  3. 将LSA泛洪到区域中的所有OSPF路由器
  4. 收集LSA创建LSDB(链路状态数据库)
  5. 使用SPF算法计算到达每个目标网络的最短路径,存放于路由表

OSPF三张表

类型含义
邻居表记录所有邻居关系
链路状态数据库记录所有链路状态信息
路由表记录最佳路由

Router ID

  • 运行OSPF协议前,必须选取的一个RID
  • 用来唯一标识一台OSPF路由器
  • RID可以手动配置,也可以自动生成
  • RID选取规则顺序:1. 优先手动配置(推荐);2. 活动回环接口中IP地址最高的;3. 活动物理接口中IP地址最高的
  • 任何选举值都未配置是运行不了OSPF的(router id为0.0.0.0)
  • RID选举具有非抢占性,修改除非重启OSPF进程(R1> reset ospf process)

OSPF数据包类型

OSPF数据包封装在IP协议之上,IP协议号89(ICMP 1, TCP 6, UDP 17)

OSPF数据包作用
Hello建立并维护邻居关系
Database Description(DD)LSDB的摘要信息(仅包含LSA头部信息)
Links State Request(LSR)请求LSA
Links State Update(LSU)发送LSA(完整的LSA信息)
Link State Acknowledge (LSA)对LSU的确认

OSPF状态机制

只有2-Way和Full是稳定状态

状态备注
失效状态(Down)没有收到Hello 包
初始状态(Init)收到了Hello 包,但是邻居列表不存在自己
双向通信状态 (2-Way)收到了Hello包,且在邻居列表里看到了自己,形成邻居关系
交换初始状态 (Exstart)决定交换信息时的路由器主从关系
交互状态 (Exchange)向邻居发送DD数据包
加载状态(Loading)LSR和LSU交换
完全邻接状态 (Full)LSDB同步完成,形成邻接关系

OSPF工作流程(数据包和状态切换过程)

01

01

OSPF第一阶段是使用Hello包建立双向通信的过程,称为邻居关系

01

Exstart:序列号x,I=1表示是第一个发送的DD包,M=1表示后面还有DD包,MS=1表示我是主(初始都是主),通过比较Router ID值大的一方为主,向主发送的DD报文中序列号会变成主的序列号,同时这才是真正的DD报文

01

OSPF第二阶段是通过交换LSA达到LSDB同步,建立邻接关系

OSPF邻居建立条件(必须三层直连)

Hello报文用来发现和维持OSPF邻居关系

  • RID唯一
  • Hello/Dead时间间隔一致(默认Dead时间是Hello时间的4倍) 【 [R1-GigabitEthernet0/0/0] ospf timer hello 5】
  • 区域ID一致
  • 认证(如果启用了认证)一致
  • 链路MTU大小一致(华为默认不开启检查,思科默认开启)
  • 子网掩码一致(以太网环境)
  • 网络地址一致
  • 末梢区域设置一致(Option)

OSPF网路类型:基于接口

缺省情况下,OSPF认为以太网的网络类型是广播类型,PPP、HDLC的网络类型是点对点类型。

DR和BDR

只要是多路访问BMA和NBMA网络中,为了减少邻接关系的数量,从而减少数据包交换次数,最终节省带宽,降低对路由器处理能力的压力,选举DR和BDR

术语备注
DRDesigned Router,指定路由器,类似班长、总经理
BDRBackup DR,备用DR,类似副班长、副总经理
DRothers类似普通学生、普通员工
关系DR、BDR、DRothers之间都保持邻接关系(Full),DRothers之间保持邻居关系(2-Way)
地址224.0.0.6向DR和BDR发送链路状态更新
224.0.0.5向所有OSPF路由器发送
选举规则首先比较Hello报文中鞋带的优先级
1. 优先级范围0-255,默认=1
2. 优先级最高的被选举为DR,优先级次高的被选举为BDR
3. 优先级为0的不参与选举
优先级一致的情况下,比较RID,越大越优先。选举具有非抢占性,除非当DR和BDR都失效或重启OSPF进程

OSPF度量值:Cost,开销

  • 在每一个运行OSPF的接口上,都维护这一个接口Cost

  • Cost=10^8/BW(bps)=100Mbps/BW=接口带宽参考值/接口带宽

  • 到一个目标网络的度量值=

    • 从源到目标所有出站接口的Cost值累加(数据方向)

    • 从源到本路由器沿途所有入站接口的Cost值累加(路由方向)

OSPF 配置

命令备注
ospf 1 router-id 1.1.1.1开启OSPF,进程号缺省值为1,手动配置Router ID
area 0/0.0.0.0配置区域
network 192.168.0.0 0.0.0.255宣告网络,即指定运行OSPF的接口;使用反掩码来匹配(255.255.255.255-掩码)
display ospf peer brief显示OSPF邻居信息
ospf timer hello 10修改Hello包发送间隔
ospf timer dead 40修改Hello包超时时间
display ospf interface g0/0/0显示OSPF接口信息
ospf dr-priority 100修改OSPF接口优先级
ospf cost 10修改开销,范围1-65535,缺省为1
bandwidth-reference 100调整带宽参考值,默认为100Mbps,需要在整个OSPF网络中统一进行调整
reset ospf process重启OSPF进程
default-route-advertise alwaysOSPF发布缺省路由(没有缺省路由,必须要有always参数)
display ospf lsdb查看ospf链路状态数据库信息

OSPF认证命令

如果同时配置认证,接口认证优先生效。

命令备注
int g0/0/0
ospf authentication-mode md5 1 cipher 111.com
配置接口认证
ospf 1
area 0
authentication-mode md5 1 cipher 111.com
配置区域认证

01

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# AR1
sys
sys R1
int g0/0/0
ip add 192.168.0.1 24

ospf dr-pri 200
ospf 1 router-id 1.1.1.1
area 0
network 192.168.0.0 0.0.0.255

#################################

#AR2
sys
sys R2
int g0/0/0
ip add 192.168.0.2 24

ospf dr-pri 100
ospf 1 router-id 2.2.2.2
area 0
network 192.168.0.0 0.0.0.255

#################################

# AR3
sys
sys R3
int g0/0/0
ip add 192.168.0.3 24
int s4/0/0
ip add 34.0.0.3 8

ospf authentication-mode md5 1 cipher 111.com


ospf 1 router-id 3.3.3.3
area 0
network 192.168.0.0 0.0.0.255
network 34.0.0.0 0.255.255.255


#################################
#AR6
sys
sys R6
int g0/0/0
ip add 192.168.0.6 24

ospf 1 router-id 6.6.6.6
area 0
network 192.168.0.0 0.0.0.255

#################################
# AR4

sys
sys R4
int s4/0/0
ip add 34.0.0.4 8
int g0/0/1
ip add 48.0.0.4 8
int lo 1
ip add 4.4.4.4 32

ospf 1 router-id 4.4.4.4
area 0
network 34.0.0.0 0.255.255.255
network 4.4.4.4 0.0.0.0
import-route direct

int s4/0/0
ospf authentication-mode md5 1 cipher 111.com

#################################
#AR8

sys
sys R8
int g0/0/0
ip add 48.0.0.8 8

ip route-static 0.0.0.0 0.0.0.0 48.0.0.4

01

01

01