一、OSPF路由协议
1、RIP的缺陷
- 最大跳数限制了网络规模
- 以跳数为度量值无法准确判断最优路径
- 路由更新发送完整路由表消耗网络带宽
- 收敛速度慢
- 协议会产生路由自环
2、定义
- 开放式最短路径优先,基于链路状态特征
- 工作在IP层,协议号89
3、OSPF初始化流程
建立邻居和邻接关系
发送hello报文发现和建立邻居关系,组播地址224.0.0.5
- 接口UP
- 双方接口IP地址在同一网段
- 双方接口在同一区域
- ……
选举DR/BDR,建立邻接关系
DR/BDR选举
选举原因
广播网络中使路由信息交换更加高速有序
选举范围
每条广播链路上都需要选举出一个DR和一个BDR
选举规则
1.优先级大的优先,默认优先级都是1
2.Router-id大的优先
Router-id
定义:Rid,标识路由器的身份
产生方法:
手动配置一个IPv4地址格式作为Rid
自动选举:
1.在所有环回口中选举IP地址最大的作为Rid
2.在所有物理接口中选举IP地址最大的作为Rid
建议手动配置一个本地环回口的IP地址作为Rid
关系状态
- DRother与DR建立邻接关系
- DRother与BDR建立邻接关系
- DR与BDR建立邻接关系
- DRother之间保持邻居关系
邻接路由器之间交换链路状态信息,实现区域内链路状态数据库同步
相关概念
链路状态通告 LSA
用来描述路由器的接口、路由条目的相关信息
链路状态数据库 LSDB
存储本地所有LSA
工作流程
- 向邻接路由器发送DD报文,通告本地LSDB中所有LSA的摘要信息
- 收到DD后,与本地LSDB对比,向对方发送LSR报文,请求发送本地所需的LSA的完整信息
- 收到LSR后,把对方所需的LSA的完整信息打包为一条LSU报文,发送至对方
- 收到LSU后,向对方回复LSAck报文,进行确认
每台路由器根据本机链路状态数据库,计算到达每个目的网段的最优路由,写入路由表
4、OSPF分区域管理
分区域的原因
- 加快收敛速度
- 把网络故障隔离在区域内部
路由器角色
IR
- 内部路由器
- 所有接口都处于同一个区域
ABR
- 区域边界路由器
- 连接不同区域的路由器
ASBR
- 连接外部自治系统的路由器
区域类型
骨干区域
- 只能有一个骨干区域
- 骨干区域必须是连续的
非骨干区域
- 非骨干区域必须连接到骨干区域
特殊区域
5、相关命令
//开启DHCP服务
[h3c]dhcp enable
//创建DHCP地址池
[h3c]dhcp server ip-pool 'name'
//配置用于分配的地址范围
[h3c-dhcp-pool1]network 'network' mask 'mask'
//配置用于分配的网关地址
[h3c-dhcp-pool1]gateway-list 'ip address'
//配置用于分配的DNS服务器地址
[h3c-dhcp-pool1]dns-list 'ip address'
//配置DHCP租期
[h3c-dhcp-pool1]expired ……
//配置不参与分配的IP地址
[h3c]dhcp server forbidden-ip 'start ip address' 'end ip address'
//接口上开启DHCP中继功能
[h3c-GigabitEthernet 0/0]dhcp select relay
//指定用于中继的DHCP服务器地址
[h3c-GigabitEthernet 0/0]dhcp relay server-address 'ip address'
//查看DHCP服务器统计信息
[h3c]display dhcp server statistics
二、OSPF实验
实验拓扑
实验需求
按照图示配置 IP 地址
按照图示分区域配置 OSPF ,实现全网互通
为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域
实验解法
1、配置IP
配置 IP 地址部分略
2、配置OSPF
按照图示分区域配置 OSPF ,实现全网互通
分析:实现全网互通,意味着每台路由器都要宣告本地的所有直连网段,包括环回口所在的网段。要求 ABR 的环回口宣告进骨干区域,即区域 0。
同时,每台路由器手动配置各自环回口的 IP 地址作为 Router-id
步骤 1:在路由器上分别配置 OSPF,按区域宣告所有直连网段和环回口
//配置R1
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 100.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]area 1
[R1-ospf-1-area-0.0.0.1]network 100.3.3.0 0.0.0.255
//配置R2
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 100.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 100.2.2.0 0.0.0.255
//配置R3
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 100.2.2.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]area 2
[R3-ospf-1-area-0.0.0.2]network 100.4.4.0 0.0.0.255
//配置R5
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 1
[R4-ospf-1-area-0.0.0.1]network 4.4.4.4 0.0.0.0
[R4-ospf-1-area-0.0.0.1]network 100.3.3.0 0.0.0.255
//配置R6
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]network 5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.2]network 100.4.4.0 0.0.0.255
3、检查是否全网通
检查是否全网互通
分析:检查 OSPF 是否全网互通,一个是检查邻居关系表,看邻居关系是否正常;另一个是检查路由表,看是否学习到全网路由
这里只展示 R1 的检查结果
步骤 1:检查 R1 的邻居关系表
[R1]display ospf peer
OSPF Process 1 with Router ID 1.1.1.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
2.2.2.2 100.1.1.2 1 36 Full/BDR GE0/0
Area: 0.0.0.1
Router ID Address Pri Dead-Time State Interface
4.4.4.4 100.3.3.4 1 36 Full/DR GE0/1
//说明:可以看到,R1 分别和 R2 和 R4 建立了邻接关系,状态为 FULL,邻居关系正常
步骤 2:检查 R1 的路由表
[R1]display ip routing-table
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.2/32 O_INTRA 10 1 100.1.1.2 GE0/0
3.3.3.3/32 O_INTRA 10 2 100.1.1.2 GE0/0
4.4.4.4/32 O_INTRA 10 1 100.3.3.4 GE0/1
5.5.5.5/32 O_INTER 10 3 100.1.1.2 GE0/0
100.1.1.0/24 Direct 0 0 100.1.1.1 GE0/0
100.1.1.0/32 Direct 0 0 100.1.1.1 GE0/0
100.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
100.1.1.255/32 Direct 0 0 100.1.1.1 GE0/0
100.2.2.0/24 O_INTRA 10 2 100.1.1.2 GE0/0
100.3.3.0/24 Direct 0 0 100.3.3.1 GE0/1
100.3.3.0/32 Direct 0 0 100.3.3.1 GE0/1
100.3.3.1/32 Direct 0 0 127.0.0.1 InLoop0
100.3.3.255/32 Direct 0 0 100.3.3.1 GE0/1
100.4.4.0/24 O_INTER 10 3 100.1.1.2 GE0/0
//说明:可以看到,R1 已经学习到了全网所有网段的路由信息