与RIP协议一样,OSPF(Open Shortest Path First)协议也是一种IGP。通常把一个以OSPF协议作为其IGP的自治系统称为一个OSPF网络。
OSPF的基本原理
类似每个同学都尽快一次性地大声地对全班同学说出自己所有邻居的姓名(假设教室里的声音无论有多么嘈杂,同学们都能听见、能分辨、能记住这些声音的内容)。
RIP协议——路由器会将自己所知道的关于整个网络的路由信息周期性地发送给所有的邻居路由器;
OSPF协议——路由器会将自己的链路状态信息一次性地泛洪(Flooding)给所有其他的路由器。
OSPF协议中引入了Area(区域)的概念。
RIP中,整个网络相当于整个RIP网络:
OSPF中,整个网络只相当于OSPF网络的一个Area。
OSPF与RIP的比较
OSPF是一种基于链路状态(Link-State)的路由协议,但在实际中,最常见的是采用链路的带宽来定义路由开销。OSPF适用于任何规模的网络。
RIP则是一种基于距离矢量的路由协议,这是二者之间最根本性的差别。RIP协议只适合用在小型网络中。
OSPF的区域化结构
一个OSPF网络可以被划分成多个区域(Area)。
单区域OSPF网络——一个OSPF网络只包含一个区域。单区域OSPF网络只包含一个区域,这个区域必须是骨干区域。
多区域OSPF网络——一个OSPF网络包含了多个区域。多区域OSPF网络中,除了有一个骨干区域外,还有若干个非骨干区域。非骨干区域之间的通信必须要通过骨干区域中转才能进行。
Area-ID为0的区域称为骨干区域(Backbone Area),否则称为非骨干区域。
如果一台路由器的所有接口都属于同一个区域,则这样的路由器被称为内部路由器(InternalRouter)。图8-22所示的OSPF网络中,
Area0的内部路由器有R5、R6、R7、R8。
Area1的内部路由器有R2、R3、R4。
Area2的内部路由器有R11和R12,
Area3的内部路由器有R13和R14。
OSPF支持的网络类型
(1)广播网络,也称为Broadcast网络。例如,以太网便是一种典型的Broadcast网络。
(2)NBMA(Non-BroadcastMulti-Access)网络。
(3)点到点网络,也称为Point-to-Point网络或P2P网络。
(4)点到多点网络,也称为Point-to-Mutipoint网络或P2MP网络。
链路状态与LSA
OSPF是一种基于Link-State(链路状态)的路由协议,其核心思想就是,每台路由器都将自己的各个接口的接口状态(即链路状态)共享给其他路由器。在此基础上,每台路由器就可以根据自己的各个接口的接口状态己及其他路由器各个接口的接口状态计算出从自己去往各个目的地的路由。
LSA又是什么意思呢?
LSA是Link-State Advertisement的缩写词,直译为“链路状态通告”。LSA有十几种类型(Type),内容如下。
OSPF报文的类型
OSPF基本配置示例
如图8-31所示,某公司有3台路由器,其中为公司总部的路由器,R1和R3分别为公司的两个分支机构的路由器。网络规划要求整网运行OSPF路由协议,并且采用多区域结构。
1.配置思路
(1)在每台路由器上使能OSPF进程。
(2)根据区域的划分情况,指定各路由器接口的所属区域。
2.配置步骤
要在路由器上配置OSPF,必须首先进入系统视图,然后执行ospf [process-id丨router-id router-id]命令以使能OSPF进程,并进入OSPF视图。
执行ospf命令时,如果不输入process-id(该参数表示OSPF进程编号)的值,则process-id默认取值为1。Router-id 是一个32比特的二进制数,也经常表示为点分十进制数。如果在执行ospf命令时不指定router-id,则路由器会根据某种规则自动生成一个值来作为router-id。
#配置R1
system-view
ospf router-id 11.1.1.1 //在R1上使能OSPF进程,并且指定R1的Router-ID为11.1.1.1
#配置R2
system-view
ospf router-id 22.2.2.2 //在R2上使能OSPF进程,并且指定R1的Router-ID为22.2.2.2
#配置R3
system-view
ospf router-id 33.3.3.3 //在R3上使能OSPF进程,并且指定R1的Router-ID为33.3.3.3
根据网络规划来指定运行OSPF协议的接口以及些接口所在的区域。
#配置R1
area 0
network 12.0.0.0 0.255.255.255
network 13.0.0.0 0.255.255.255
area 1
network 1.0.0.0 0.255.255.255
network 172.16.0.0 0.0.0.255
quit
#配置R2
area 0
network 12.0.0.0 0.255.255.255
network 23.0.0.0 0.255.255.255
quit
area 2
network 2.0.0.0 0.255.255.255
network 10.0.0.0 0.255.255.255
quit
#配置R3
area 0
network 13.0.0.0 0.255.255.255
network 23.0.0.0 0.255.255.255
quit
area 3
network 3.0.0.0 0.255.255.255
network 192.168.0.0 0.0.0.255
quit
display ospf [process-id] peer //查看路由器的邻居信息
回显信息中的第一个"State:Full”表明,成功建立了邻接关系。
Display ospf [process-id] routing //查看路由器的OSPF路由表
命令network address wildcard-mask
如果wildcard-mask中的某一个比特位的取值为0,则该IP地址中的对应比特位的取值必须与address中的对应比特位的取值相同。
如果address为12.0.0.0,Wildcard-mask为8.0.0.1,则它们所表示的IP地址集合中共有4个IP地址,这4个IP地址分别是:12.0.0.0、12.0.0.1、4.0.0.0、4.0.0.1。
如果address为12.0.0.0,wildcard-mask为0.255.255.255,则它们所表示的IP地址集合中包含了范围在12.0.0.0~12.255.255.255的所有16777216个IP地址。