OSPF协议简介
OSPF(Open Shortest Path First)--开放式最短路径优先协议:是一种基于链路状态的内部网关协议。OSPF数据报文封装在IP报文内部,协议号为89,使用单播或组播发送数据。
注:在广播型网络中,所有路由器都以224.0.0.5的地址发送hello包,用来维持邻居关系,非DR/BDR路由器都以224.0.0.6(组播地址)为目标地址发送LSA(链路状态通告)更新,只有DR/BDR路由器监听这个地址;DR路由器以224.0.0.5为目标地址发送LSA更新到非DR/BDR路由器。
- OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的IGP协议之一;
- 目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。如无特殊说明本章后续所指的OSPF均为OSPF Version 2;
- OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持CIDR(Classless InterDomain Routing,无类域间路由);
- 支持手动路由汇总,不支持持自动路由汇总;
- 多区域的设计使得OSPF能够支持更大规模的网络;
- 采用SPF算法可以有效避免环路;
- 路由触发方式更新;同时也支持以较低频率周期(每30分钟)路由更新,被称为链路状态泛洪。
- 通过LSA(链路状态通告)形式发布路由。
OSPF特点:适合范围广,快速收敛,无自环、区域划分、支持验证(支持两种认证:区域认证和接口认证)、组播发送 。
OSPF与RIP比较:在RIP协议中,路由器会将自己所知道的关于整个网络的路由信息周期性地发送给所有的邻居路由器;在OSPF协议中,路由器会将自己的链路状态信息一次性地泛洪(Flooding)给所有其他的路由器。
OSPF相对于RIP(一种基于距离矢量算法)协议,有收敛快、不易产生路由环路、可拓展性好等特点,目前已逐渐取代RIP。
名词解释:
- OSPF区域-OSPF area:表示OSPF区域,是从逻辑上将路由器接口划分到不同的区域,每个区域用区域号(Area ID)来标识。
- 骨干区域-area 0:区域area 0被称为骨干区域,也被称为传输区域,负责不同非骨干区域之间路由信息分发;
- 非骨干区域:多区域OSPF网络中,除了骨干区域area 0之外的区域被称为非骨干区域。
- 区域ID-area ID:是一个32位的非负整数,按点分十进制的形式(与IPv4地址的格式一样)或十进制数形式呈现,例如area0.0.0.1也可以表示为area 1。
OSPF区域优点:减少了路由表条目;网络拓扑变化仅影响本区域内部。
非骨干区域之间通信必须通过骨干区域中转才能进行。
- Router-ID:路由器标识符(Router Identifier),在OSPF区域中唯一地标识一台路由器;Router-ID的设定可以通过手工配置的方式,或使用系统自动配置的方式;在实际项目中,通常会通过手工配置方式为设备指定OSPF Router-ID。
注:必须保证在OSPF域中任意两台设备的Router-ID都不相同。通常的做法是将Router-ID配置为与该设备某个接口(通常为Loopback接口)IP地址一致。
- cost值:一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加,或者是从源路由器到目的网段沿途所有出接口的Cost值累加。
OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,其中100 为OSPF指定的缺省参考值,该参考值值是可配置的,也可以通过手工命令的方式配置接口的COST值,手工配置接口COST值优于系统自动计算的值。
Cost=10^8bps/BW=100Mbps/BW=接口带宽参考值/接口带宽。 - 内部路由器-IR:OSPF网络中,如果一台路由器的所有接口都属于同一个区域,则这样的路由器被称为内部路由器(Internal Router)。
-
骨干路由器-BR:OSPF网络中,如果一台路由器包含有属于Area0的接口,则这样的路由器被称为骨干路由器(Backbone Router)。
-
区域边界路由器-ABR:OSPF网络中,如果一台路由器的某些接口属于Area0,其他接口属于别的区域,则这样的路由器被称为区域边界路由器(Area Border Router)。
-
自治系统边界路由器-ASBR:OSPF网络中,如果一台路由器是与本OSPF网络(本自治系统)之外的网络相连的,并且可以将外部网络的路由信息引入进本OSPF网络(本自治系统),则这样的路由器被称为自治系统边界路由器(Autonomous System Boundary Router)。
- DR:Designated Router指定路由器。
- BDR:Backup Designated Router备份指定路由器。
注:DR与BDR只存在于MA(多路访问)网络,以太网就是MA型网络。选择DR和BDR是为减少邻接关系带来的低效率和LSA泛洪问题。
- 为优化MA网络中OSPF邻接关系,OSPF指定了三种OSPF路由器身份,DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备用指定路由器)和DRother路由器。
- 只允许DR、BDR与其他(DRother)OSPF路由器建立邻接关系,双方保持在full状态;DRother之间建立邻居关系,双方停滞在2-way状态。
- BDR会监控DR的状态,并在当前DR发生故障时接替其角色。
- 选举规则:OSPF DR优先级更高的接口成为该MA的DR,如果优先级相等(默认为1),则具有更高的OSPF Router-ID的路由器(的接口)被选举成DR,如果优先级为0,不参与DR和BDR选举,并且DR和BDR选举具有非抢占性。
- OSPF支持的网络类型(这里的网络类型是指二层网络类型)
- 广播多路访问(BMA-Broadcast Multi-Access)网络,路由器1个接口下允许接入多台路由器(路由器某1接口接入交换机,交换机又接入多台路由器),且具备广播功能(路由器某接口发送广播帧后,只要在同一局域网的路由器接口都能接收到该广播帧),如以太网;
- 非广播多路访问(NBMA-Non-Broadcast Multi-Access)网络,路由器1个接口下允许接入多台路由器,但该网络不具备广播功能,如帧中继和ATM网络;
- 点到点(P2P-Point-to-Point)网络,路由器1个接口下只能接入1台路由器,如华为路由器默认情况下的PPP和DHLC网络;
- 点到多点(P2MP-Point-to-Multipoint)网络,与前面几种网络类型不同,P2MP并非路由器根据接口的数据链路层封装自动设置的,而是必须通过网络管理员手工指定的。P2MP有点类似于将多条P2P链路的一端进行捆绑得到的网络。
OSPF路由协议基本配置示例
实验内容:
- 运行OSPF协议的路由器实现网络互通。
配置思路
- 在每台路由器上使能OSPF进程;
- 根据区域的划分情况,指定各路由器接口的所属区域。
配置步骤
- 要在路由器上配置OSPF,必须首先进入系统视图,然后执行ospf[process-id | router-id router-id]命令以使能OSPF进程,并进入OSPF视图。
- 进入OSPF视图之后,我们需要根据网络规划来指定运行OSPF协议的接口以及这些接口所在的区域。
(1)我们需要在 OSPF 视图下执行命令 area area-id,该命令用来创建区域,并进入到区域视图。
(2)在区域视图下执行 network address wildcard-mask命令,该命令用来指定运行OSPF协议的接口,其中wildcard-mask被称为通配符掩码。
执行ospf命令时,如果不输入process-id(该参数表示OSPF进程编号)的值,则process-id默认取值为1。router-id是一个32比特的二进制数,也经常表示为点分十进制数。如果在执行ospf命令时不指定router-id,则路由器会根据某种规则自动生成一个值来作为 router-id。
网络拓扑图
代码段
system-view
sysname R1
interface GigabitEthernet 0/0/0
ip address 13.0.0.1 24
interface GigabitEthernet 0/0/1
ip address 12.0.0.2 24
interface GigabitEthernet 0/0/2
ip address 192.168.4.254 24
interface GigabitEthernet 4/0/0
ip address 192.168.3.254 24
quit
ospf router-id 1.1.1.1
area 0
network 13.0.0.0 0.255.255.255
network 12.0.0.0 0.255.255.255
quit
area 1
network 192.168.3.0 0.255.255.255
network 192.168.4.0 0.255.255.255
quit
system-view
sysname R2
interface GigabitEthernet 0/0/0
ip address 23.0.0.1 24
interface GigabitEthernet 0/0/1
ip address 12.0.0.1 24
interface GigabitEthernet 0/0/2
ip address 192.168.1.254 24
interface GigabitEthernet 4/0/0
ip address 192.168.2.254 24
quit
ospf router-id 2.2.2.2
area 0
network 23.0.0.0 0.255.255.255
network 12.0.0.0 0.255.255.255
quit
area 2
network 192.168.1.0 0.255.255.255
network 192.168.2.0 0.255.255.255
quit
system-view
sysname R3
interface GigabitEthernet 0/0/0
ip address 23.0.0.2 24
interface GigabitEthernet 0/0/1
ip address 13.0.0.2 24
interface GigabitEthernet 0/0/2
ip address 172.16.0.254 24
interface GigabitEthernet 4/0/0
ip address 172.17.0.254 16
quit
ospf router-id 3.3.3.3
area 0
network 12.0.0.0 0.255.255.255
network 13.0.0.0 0.255.255.255
quit
area 3
network 172.16.0.0 0.0.255.255
network 172.17.0.0 0.0.255.255
quit
代码解析
<Huawei>system-view
[Huawei]sysname R3
[R3]interface GigabitEthernet 0/0/0
[R3-GigabitEthernet0/0/0]ip address 23.0.0.2 24
[R3-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1
[R3-GigabitEthernet0/0/1]ip address 13.0.0.2 24
[R3-GigabitEthernet0/0/1]interface GigabitEthernet 0/0/2
[R3-GigabitEthernet0/0/2]ip address 172.16.0.254 24
[R3-GigabitEthernet0/0/2]interface GigabitEthernet 4/0/0
[R3-GigabitEthernet4/0/0]ip address 172.17.0.254 16
[R3-GigabitEthernet4/0/0]quit
[R3]ospf router-id 3.3.3.3 //使能OSPF进程1,设置R3路由器的router-id为3.3.3.3,进入OSPF视图
# ospf router-id 3.3.3.3等价于ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0 //创建区域area 0,并进入到区域视图
[R3-ospf-1-area-0.0.0.0]network 12.0.0.0 0.255.255.255 //指定运行OSPF协议的接口
#该配置命令的含义是:如果R3的某个接口的IP地址属于12.0.0.0~12.255.255.255这个范围,那么该接口就需要在Area0中参与进程编号为1的OSPF进程。
[R3-ospf-1-area-0.0.0.0]network 13.0.0.0 0.255.255.255
[R3-ospf-1-area-0.0.0.0]quit
[R3-ospf-1]area 3
[R3-ospf-1-area-0.0.0.3]network 172.16.0.0 0.0.255.255
[R3-ospf-1-area-0.0.0.3]network 172.17.0.0 0.0.255.255
[R3-ospf-1-area-0.0.0.3]quit
注:R1路由器和R2路由器与R3路由器配置基本相同,不再赘述。
测试验证
display ospf peer //查看路由器的邻居信息
display ospf routing //查看路由器的OSPF路由表
PC端测试