一、动态路由协议简介
1.动态路由协议的分类
1.1距离矢量路由协议
- 运行距离矢量路由协议的路由器周期性地泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,然后再通告给其他相邻路由器。
- 对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的网段方向在哪里,开销有多大。
1.2链路状态路由协议
1.2.1.链路状态路由协议-LSA泛洪
-
链路状态路由协议通告的的是链路状态而不是路由信息。
-
运行链路状态路由协议的路由器之间首先会建立邻居关系,然后彼此之间开始交互LSA(Link State
Advertisement,链路状态通告)。
1.2.2.链路状态路由协议-LSDB维护
每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(Link StateDataBase,)链路状态数据库)。路由器通过对LSDB中所存储的LSA进行解析,进而了解全网拓扑。
1.2.3.链路状态路由协议-SPF计算
每台路由器基于LSDB,使用SPF(Shortest Path First,(最短路径优先)算法进行计算。每台路由器都计算出一棵
以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达所有网段的优选路径。
1.3.链路状态路由协议总结
二、OSPF简介
1.OSPF概述
- OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。
- OSPF有以下优点:
- 基于SPF算法,以“累计链路开销”作为选路参考值
- 采用组播形式收发部分协议报文
- 支持区域划分
- 支持对等价路由进行负载分担
- 支持报文认证
2.OSPF应用场景
3.OSPF基础术语
3.1.OSPF基础术语- Router ID
- Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。
- RouterID选举规则如下:
- 手动配置OSPF路由器的RouterID(建议手动配置)
- 如果没有手动配置RouterID,则路由器使用Loopback接口中最大的IP地址作为Router ID
- 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
3.1.1.查看Router ID
display current-configuration //第一种方法可以看
display ospf brief //第二种方法可以看
3.1.2.创建Loopback虚拟接口
[Huawei]interface LoopBack 100
[Huawei-LoopBack100]ip address 100.100.100.100 24
3.2.OSPF基础术语-度量值
-
OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省的接
口Cost = 100 Mbit/s / 接口带宽。其中100Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
-
OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和。
3.3.OSPF基础术语-度量值修改举例
4.OSPF三大表项
4.1.OSPF三大表项-邻居表
OSPF有三张重要的表项,OSPF邻居表、LSDB和OSPF路由表。对于OSPF的邻居表,需要了解:
- OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
- OSPF的邻居关系通过交互Hello报文建立。
- OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
!
4.2.OSPF三大表项-LSDB
对于OSPF的LSDB,需要了解:
- LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
- Type标识LSA的类型,AdvRouter标识发送LSA的路由器。
- 使用命令行display ospf lsdb查看LSDB表。
4.3.OSPF三大表项-OSPF路由表
对于OSPF的路由表,需要了解:
- OSPF路由表和路由器路由表是两张不同的表。本例中OSPF路由表有三条路由。
- OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
- 使用命令display ospf routing查看OSPF路由表。
5.OSPF报文格式和类型
-
OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式。
-
OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89。
三、OSPF工作过程
1.OSPF工作过程概览
2.建立邻居关系
- OSPF使用Hello报文发现和建立邻居关系。
- 在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)。
- OSPF Hello报文中包含了路由器的RouterID、邻居列表等信息。
2.1.Hello报文
2.1.1.Hello报文的主要作用:
- 邻居发现:自动发现邻居路由器。
- 邻居建立:完成Hello报文中的参数协商,建立邻居关系。
- 邻居保持:通过周期性发送和接收,检测邻居运行状态。
2.1.2.字段解释
2.1.2.1重要字段解释
- Network Mask:发送Hello报文的接口的网络掩码。
- HelloInterval :发送Hello报文的时间间隔。通常为10s。
- "RouterDeadInterval :失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。通常为40s。
- Neighbor :邻居,以Router ID标识。
2.1.2.2.其它字段解释
- Options:
- E:是否支持外部路由
- MC:是否支持转发组播数据包
- N/P:是否为NSSA区域
- "Router Priority:DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。
- Designated Router:DR的接口地址。
- Backup Designated Router:BDR的接口地址。
3.建立邻接关系
3.1邻接关系建立(1)
3.1.1DD报文
DD报文包含LSA头部信息,包括LS Type、LS ID、Advertising Router、LS Sequence Number、LSChecksum。
3.2.邻接关系建立(2)
4.DR与BDR的作用
4.1.不同网络类型中DR与BDR的选举操作
OSPF网络类型 | 常见链路层协议 | 是否选举DR | 是否和邻居建立邻接关系 |
---|---|---|---|
Point-to-point | PPP链路;HDLC链路 | 否 | 是 |
Broadcast | 以太网链路 | 是 | DR与BDR、DRother建立邻接关系,BDR与DR、DRother建立邻接关系,DRother之间只建立邻居关系 |
NBMA | 帧中继链路 | 是 | DR与BDR、DRother建立邻接关系,BDR与DR、DRother建立邻接关系,DRother之间只建立邻居关系 |
P2MP | 需手工指定 | 否 | 是 |
4.2.可按需调整设备接口的OSPF网络类型
四、OSPF的基本配置
1.配置命令介绍
1.1.启动OSPF进程,进入OSPF视图。
[Huawei] ospf [ process-id|Router ID Router ID ]
路由器支持OSPF多进程,进程号是本地概念,两台使用不同OSPF进程号设备之间也能够建立邻接关系。
1.2.创建并进入OSPF区域视图
[Huawei-ospf-1] area area-id
1.3.在OSPF区域中使能OSPF
[Huawei-ospf-1-area-0.0.0.0] network network-address wildcard-mask
执行该命令配置区域所包含的网段。设备的接口IP地址掩码长度znetwork命令指定的掩码长度,且接口的主IP地址必
须在network命令指定的网段范围内,此时该接口才会在相应的区域内激活OSPF。
1.4.接口视图下使能OSPF:
[Huawei-GigabitEthernet1/0/0] ospf enable process-id area area-id
ospf enable命令用来在接口上使能OSPF,优先级高于network命令。
1.5.接口视图下:设置选举DR时的优先级
[Huawei-GigabitEthernet1/0/0] ospf dr-priority priority
缺省情况下,优先级为1。
1.6.接口视图下:设置Hello报文发送的时间间隔
[Huawei-GigabitEthernet1/0/0] ospf timer Hello interval
缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒,且同一接口上邻居失效时间是Hello间隔
时间的4倍
1.7.接口视图下:设置网络类型
[Huawei-GigabitEthernet1/0/0] ospf network-type { broadcast | nbma | p2mp | p2p}
缺省情况下,接口的网络类型根据物理接口而定。以太网接口的网络类型为广播,串口和POS口(封装PPP协议或
HDLC协议时)网络类型为P2P。
2.OSPF配置举例
-
基础数据说明:每台设备的Router ID为10.0.x.x,其中x为路由器的编号,例如R5的Router ID为10.0.5.5。设备之间的互联IP地址为10.0.xy(z).x(y/z)/24其中xyz为路由器编号,编号小的放到前面,例如R2GE0/0/1接口的IP地址为10.0.235.2/24。
-
拓扑说明:五台路由器均工作在区域0。
以R2为例: [R2]ospf 1 router-id 10.0.2.2 [R2-ospf-1]area 0.0.0.8 [R2-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0] network 10.0.24.2 0.0.0.0 [R2-ospf-1-area-0.0.0.0] network 10.0.35.2 0.0.0.0
3.OSPF配置验证
3.1.OSPF配置验证(1)
display ospf interface all可查看当前设备所有激活OSPF的接口信息:
- 时间参数,例如Hello报文发送间隔,死亡时间。
- 接口的链路类型、接口的MTU。
- 对于以太网链路,可查看DR的接口地址,DR的优先级。
[R2]display ospf interface all
OSPF Process 1 with Router ID 10.0.2.2
Area: 0.0.0.0
Interface: 10.0.12.2 (GigabitEthernet0/0/0)
Cost: 1 State: DR Type: BroadcastMTU: 1500 Priority:1
Designated Router: 10.0.12.2
Backup Designated Router:10.0.12.1
Timers: HELLO 10, Dead 40,Poll 120,Retransmit5,Transmit Delay 1
Interface: 10.0.235.2 (GigabitEthernet0/0/1)
Cost:1 State: DROther Type: Broadcast MTU:1500 Priority:1
Designated Router:10.0.235.5
Backup Designated Router:10.0.235.3
Timers: HELLO 10, Dead 40,Poll 120,Retransmit5,Transmit Delay 1
Interface:10.0.24.2(Serial1/0/1) --> 10.0.24.4
Cost: 48 State:P-2-P Type:P2PMTU: 1500
Timers: HELLO 10, Dead 40,Poll 120,Retransmit 5, Transmit Delay 1
3.2.OSPF配置验证(2)
display ospf peer可查看当前设备的邻居状态:
- 邻居路由器的Router ID.
- 邻居状态,例如FULL,TWO-WAY, DOWN等。
<R2>display ospf peer
OSPF Process 1 with Router ID 10.0.2.2
Area 0.0.0.0 interface 10.0.12.2(GigabitEthernetD/0/0)'s neighbors
Router ID:10.0.1.1
Address:10.0.12.1
State: Full Mede:Nbr is Slave Priority:1
DR:10.0.12.2 BDR: 10.0.12.1 MTU:0
Dead timer due in 28 sec
Retrans timer interval:5
Neighbor is up for 00:01:31
Authentication Sequence:[0]
Area 0.0.0.0 interface 10.0.235.2(GigabitEthernet0/0/1)'s neighbors
Router ID:10.0.3.3
Address: 10.0.235.3
State: Full Mode:Nbr is Master Priority:1
DR:1D.0.235.5 BDR: 10.0.235.3 MTU:0
Dead timer due in 30 sec
Retrans timer interval:5
Neighbor is up for 00:01:31
Authentication Sequence:[0]
3.3.OSPF配置验证(3)
在P2P网络中不需要选举DR/BDR。因此在本例中,查看R2的OSPF邻居表时,
会发现其Serial1/0/1接口的数据结构中DR/BDR字段为None。
<R2>display ospf peer
OSPF Process 1 with Router ID 10.0.2.2
Area 0.0.0.0 interface 10.0.235.2(GigabitEthernet0/0/1y's neighbors
Router ID:10.0.5.5
Address: 10.0.235.5
State: Full Mode:Nbr is Master Priority:1
DR:10.0.235.5 BDR: 10.0.235.3 MTU:0
Dead timer due in 40 sec
Retrans timer interval: 0
Neighbor is up for 00:01:27
Authentication Sequence:[0]
Area 0.0.0.0 interface 10.0.24.2(Serial1/0/1)'s neighbors
Router ID:10.0.4.4
Address:10.0.24.4
State:Full Mode:Nbr is Master Priority: 1
DR: None BDR: None MTU:0
Dead timer due in 35 sec
Retrans timer interval: 5
Neighbor is up for 00:01:56
Authentication Sequence:[0]
3.4.OSPF配置验证(4)
display ospf lsdb可查看当前设备的LSDB:
- LSDB由多种类型的LSA构成,所有的LSA都有相同的报文头部格式,其中关键字段如Type、LinkState ID、AdvRouter等。下节课程将重点介绍LSA的详细信息。
<R2>display ospf lsdb
OSPF Process 1 with Router ID 10.0.2.2
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.0.4.4 10.0.4.4 662 72 80000006 48
Router 10.0.2.2 10.0.2.2 625 72 8000000C 1
Router 10.0.1.1 10.0.1.1 638 60 80000007 1
Router 10.0.5.5 10.0.5.5 634 60 8000000B 1
Router 10.0.3.3 10.0.3.3 639 60 80000009 1
Network 10.0.235.5 10.0.5.5 634 36 80000005 0
Network 10.0.12.2 10.0.2.2 629 32 80000003 0
3.5.OSPF配置验证(5)
display ospf routing可查看当前设备的OSPF路由表:
- 从R2的OSPF路由表可看出,它已经通过OSPF获知到达全网的路由。
<R2>display ospf routing
OSPF Process 1 with Router ID 10.0.2.2
Routing Tables
Destination Cost Type NextHop AdvRouter Area
10.0.12.0/24 1 Transit 10.0.12.2 10.0.2.2 0.0.0.0
10.0.24.0/24 48 Stub 10.0.24.2 10.0.2.2 0.0.0.0
10.0.235.0/24 1 Transit 10.0.235.2 10.0.2.2 0.0.0.0
10.0.13.0/24 49 Stub 10.0.12.1 10.0.1.1 0.0.0.0
10.0.13.0/24 49 Stub 10.0.235.3 10.0.3.3 0.0.0.0
10.0.45.0/24 49 Stub 10.0.235.5 10.0.5.5 0.0.0.0
ess 1 with Router ID 10.0.2.2
Routing Tables
Destination Cost Type NextHop AdvRouter Area
10.0.12.0/24 1 Transit 10.0.12.2 10.0.2.2 0.0.0.0
10.0.24.0/24 48 Stub 10.0.24.2 10.0.2.2 0.0.0.0
10.0.235.0/24 1 Transit 10.0.235.2 10.0.2.2 0.0.0.0
10.0.13.0/24 49 Stub 10.0.12.1 10.0.1.1 0.0.0.0
10.0.13.0/24 49 Stub 10.0.235.3 10.0.3.3 0.0.0.0
10.0.45.0/24 49 Stub 10.0.235.5 10.0.5.5 0.0.0.0