开放最短路径优先 (Open Shortest Path FirstsP)OSPF)协议是一个内部网关路由协议,用于在单一自治系统 (AutonomousSystem,AS)内决策路由。与RIP 相比,OSPF 是链路状态路由协议。所谓销路就是路由器用来连接网络的接口。链路状态用来描述路由器接口及其相邻路由器的关系。
链路状态路由协议在它们的路由更新中会比距离矢量路由协议包含更多的信息。因此,链路状态路由协议需要更好的 CPU,因而具有更快的收敛速度使用链路状态路由协议的路由器需要将网络的所有细节以泛洪的方式通告给其他所有路由器,然后,网络中的每台路由器都具有相同的网络信息,这些信息称为链路状态数据库(LSDB),LSDB 将被用于以后的路由发现中。因为泛洪的详细信息非常多,所以相比于距离矢量路由协议,运行链路状态协议的路由器需要占用更多的资源。
OSPF 是最流行的链路状态路由协议,在路由更新中通告的信息称为链路状态通告(LSA)。LSA 有两种主要类型,一是路由器 LSA,包括路由器ID路由器接口的IP 地址、每个接口的状态 (up 或 down)以及与接口相关的开销(即度量值);二是链路 LSA,它是每条链路的标识和与那条链路相连的路由器,也包括链路状态(up 或 down)。
使用链路状态路由协议时,每台路由器创建自己的 LSA,并在路由更新中泛洪LSA给其他所有路由器,直到网络中所有路由器都收到这个 LSA。最后每台路由器都有每个路由器的 LSA 和所有链路LSA。
为了向非常大的网络提供可伸缩性,OSPF 支持两个重要的概念:自治系统(AS)和区域。
AS 是在一个管理控制下的一组网络,它可以是公司、公司的分部或集团公司。AS可以为路由选择协议提供清楚的边界,从而提供某些功能。例如,可以控制路由器传播网络号的距离。另外,还可以控制通告给其他自治系统的路由以及控制接收这些系统通告的路由。
要将一个自治系统与其他自治系统区别开来,可以给每个 AS 分配一个范围在1~65 535的唯一号码。因特网地址分配管理机构(IANA) 负责这些号码的分配。如同 IP 地址有公有和私有地址之分,AS 号也有公有和私有之分。如果要连接到因特网骨干,那就需要一个公有的AS号;如果只将自己的内部网络划分成不同的系统,那么只使用私有 AS 号。需要强调的是,OSPF 明白 AS 概念,并不需要配置AS 号。但是,其他协议需要.例如 EIGRP。
区域用于提供分层路由选择,一般用于控制路由选择信息何时以及如何通过网络共享。一个区域就是有相同区域标志的一组路由器和网络的集合,在同-区域内的路由器有相同的链路状态数据库。OSPF 实施两层的分层:骨干和连接到骨千的区域。每个区域都给予了一个唯一的编号,长度是 32 bit。区域号可以由单个的十进制数表示,例如 1,也可以用点分十进制格式表示,例如0.0.0.1。区域0是一个特殊的区域,表示 OSPF 网络的顶层,即骨干区域。不同区域交换路由信息必须经过区域 0。通过正确的IP寻址设计,可以在区域间汇总路由选择信息。通过汇总路由选择信息,可以为每个区域使用一条汇总路由,从而减少了路由器需要知道的信息量。
router ospf <进程号>
进程号在1- 65 535 范围内可以随意设置,只用于区分正在同一路由器上运行的不同 OSPF进程。某台路由器可能是两个 OSPF 自治系统之间的边界路由器,为在路由器上区分它们,要给它们分配唯一的进程号。注意这个进程号不需要在不同路由器之间匹配,它与自治系统号没有任何关系。
router-id A.B.C.D
例如,router-id 1.1.1.1 就是给路由器指定 ID 号为 1.1.1.1。
OSPF 在计算最佳路径时,需要用ID 号标识路由器。OSPF 确定路由器ID遵循如下顺序:
最优先的是在 OSPF 进程中用命令 router-id 指定路由器的ID号;
如果没有指定路由器ID 号,那么选择 IP 地址最大的环回接口的IP 地址为ID;
如果没有环回地址,就选择最大的活动的物理接口的 IP 地址为路由器的ID号。
建议用命令 router-id 来指定路由器的ID号,这样可控性好。
network <与本路由器直连的ip子网号> <通配符> area <区域号>
路由器将限制只能在相同区域(即自治系统) 内交换子网信息,不同区域间不交换路由信息。区域号取值范围为0~4 294 967 295,区域0为主干OSPF 区域。注意,不同区域交换路由信息必须经过区域 0。某一区域要接入OSPF 路由区域 0,该区域必须至少有一台路由器为区域边界路由器,它既参与本区域路由又参与区域0路由。区域号也可以是IP 地址的格式,例如区域0可表示为 0.0.0.0。
area <区域号> range <子网范围掩码>
show ip ospf
show ip ospf database
show ip ospf interface
路由器 |
端口号 |
IP地址 |
子网掩码 |
通配符 |
Router0 |
g0/0 |
192.168.1.1 |
255.255.255.0 |
0.0.0.255 |
g0/1 |
192.168.2.1 |
255.255.255.0 |
0.0.0.255 |
|
g0/2 |
192.168.10.1 |
255.255.255.0 |
0.0.0.255 |
|
Router1 |
g0/0 |
192.168.1.2 |
255.255.255.0 |
0.0.0.255 |
g0/1 |
192.168.3.1 |
255.255.255.0 |
0.0.0.255 |
|
g0/2 |
192.168.20.1 |
255.255.255.0 |
0.0.0.255 |
|
Router2 |
g0/0 |
192.168.3.2 |
255.255.255.0 |
0.0.0.255 |
g0/1 |
192.168.2.2 |
255.255.255.0 |
0.0.0.255 |
|
g0/2 |
192.168.30.1 |
255.255.255.0 |
0.0.0.255 |
|
Router3 |
g0/0 |
192.168.10.2 |
255.255.255.0 |
0.0.0.255 |
g0/1 |
172.10.10.254 |
255.255.255.0 |
0.0.0.255 |
|
Router4 |
g0/0 |
192.168.20.2 |
255.255.255.0 |
0.0.0.255 |
g0/1 |
172.10.20.254 |
255.255.255.0 |
0.0.0.255 |
|
Router5 |
g0/0 |
192.168.30.2 |
255.255.255.0 |
0.0.0.255 |
g0/1 |
172.10.30.254 |
255.255.255.0 |
0.0.0.255 |
PC |
IP地址 |
网关 |
子网掩码 |
PC0 |
172.10.10.1 |
172.10.10.254 |
255.255.0.0 |
PC1 |
172.10.20.1 |
172.10.20.254 |
255.255.0.0 |
PC2 |
172.10.30.1 |
172.10.30.254 |
255.255.0.0 |
pc配置方法都相同,以一个pc为例
Router0>en
Router0#conf t
Router0(config)#int g0/0
Router0(config-if)#ip add 192.168.1.1 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/1
Router0(config-if)#ip add 192.168.2.1 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/2
Router0(config-if)#ip add 192.168.10.1 255.255.255.0
Router0(config-if)#no sh
Router0(config-if)#ex
Router0(config)#router ospf 1
Router0(config-router)#router-id 1.1.1.1
Router0(config-router)#network 192.168.1.1 0.0.0.255 area 0
Router0(config-router)#network 192.168.2.1 0.0.0.255 area 0
Router0(config-router)#network 192.168.10.1 0.0.0.255 area 0
Router0>en
Router0#conf t
Router0(config)#int g0/0
Router0(config-if)#ip add 192.168.1.2 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/1
Router0(config-if)#ip add 192.168.3.1 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/2
Router0(config-if)#ip add 192.168.20.1 255.255.255.0
Router0(config-if)#no sh
Router0(config-if)#ex
Router0(config)#router ospf 1
Router0(config-router)#router-id 2.2.2.2
Router0(config-router)#network 192.168.1.2 0.0.0.255 area 0
Router0(config-router)#network 192.168.3.1 0.0.0.255 area 0
Router0(config-router)#network 192.168.20.1 0.0.0.255 area 0
Router0>en
Router0#conf t
Router0(config)#int g0/0
Router0(config-if)#ip add 192.168.3.2 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/1
Router0(config-if)#ip add 192.168.2.2 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/2
Router0(config-if)#ip add 192.168.30.1 255.255.255.0
Router0(config-if)#no sh
Router0(config-if)#ex
Router0(config)#router ospf 1
Router0(config-router)#router-id 3.3.3.3
Router0(config-router)#network 192.168.3.2 0.0.0.255 area 0
Router0(config-router)#network 192.168.2.2 0.0.0.255 area 0
Router0(config-router)#network 192.168.30.1 0.0.0.255 area 0
Router0>en
Router0#conf t
Router0(config)#int g0/0
Router0(config-if)#ip add 192.168.10.2 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/1
Router0(config-if)#ip add 172.10.10.254 255.255.255.0
Router0(config-if)#no sh
Router0(config-if)#ex
Router0(config)#router ospf 1
Router0(config-router)#router-id 4.4.4.4
Router0(config-router)#network 192.168.10.2 0.0.0.255 area 0
Router0(config-router)#network 172.10.10.254 0.0.0.255 area 0
Router0>en
Router0#conf t
Router0(config)#int g0/0
Router0(config-if)#ip add 192.168.20.2 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/1
Router0(config-if)#ip add 172.10.20.254 255.255.255.0
Router0(config-if)#no sh
Router0(config-if)#ex
Router0(config)#router ospf 1
Router0(config-router)#router-id 5.5.5.5
Router0(config-router)#network 192.168.20.2 0.0.0.255 area 0
Router0(config-router)#network 172.10.20.254 0.0.0.255 area 0
Router0>en
Router0#conf t
Router0(config)#int g0/0
Router0(config-if)#ip add 192.168.30.2 255.255.255.0
Router0(config-if)#no sh
Router0(config)#int g0/1
Router0(config-if)#ip add 172.10.30.254 255.255.255.0
Router0(config-if)#no sh
Router0(config-if)#ex
Router0(config)#router ospf 1
Router0(config-router)#router-id 6.6.6.6
Router0(config-router)#network 192.168.30.2 0.0.0.255 area 0
Router0(config-router)#network 172.10.30.254 0.0.0.255 area 0
PC0分别ping PC1、PC2
PC1 ping PC2
若有疑问可评论告知,看见了可帮忙解决。