一、项目背景 OSPF路由协议原理与配置方式
(一)OSPF概述
OSPF是一种典型的链路状态路由协议,启用OSPF协议的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,再通过SPF算法计算出到达每一个网络的最佳路由。
OSPF作为一种内部网关协议(Interior Gateway Protocol,IGP,其网关和路由器都在同一个自治系统内部),用于在同一个自治域(AS)中的路由器之间发布路由信息。运行OSPF的每一台路由器中都维护一个描述自治系统拓扑结构的统一的数据库,该数据库由每一个路由器的链路状态信息(该路由器可用的接口信息、邻居信息等)、路由器相连的网络状态信息(该网络所连接的路由器)、外部状态信息(该自治系统的外部路由信息)等组成。所有的路由器并行运行着同样的算法(最短路径优先算法SPF),根据该路由器的拓扑数据库,构造出以它自己为根节点的最短路径树,该最短路径树的叶子节点是自治系统内部的其他路由器。当到达同一目的路由器存在多条相同代价的路由时,OSPF能够在多条路径上分配流量,实现负载均衡。
OSPF不同于距离矢量协议(RIP),它有如下特性:
支持大型网络、路由收敛快、占用网络资源少。
无路由环路。
支持VLSM和CIDR。
支持等价路由。
支持区域划分、构成结构化的网络、提供路由分级管理。
1.路由器ID──Router ID
(1)通过router-id命令指定的路由器ID最为优先。
Router(config-router)# router-id 1.1.1.1
(2)选择具有最高IP地址的环回接口。
Router(config)# int loopback 0
Router(config)# ip addr 10.1.1.1 255.255.255.255
(3)再选择具有最高IP地址的已激活的物理接口。
2.邻居(Neighbors)
OSPF首先建立毗邻关系。路由器A从自己的端口向外组播发送HELLO分组,向外通告自己的路由器ID等,所有与路由器A物理上直连的、且同样运行OSPF协议路由器,就可能成为邻居。两台路由器处于Two-way状态建立了邻居关系。
3.邻接(Adjacency)
相邻的路由器B如果收到这个Hello报文,就将这个报文内路由器A的ID信息加入自己的Hello报文内。如果路由器A的某端口收到从其他路由器B发送的含有自身ID信息的Hello报文,则它根据该端口所在的网络类型来确定是否可以建立邻接关系。两台路由器处于FULL状态时称建立了邻接关系。
4.链路状态(Link-State)
链路的工作状态是正常工作,还是发生故障,与此相关的信息称为链路状态。
OSPF路由器收集其所在网络区域上各路由器的连接状态信息,即链路状态信息(Link-State),生成链路状态数据库(Link-State Database)。路由器掌握了该区域上所有路由器的链路状态信息,也就等于了解了整个网络的拓扑状况。
5.链路状态公告LSA(Link-State Advertisement)、链路状态数据库LSDB
OSPF路由器之间使用链路状态通告(LSA)来交换各自的链路状态信息,并把获得的信息存储在链路状态数据库LSDB中。
根据路由器的类型不同,定义了7种类型的LSA。LSA中包括的信息有:路由器的RID,邻居的RID,链路的带宽,路由条目,掩码等信息。
路由器LSA(第1类LSA)由区域内所有路由器产生,并且只能在本区域内泛洪。这些最基本的LSA列出了路由器所有的链路和接口、链路状态及代价。
6.链路开销
OSPF路由协议通过计算链路的带宽来计算最佳路径的选择。每条链路根据带宽不同具有不同的度量值,这个度量值在OSPF路由协议中称作“开销(Cost)”。通常,10Mbps的以太网的链路开销是10,16Mbps令牌环网的链路开销是6,FDDI或快速以太网的开销是1,2M的串行链路的开销是48。
两台路由器之间路径开销之和的最小值为最佳路径。
7.邻居表、拓扑表、路由表
OSPF路由协议维护3张表:邻居表、拓扑表、路由表。最基础的就是邻居表。
路由器通过发送HELLO包,将与其物理直连的、同样运行OSPF路由协议的路由器作为邻居放在邻居表中。
当路由器建立了邻居表之后,运行OSPF路由协议的路由器会互相通告自己所了解的网络拓扑,从而建立拓扑表。在一个区域内,一旦收敛,所有的路由器具有相同的拓扑表。
当完整的拓扑表建立起来后,路由器便会按照链路带宽的不同,使用最短路径优先SPF算法,从拓扑表中计算出最佳路由,放在路由表中。
8.指定路由器(Designative Router,DR)
在接口所连接的各毗邻路由器之间具有最高优先级的路由器作为DR。端口的优先权值从0到255 ,在优先级相同的情况下,选最高路由器ID的作为DR。
因此,DR具有:接口最高优先级 + 最高路由器ID。
9.备份指定路由器BDR(Backup Designative Router,BDR)
在各毗邻路由器之间有次高优先级的路由器 + 次高路由器ID作为BDR。
10.OSPF网络类型
根据路由器所连接的物理网络不同,OSPF将网络划分为四种类型:广播多路访问型、非广播多路访问型、点到点型、点到多点型。
广播多路访问型网络,如:以太网Ethernet、令牌环网Token Ring、FDDI。选举DR和BDR。
非广播多路访问型网络,如:帧中继Frame Relay、X.25、SMDS。选举DR和BDR。
点到点型网络,如:PPP、HDLC。
11.OSPF的区域
OSPF引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域”(Area),“主干”的部分称为“主干区域”。每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态,同一区域的链路状态数据库保持同步,使得每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。
多区域的OSPF必须存在一个主干区域(Area0) ,主干区域负责收集非主干区域发出的汇总路由信息,并将这些信息返还给到各区域。
OSPF区域不能随意划分,应该合理地选择区域边界,使不同区域之间的通信量最小。在实际应用中区域的划分往往不是根据通信模式而是根据地理或政治因素来完成的。分区域的好处:
(1)减少路由更新。
(2)加速收敛。
(3)限制不稳定到一个区域。
(4)提高网络性能。
(二)单区域OSPF的基本配置
1.单区域OSPF基本配置步骤
定义路由器ID。定义网络中各路由器的逻辑环回接口IP地址,从而得到相应的路由器ID。
如果一台路由器在一个接口上是DR,而另一个接口上不是DR,则不能将此路由器的ID定义太大,否则,无论哪个接口均成为DR。确定路由器ID的步骤:
(1)通过router-id命令指定的最为优先。
(2)最高的环回接口地址次之,使用环回接口通常是32位掩码长度,可用以下命令修改网络类型。并使路由条目的掩码长度和通告保持一致。
R1(config)# int loopback0
R1(config-if)# ip ospf network point-to-point
用路由器loopback口的IP地址作为Router ID。这样做有很多的好处,其中最大的好处就是:loopback口是一个虚拟的接口,而并非一个物理接口。只要该接口在路由器使用之初处于开启状态,则该路由器的router id就不会改变(除非有新的loopback口被用户创建并配置以更大的IP地址)。它并不像真正的物理接口,物理接口在线缆被拔出的时候处于down的状态,此时,整个路由器就要重新计算其router id,比较烦琐,也造成不必要的开销。
(3)最后是最高的活动物理接口的IP地址后定义路由器的接口优先级别,使其在此接口上成为DR,启动路由进程,发布接口。
2.对应的命令举例
(1)定义路由器的ID。
Router(config)# interface loopback 0
Router(config-if)# ip address 172.16.17.5 255.255.255.255
(2)定义路由器接口优先级。
Router(config)# interface S1/2
Router(config-if)# ip ospf priority 200
(3)启动路由进程,process-id为进程号,在锐捷中不需要此项,而是自动产生。它只有本地含义,每台路由器有自己独立的进程。各路由器之间互不影响。
Router(config)# router ospf [process-id]
如:
Router(config)# router ospf 1
(4)用network命令ospf运行的接口,并将网络指定到特定的区域。address 为路由器的自连接口IP地址,inverse-mask为反码,area-id为区域号。 区域号可以用十进制数表示,也可用IP地址表示,如0或0.0.0.0为主干区域。
Router(config-router)# network address inverse-mask area [area-id]
如:
Router(config)# network 10.2.1.0 0.0.0.255 area 0
Router(config)# network 10.64.0.0 0.0.0.255 area 0
3.OSPF邻居关系不能建立的常见原因
(1)hello间隔和dead间隔不同。
(2)区域号码不一致。
(3)特殊区域(如stub,nssa等)区域类型不匹配。
(4)认证类型或密码不一致。
(5)路由器ID相同。
(6)Hello包被ACL deny。
(7)链路上的MTU不匹配。
(8)接口下OSPF网络类型不匹配。
二、任务实施 OSPF路由协议配置与管理
具备在路由器上配置动态路由OSPF的能力。
假设校园网通过1台三层交换机连到校园网出口路由器,路由器再和校园外的另一台路由器连接,现做适当配置,实现校园网内部主机与校园网外部主机的相互通信。
本任务以两台R1700路由器、1台3层交换机为例。S3550上划分有Vlan10和Vlan50,其中Vlan10用于连接Router1,Vlan50连接校园网主机。
路由器分别命名为Router1和Router2,路由器直接通过串口采用V35 DCE和DTE电缆连接,DCE端连接到Router1上。
PC1的IP地址和缺省网关分别为172.16.5.11和172.16.5.1, PC2的IP地址和缺省网关分别为172.16.3.22和172.16.3.1,子网掩码都是255.255.0.0。
OSPF(Open Shortest Path First,开放式最短路径优先)协议是目前网络中应用最广泛的路由协议之一,属于内部网关路由协议,能够适应各种规模的网络环境,是典型的链路状态(link-state)协议。
OSPF路由协议通过向全网扩散本设备的链路状态信息,使网络中每台设备最终同步一个具有全网链路状态的数据库(LSDB),然后路由器采用SPF算法,以自己为根,计算到达其他网络的最短路径,最终形成全网络路由信息。
OSPF属于无类路由,支持VLSM(变长子网掩码),OSPF是以组播的形式进行链路状态通告的。
在大规模的网络环境中,OSPF支持区域的划分,降网络进行合理规划。划分区域时必须存在area0(骨干区域),其他区域和骨干区域直接相连,或通过虚链路的方式连接。
实现网络的互连互通,从而实现信息的共享和传递。
S2760-24(1台)、R1700路由器(两台)、V35线缆(1根)、交叉线或直连线(1条)。
1基本配置。
三层交换机基本配置。
基本输入:
Switch#configure terminal
Switch(config)#hostname S3550
S3550(config)#vlan 10
S3550(config-vlan)#exit
S3550(config)#vlan 50
S3550(config-vlan)#exit
S2550(config)#interface fa 0/1
S3550(config-if)#switchport access vlan 10
S3550(config-if)#exit
S3550(config)#interface fa 0/5
S3550(config-if)#switchport access vlan 50
S3550(config-if)#exit
S3550(config)#interface vlan 10 !创建VLAN虚接口,并配置IP
S3550(config-if)#ip address 172.16.1.2 255.255.255.0
S3550(config-if)#no shutdown
S3550(config-if)#exit
S3550(config)#interface vlan 50
S3550(config-if)#ip address 172.16.5.1 255.255.255.0
S3550(config-if)#no shutdown
S3550(config-if)#exit
验证测试:
S3550#show vlan
路由器的基本配置:
Router1(config)#interface fastethernet 1/0
Router1(config-if)#ip address 172.16.1.1 255.255.255.0
Router1(config-if)#no shutdown
Router1(config=if)#exit
Router1(config)#interface serial 1/2
Router1(config-if)#ip address 172.16.2.1 255.255.255.0
Router1(config-if)#clock rate 64000
Router1(config-if)#no shutdown
Router2(config)#interface fastethernet 1/0
Router2(config-if)#ip address 172.16.3.1 255.255.255.0
Router2(config-if)#no shutdown
Router2(config=if)#exit
Router2(config)#interface serial 1/2
Router2(config-if)#ip address 172.16.2.2 255.255.255.0
Router2(config-if)#no shutdown
验证测试:验证路由器接口的配置和状态。
Router1#show ip interface brief
Router2#show ip interface brief
2配置OSPF路由协议。
基本输入:
S3550-24配置OSPF:
S3550(config)#router ospf !开启OSPF路由协议进程
S3550(config-router)network 172.16.5.0 0.0.0.255 area 0 !申请直连网段信息,并分配区域号
S3550(config-router)#network 172.16.1.0 0.0.0.255 area 0
S3550(config-router)#end
Router1配置ospf:
Router1(config)#router ospf
Router1(config-router)network 172.16.1.0 0.0.0.255 area 0
Router1(config-router)#network 172.16.2.0 0.0.0.255 area 0
Router1(config-router)#end
Router2配置ospf:
Router2(config)#router ospf
Router2(config-router)network 172.16.2.0 0.0.0.255 area 0
Router2(config-router)#network 172.16.3.0 0.0.0.255 area 0
Router2(config-router)#end
3查看验证三台路由器设备的路由表,是否自动学习了其他网段的路由信息。
基本输入:
S3550#show ip route
Router1#show ip route
Router2#show ip route
4测试网络的连通性。
(1)在串口上配置时钟频率时,一定要在电缆DCE端的路由器上配置,否则链路不通。
(2)在申明直连网段时,注意要写该网段的反掩码。
(3)在申明直连网段时,必须指明所属的区域。