- OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。OSPF有以下优点:
- 采用组播形式收发部分协议报文
- 支持区域划分
- 支持对等价路由进行负载分担
- 支持报文认证
- Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。
- Router ID选举规则如下:
- 手动配置OSPF路由器的Router ID(建议手动配置)
- 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
- 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
- OSPF Area用于标识一个OSPF的区域。
- 区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
- OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1。为了简便起见,我们也会采用十进制的形式来表示。
- OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省的接口Cost = 100 Mbit/s 接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和OSPF有三张重要的表项,OSPF邻居表、LSDB和OSPF路由表。对于OSPF的邻居表,需要了解:
- OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
- OSPF的邻居关系通过交互Hello报文建立。
OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看对于OSPF的LSDB,需要了解:
- LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
- Type标识LSA的类型,AdvRouter标识发送LSA的路由器。
- 使用命令行display ospf lsdb查看LSDB表。
对于OSPF的路由表,需要了解:
- OSPF路由表和路由器路由表是两张不同的表。本例中OSPF路由表有三条路由。
- OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
- 使用命令display ospf routing查看OSPF路由表。
配置命令介绍
- 启动OSPF进程,进入OSPF视图。
[Huawei] ospf [ process-id | Router ID Router ID ]
路由器支持OSPF多进程,进程号是本地概念,两台使用不同OSPF进程号设备之间也能够建立邻接关系。
- 创建并进入OSPF区域视图
Huawei-ospf-1] area area-id
- 在OSPF区域中使能OSPF
执行该命令配置区域所包含的网段。设备的接口IP地址掩码长度≥network命令指定的掩码长度,且接口的主IP地址必须在network命令指定的网段范围内,此时该接口才会在相应的区域内激活OSPF。
[Huawei-ospf-1-area-0.0.0.0] network network-address wildcard-mask
- 接口视图下使能OSPF:
[Huawei-GigabitEthernet1/0/0] ospf enable process-id area area-id
ospf enable命令用来在接口上使能OSPF,优先级高于network命令。
- 接口视图下:设置选举DR时的优先级
Huawei-GigabitEthernet1/0/0] ospf dr-priority priority
缺省情况下,优先级为1。
- 接口视图下:设置Hello报文发送的时间间隔
[Huawei-GigabitEthernet1/0/0] ospf timer Hello interval
缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒,且同一接口上邻居失效时间是Hello间隔时间的4倍
- 接口视图下:设置网络类型
[Huawei-GigabitEthernet1/0/0] ospf network-type { broadcast | nbma | p2mp | p2p }
缺省情况下,接口的网络类型根据物理接口而定。以太网接口的网络类型为广播,串口和POS口(封装PPP协议或HDLC协议时)网络类型为P2P。
LSA
- Router LSA(1类LSA):每台OSPF路由器都会产生。它描述了该路由器直连接口的信息。
Router LSA只能在所属的区域内泛洪
- V (Virtual Link ) :如果产生此LSA的路由器是虚连接的端点,则置为1。
- E (External ): 如果产生此LSA的路由器是ASBR,则置为1。
- B (Border ):如果产生此LSA的路由器是ABR,则置为1。
- links :LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口的信息。
- Router LSA使用Link来承载路由器直连接口的信息。
- 每条Link均包含“链路类型”、“链路ID”、“链路数据”以及“度量值”这几个关键信息。
- 路由器可能会采用一个或者多个Link来描述某个接口。
- Network LSA(2类LSA) :由DR产生,描述本网段的链路状态,在所属的区域内传播。
- Network LSA 记录了该网段内所有与DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码。
- Link State ID :DR的接口IP地址。
- Network Mask:MA网络的子网掩码。
- Attached Router:连接到该MA网络的路由器的Router-ID(与该DR建立了邻接关系的邻居的Router-ID,以及DR自己的Router-ID),如果有多台路由器接入该MA网络,则使用多个字段描述。
- ASBR(AS Boundary Router):自治系统边界路由器。只要一台OSPF设备引入了外部路由,它就成为了ASBR。如图中的R1。
ASBR将外部路由信息以AS-external LSA(5类LSA)的形式在OSPF网络内泛洪AS-external LSA(5类LSA):由ASBR产生,描述到达AS外部的路由,该LSA会被通告到所有的区域(除了Stub区域和NSSA区域)。
- LS Type:取值5,代表AS-external-LSA。
- Link State ID:外部路由的目的网络地址。
- Advertising Router:生成该LSA的Router ID。
- Network Mask:网络掩码。
- E :该外部路由所使用的度量值类型
- 0:度量值类型为Metric-Type-1
- 1:度量值类型为Metric-Type-2
- metric:到目的网络的路由开销。
- Forwarding Address(FA):到所通告的目的地址的报文将被转发到这个地址。