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路由器角色

角色 备注
IR internal router (内部路由器):所有接口都属于同一个区域
BR backbone router(骨干路由器):至少有一个接口属于骨干区域
ABR Area border router(区域边界路由):连接多个不同的区域,至少有一个接口属于骨干区域
ASBR Autonomous 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

术语 备注
DR Designed Router,指定路由器,类似班长、总经理
BDR Backup 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 always OSPF发布缺省路由(没有缺省路由,必须要有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
# 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

独学无友,孤陋寡闻;学习记录,欢迎拍砖!