一:实验原理
OSPF路由协议属于典型的链路状态路由协议,支持可变长子网掩码VLSM和CIDR,触发更新,收敛迅速,组播更新链路状态数据库摘要信息,划分区域,支持层次的大型网络结构。开放式最短路径优先协议(OSPF Open shortest Path First),它服务于IP网络,是一个内部网关协议,工作在一个自治系统中,用于自治系统内部的路由选择信息交换。它使用的协议号是89.
OSPF具有以下特点:
l 适用于大规模网络,没有跳数限制。
l 路由收敛速度快。
l 不会产生路由环路。
l 支持可变长子网掩码VLSM。
l 采用组播地址发送协议报文,节省链路资源。
l 基于路由器的每个端口的代价来决定最优路径,cost=100/链路带宽。
l 支持区域划分,方便在大规模网络中的管理。
l 支持等代价负载均衡。
l 支持验证。
OSPF的报文类型:
l HELLO报文:用来发现及维持邻居关系。
l 数据库描述报文(DBD):用来描述本地路由器LSDB的情况。
l 链路状态请求报文(LSR):用来请求本地路由器没有的LSA。
l 链路状态更新报文(LSU):用来发送对端路由器的请求的LSA。
l 链路状态确认报文(LSAck):当路由器收到LSU后,发送LSAck进行确认。
OSPF的三张表格:
l 邻居表:通过hello包来建立邻居关系。
l 链路状态数据库(LSDB):ospf通过LSA学习到其他路由器和信息存储在LSDB中。
l 路由表:通过SPF算法,根据LSDB算出路由表。
OSPF的网络类型:
l 广播网络:进行DR和BDR的选举。比较路由器的优先级和router-id,优先考虑优先级,优先级高的为DR,优先级稍低的为BDR。其次考虑router-id(ID=0不被选举)。网络中的路由器只需与DR和BDR建立邻居关系,新加入的路由器只需与DR进行数据同步即可,不用再与网络中的其他路由器同步,节省了网路资源。非DR/BDR路由器通过组播地址224.0.0.6将链路信息发给DR/BDR,然后DR/BDR通过224.0.0.5将链路信息发送给非DR/BDR。hello包的发送间隔是10秒,宕机时间40秒
l 无广播多路访问(NBMA):在帧中继、ATM和X.25这样的网络中不支持广播,ospf在这些网络当中也要选举出DR/BDR。hello包的发送间隔时间是30秒,宕机时间间隔是120秒
l 点到点:点到点网络一般采用ppp或者hdlc来进行数据的封装。ospf的hello包的发送间隔10秒,宕机间隔40秒
l 点到多点:不需要DR和BDR的选举,邻居是自动发现的,默认的hello间隔是30秒,宕机间隔120秒
OSPF的路由器类型:
l 内部路由器:不连接区域外部的路由器,只维护本区域内的链路状态信息。
l 区域边界路由器(ABR):连接不同区域的路由器,需要维护多个区域的链路状态信息。
l 骨干路由器:处于骨干区域(area 0)的路由器,只需要维护骨干区域的链路状态信息
l 自治系统边界路由器(ASBR):连接不同自治系统的路由器,通常需要在ASBR上运行多种协议。
OSPF区域:
l 骨干区域(area 0):一个自治系统只能有一个骨干区域,且每一个非骨干局域都需要和骨干区域相连。骨干区域起到了数据中转的作用,所以在此区域的路由器要求运行速度快、稳定、路由器较少。
l 标准区域:骨干区域以外的区域称为标准区域,每一个标准区域都要和骨干区域相连。如果没有直接相连则需要在与骨干区域相连的区域上配置虚链路,配置命令Router(config-router)#area area-id virtual-link router-id
l 末节区域:为了减少路由条目,末节区域只接受域间路由和默认路由。配置命令:(在所有末节区域的路由器上都要配置此令)Router(config-router)#area area-id stub
l 完全末节区域:为了减少路由条目,完全末节区域只接受默认路由,通过默认路由向外转发数据。配置命令Router(config-router)#area area-id stub no-summary
二:案例
1. OSPF单区域配置:
拓扑图(包括地址方案):
单区域两个路由直连
配置(详细步骤以及说明):
R1:
Router#en
Router#conf te
Router(config)#int s1/0
Router(config-if)#ip add 192.168.2.1 255.255.255.0
Router(config-if)#no shut
S1/0配置Ip地址成功:
Router(config-if)#exit
Router(config)#int loo 1
Router(config-if)#ip add 192.168.1.1 255.255.255.0
Router(config-if)#no shut
配置loopback端口成功
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#network 192.168.1.0 0.0.0.255 area 0
Router(config-router)#network 192.168.2.0 0.0.0.255 area 0
Router(config-router)#exit
配置路由ospf
R2:
Router>en
Router#conf te
Router(config)#int s1/0
Router(config-if)#ip add 192.168.2.2 255.255.255.0
Router(config-if)#no shut
Router(config)# exit
Router(config)#int loo 1
Router(config-if)#ip add 192.168.3.1 255.255.255.0
Router(config-if)#no shut
Router(config-if)#exit
Router(config)#router ospf 2
Router(config-router)#network 192.168.2.0 0.0.0.255 area 0
Router(config-router)#network 192.168.3.0 0.0.0.255 area 0
Router(config-router)#exit
Router(config)#exit
Router#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/23/52 ms
在R2的serial 1/0端口pingR1上的loopback端口成功。网络连通。
2. OSPF多区域配置:
拓扑图(包括地址方案):
配置(详细步骤以及说明):
R1:
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int loo 0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut
R1(config)#int ser 1/0
R1(config-if)#ip add 192.168.2.1 255.255.255.0
R1(config-if)#no shut
R1(config)#router ospf 100
R1(config-router)#network 192.168.1.0 0.0.0.255 area 1
R1(config-router)#network 192.168.2.0 0.0.0.255 area 0
R2:
R2#conf t
R2(config)#int se 1/0
R2(config-if)#ip add 192.168.2.2 255.255.255.0
R2(config-if)#no shut
R2(config)#int ser 1/1
R2(config-if)#ip add 192.168.3.1 255.255.255.0
R2(config-if)#no shut
R2(config)#router ospf 200
R2(config-router)#network 192.168.2.0 0.0.0.255 area 1
R2(config-router)#network 192.168.3.0 0.0.0.255 area 0
R3:
R3#conf t
R3(config)#int ser 1/0
R3(config-if)#ip add 192.168.4.1 255.255.255.0
R3(config-if)#no shut
R3(config)#int ser 1/1
R3(config-if)#ip add 192.168.3.2 255.255.255.0
R3(config-if)#no shut
R3(config)#router ospf 300
R3(config-router)#network 192.168.3.0 0.0.0.255 area 0
R3(config-router)#network 192.168.4.0 0.0.0.255 area 2
R4:
R4#conf t
R4(config)#int ser 1/0
R4(config-if)#ip add 192.168.4.2 255.255.255.0
R4(config-if)#no shut
R4(config)#int loo 0
R4(config-if)#ip add 192.168.5.1 255.255.255.0
R4(config-if)#no shut
R4(config)#router ospf 400
R4(config-router)#network 192.168.4.0 0.0.0.255 area 2
R4(config-router)#network 192.168.5.0 0.0.0.255 area 2
3. OSPF引入IGRP:
拓扑图 (包括地址方案):
配置:
R1:
int fa0/0
ip add 192.168.1.1 255.255.255.0
no shut
in s1/0
ip add 192.168.2.1 255.255.255.0
no shut
Router igrp 100
Network 192.168.1.0
Network 192.168.2.0
R2:
in s1/0
ip add 192.168.2.2 255.255.255.0
no shut
in s1/1
ip add 192.168.e.1 255.255.255.0
no shut
Router igrp 100
Network 192.168.3.0
Network 192.168.2.0
R3:
in s1/1
ip add 192.168.3.2 255.255.255.0
no shut
in s1/1
ip add 192.168.4.1 255.255.255.0
no shut
Routet igrp 100
Network 192.168.3.0
redistribute ospf 10 metric 1000 1000 255 100 10
Router ospf 10
Network 192.168.4.0 0.0.0.255 area 0
redistribute ospf 10 metric 1000 1000 255 100 10
R4:
Int fa 0/0
Ip add 192.168.5.1 255.255.255.0
No shut
Int s1/2
Ip add 192.168.4.2 255.255.255.0
No shut
Router ospf 10
Network 192.168.5.0 0.0.0.255 area 0
Network 192.168.4.0 0.0.0.255 area 0