使用OSPF的意义
OSPF是一种链路状态协议。一般链路状态协议都需要向整个网络告知邻居信息,使各节点只需要维护网络的“拓扑图”,而不必交换各自连接目的站点的的距离,路由器根据拓扑生成各自的路由表。OSPF基于接口的通信量、通畅状况、往返用时、可靠性等得出路由的成本,来达到平衡网络负荷的要求。OSPF按照路由器储存的网络信息,通过SPF最短路径算法,得出最佳路由并保持连接,而不必定期地大量交换信息。OSPF的出现克服了原本RIP存在的不足,它通过组播方式完成对网络拓扑的迅速汇聚,在快速连接、减轻系统负荷、稳定链接方面表现突出,有网络资源占用少、收敛速度快、支持大规模网络等优势。
OSPF协议的运行原理
OSPF路由协议是一种典型的链路状态的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统,即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表。
OSPF的三张表
1、邻居表
OSPF用邻居机制来发现和维持路由的存在,邻居表存储了双向通信的邻居关系OSPF路由器列表的信息。
2、拓扑表
OSPF用LSA(link state Advertisement 链路状态通告)来描述网络拓扑信息,然后OSPF路由器用拓扑数据库来存储网络的这些LSA。
3、OSPF路由表
对链路状态数据库进行SPF(Dijkstra)计算,而得出的OSPF路由表。
一、建立邻接关系-Hello包
1.Hello包用来发现OSPF邻居并建立相邻关系,通过组播地址发送给所有SPF路由器。
2.通告两台路由器建立相邻关系所必需的一些参数。
3.在多路访问网络中选举指定路由器(DR)与备用指定路由器(BDR)
二、必要的时候进行DR的选举
1.为了减小OSPF中的流量,OSPF会选举一个指定路由器(DR)与一个备用指定路由器(BDR)
2.按照端口的优先级选举DR与BDR,如果优先级相等则根据路由器的ID选举DR与BDR,ID高的为DR 3.DR负责使用该变化信息更新其他所有OSPF路由器。
4.BDR负责监控DR,当DR出现故障时,BDR会接替DR的工作。
三、发现路由
1.路由器与路由器之间首先利用Hello包的路由器ID信息确认主从关系,然后主从路由器相互交换链路状态信息,交换完成后建立完全邻接关系,同时邻接路由器拥有自己独立的、完整的链路状态数据库。
四、选择合适的路由器
1.当每台路由器都拥有完整的独立的链路状态数据库后,OSPF路由器会根据数据库中的内容,运行SPF算法,计算出到每个目的地的网络的最佳路径,并添加到路由表中。
五、维护路由信息
1.当某条链路出现故障时,会自动及时的通知其他OSPF路由器,避免数据的无法传输。
OSPF协议的配置
实验拓扑图
R1路由器IP地址与基本配置
R1>enable \\进入特权模式
R1#configure terminal \\进入全局配置模式
R1(config)#interface fastEthernet 0/0 \\进入fastethernet 0/0接口配置模式
R1(config-if)#no shutdow \\开启接口
R1(config-if)#ip address 192.168.1.1 255.255.255.0 配置IP地址
R1(config-if)#exit \\退出接口模式
R1(config)#interface serial 0/0/1
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.3.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface serial 0/0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.4.1 255.255.255.0
R2路由器IP地址与基本配置
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#int
R2(config)#interface f
R2(config)#interface fastEthernet 0/0
R2(config-if)#no shutdown
R2(config-if)#ip add 192.168.2.1 255.255.255.0
R2(config-if)#exit
R2(config)#interface serial 0/0/0
R2(config-if)#no shutdown
R2(config-if)#ip add 192.168.3.2 255.255.255.0
R2(config-if)#exit
R2(config)#interface serial 0/0/1
R2(config-if)#no shutdown
R2(config-if)#ip add 192.168.5.1 255.255.255.0
R3路由器IP地址与基本配置
Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface serial 0/0/0
R3(config-if)#no shutdown
R3(config-if)#ip add 192.168.4.2 255.255.255.0
R3(config-if)#exit
R3(config)#interface serial 0/0/1
R3(config-if)#no shutdown
R3(config-if)#ip add 192.168.5.2 255.255.255.0
R3(config-if)#exit
R3(config)#interface serial 0/1/0
R3(config-if)#no shutdown
R3(config-if)#ip add 192.168.6.1 255.255.255.0
R4路由器IP地址与基本配置
Router>enable
Router#configure terminal
Router(config)#interface serial 0/0/0
Router(config-if)#no shutdown
Router(config-if)#ip add 192.168.6.2 255.255.255.0
Router(config-if)#exit
Router(config)#hostname R4
R4(config)#interface fastEthernet 0/0
R4(config-if)#no shutdown
R4(config-if)#ip add 11.10.0.1 255.255.255.0
测试R1路由器与R2、R3路由器之间的连通性。当出现5个!(感叹号)时即代表正常连通。
测试R3路由器与R4路由器之间的连通性。
测试客户端、服务器与其直连路由器的连通性
**************** 此实验中没有配置routeid ****************
route id 是这个路由器众多接口ip地址的一个。选择这个id作为这个路由器的代表。就像一个班的班长代表这个班级一样。如何选择这个ID,有一个规则。首先先看是否有回环接口,如果只一个有回环接口,则直接选择这个回环接口当ID,如果有多个回环接口则,选择ip地址大的那个回环接口。如果没有回环接口,则选择普通接口的ip地址大的那一个作为ID。
OSPF配置:
路由器1 OSPF配置
R1>enable
R1#configure terminal
R1(config)#router ospf 1 \\设置进程
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0 \\宣告网络与设置区域
R1(config-router)#network 192.168.3.0 0.0.0.255 area 0
R1(config-router)#network 192.168.4.0 0.0.0.255 area 0
R1#write \\保存(注:命令前加do,意思为强制执行)
Building configuration...
[OK]
路由器2 OSPF配置
R2>enable
R2#configure terminal
R2(config)#router ospf 1
R2(config-router)#network 192.168.2.0 0.0.0.255 area 0
R2(config-router)#network 192.168.3.0 0.0.0.255 area 0
R2(config-router)#network 192.168.5.0 0.0.0.255 area 0
R2(config-router)#do write
Building configuration...
[OK]
路由器3 OSPF配置
R3>enable
R3#conf
R3#configure terminal
R3(config)#router ospf 1
R3(config-router)#network 192.168.4.0 0.0.0.255 area 0
R3(config-router)#network 192.168.5.0 0.0.0.255 area 0
R3(config-router)#network 192.168.6.0 0.0.0.255 area 0
R3(config-router)#do write
Building configuration...
[OK]
路由器4 OSPF配置
R4>enable
R4#configure terminal
R4(config)#router ospf 1
R4(config-router)#network 11.10.0.0 0.0.0.255 area 0
R4(config-router)#network 192.168.6.0 0.0.0.255 area 0
R4(config-router)#do write
Building configuration...
[OK]
查看R1、R2、R3、R4路由器的路由表
查看R1、R2、R3、R4路由器的配置信息
此试验仅为CISCO中最为基础的OSPF协议实验。如有错误,可以指出,共同学习!