【RIP与OSPF的区别】
RIP:计算路径的成本以跳数作为唯一的度量值,不能根据带宽来计算路径成本,
跳数最大为15跳,限制了网络的规模,收敛慢
OSPF:OSPF具有更适用于规模较大的网络环境,收敛更快速、依据带宽来计算
路径成本等。
一、OSPF的基本概念和工作过程
ØOSPF(开放式最短路径优先协议,Open Shortest Path First)
ØOSPF是基于开放标准的链路状态路由协议,它完成各路由选择协议,算法的两在主要协能“路径选择、路径交换”
ØInternet工程任务协会(IETF)于1988年开发了OSPF,其近期版本是OSPF版本2
(1)、OSPF路由协议概述
1、OSPF是内部网关路由协议
【自治系统】:AutonomousSystem,AS,是在共同管理域下的一组运行相同路由
选择协议的集合,通俗话理解为“运行一个协议进程就是AS”
【内部网关中由协议】:IGP,用在单一自治系统(AS)内决策路由,包括“RIP
OSPF、EIGRP”
【外部网关路由协议】:EGP,用于在多个自治系统之间执行路由,包括BGP
《注意》
IGP是用来解决AS内部通信的,而EGP是解决AS间通信的
2、OSPF是是链路状态路由协议
Ø距离失量路由协议中,路由器之间互相传递路由表来学习路由信息,距离失量协议的路由器只知道某个网段可以通过哪个下一跳到达和到达这个网络有多远等这样的信息,而不了解整个网络的拓扑结构
Ø链路状态路由协议通过与邻居路由器建立邻接关系,互相传递链路状态信息,来了解整个网络的拓扑结构
Ø在链路状态信息中,包含有哪些链路,这些链路与哪个路由器相边,连接的路径成本是多少等信息,因此,在链路状态路由协议收敛后,一台路由器可以了解本区域完整的链路信息
Ø在一个区域内的所有路由器都保存着完全相同的链路状态数据库
【名词解释】
邻居路由器:位于同一条物理链路或物理网段上的路由器
链路状态数据库:也称为拓扑数据库,它包含所有路由器、路由器的链路以及这
些链路的状态,还包含所有网络以及到这些网络的所有路径
邻接关系:当两台运行OSPF协议的邻居路由器的链路状态数据库达到一致(同步)时,它们就是完全邻接的
(2)、OSPF的工作过程
(RIP保存一张路由表,OSPF保存三张路由表)
【邻居列表】:列出每台路由器已经建立邻接关系的全部邻居路由器
【链路状态数据库LSDB】:列出网络中其他路由器的信息,由此显示了全网拓扑
【路由表】:列出通过SPF算法的到达每个相连网络的最佳路径
(3)、OSPF的基本概念
1、OSPF区域
a)OSPF是一种链路状态型的路由协议,不会产生环路问题,因此不需要使用最大跳数等限制来防止环路的产生
b)OSPF将自法系统分割成多个小的区域,OSPF的路由器只在区域内部学习完整的链路状态信息,而不必了解整个自治系统内部所有的链路状态
【如图所示】
Ø区域0为骨干区域,它用来连接自治系统内部的所有其他区域
Ø用来连接骨干区域和其他区域的路由器叫做边界路由器,它了解所连接的两个区域的完整的链路状态信息,并将链路状态信息汇总后发给区域内的其他路由器
Ø这样,减小了路由器保存的链路状态数据库的大小,可以解决路由器内存容量有限的问题
【区域】
Ø区域是通过一个32位的区域ID(Area ID)来标识的
Ø区域ID可以表示成一个十进制的数字,也可以表示成一个点分十进制的数字
Ø区域0(或者区域0.0.0.0)是骨干区域保留的区域ID号,OSPF的骨干区域(BackbonArea)是一个特殊的OSPF区域,它担负着区域间路由信息传播的重任
Ø在OSPF配置中,区域是分别在各个接口上定义的
2、Router ID
ØRouter ID是路由器的身份标识,可以“手工指定”和“自动选择”
ØRouter ID是在OSPF区域内唯一标识路由器的IP地址
【Cisco路由器得到Router ID的方法】
a)首先,路由器选取它所有Loopback接口上数值最高的IP地址
b)如果路由器没有配置Loopback接口的IP地址,那么路由器就在所有活动物理端口中选取一个数值最高的IP地址作为路由器的Router ID
c)用作Router ID的路由器接口不一定非要运行OSPF协议
【使用Loopback接口作为Router ID的好处】
a)Loopback接口的IP地址不会坏,比其他的任何物理端口都更稳定
b)Loopback接口是默认激活的
c)LoopbackIP地址便于识别和记忆(因为可以随便设置IP地址)
3、DR和BDR
【DR和BDR的概念】--可以比作村长和副村长
指定路由器(DesignatedRouter ,DR):DR同网络中的其他路由器建立邻接关系,并负责将网段上的变化告知它们
备份指定路由器(BackupDesignated Router ,BDR):为了实现冗余,当DR失效时,需要有一个新的指定路由来接替它,这个路由器就是BDR
【DR和BDR的选举】--在路由器上的接口来选举
自动选举DR和BDR:
Ø网段上Router ID最大的路由器被选举为DR,第二大的将被选举为BDR
Ø这种选举可能不是最佳的,例如:Cisco 7200和Cisco 3800,可能3800的ID大而被选为DR。因此,3800选举为DR不是最佳的。
手工选举DR和BDR:
Ø手工选择DR和BDR,需要设置路由器的优先级(在接口上配置的)
Ø每台路由器的接口都有一个路由器优先级(Router Priority),用一个八位的无符号整数来表示,大小范围是:0~255,数值越大,优先级越高
ØCisco路由器上默认的优先级是1,优先级为0的时候,将不参与DR和BDR的选举
Ø如果优先级相同,则需比较Router ID
OSPF的组播地址:
ØDR和BDR选举成功,其他路由器(DRother)将只与DR和BDR路由器形成邻接关系
Ø组播地址“224.0.0.5”代表所有参与OSPF的路由器(AllSPFRouter),而组播地址“224.0.0.6”只有DR和BDR路由器去侦听这个地址,但BDR只侦听不响应
Ø在广播多路访问网络上,链路更新信息先发送到224.0.0.6,再由DR路由器使用组播地址224.0.0.5泛洪更新报文到其他所有路由器
4、OSPF的度量值
ØOSPF的用来度量路径优劣的度量值称为“cost(开销、代价)”,是指从该接口发送出去的数据包的出站接口开销
Ø链路开销使用16位的无符号的整数表示,大小范围是1~65535
ØCisco公司使用默认代价是“/BW”,表示为一个整数,BW指在接口上配置的带宽,而是Cisco路由器使用的参考带宽
接口类型开销(/BW) |
Fast Ethernet 1 |
Ethernet 10 |
56k 1785 |
《总结两句话》
#到目标的度量值是所有路由器出口代价之和
#在有超过百兆带宽的网络中,需要统一规划Cost值
二,OSPF邻接关系
当两台运行OSPF协议的邻居路由器的链路状态数据库达到(同步)一致时,
它们就是完全邻接的
(1)、OSPF邻接关系的建立
1、OSPF的数据包类型
ØOSPF信息不使用TCP或UDP,它承载在IP数据包内,使用协议号‘89’
ØOSPF路由协议靠五种不同类型的包来标识它们的邻居以及更新链路状态信息,这五种类型的包使得OSPF具备了高级和复杂的通信能力
OSPF的包类型 |
|
Hello包 |
用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(DBD) |
用于向邻居发送摘要信息以同步链路状态数据库 |
链路状态请求包(LSR) |
在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
链路状态更新包(LSU) |
收到LSR后发送链路状态通告LSA,一个LSU数据包可能包含了几个LSA |
链路状态确认包(LSAck) |
确认已经收到LSU,每个LSA需要被分别确认 |
表:OSPF的包类型
2、OSPF邻接关系的建立
(OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程)
【①、失效Down状态】
这是OSPF建立交互关系的初始化状态,路由器没有与任何邻居交换信息
【②、初始init状态】
Ø路由器的各个接口通过224.0.0.5发送Hello报文“这里以R1发送Hello报文为例”
Ø当邻居路由R2收到第一个Hello报文,这时就进入Init状态。在该状态时,路由器R2已经接收到Hello报文,但自身的ID并没有出现在该Hello报文内
【③、双向2-way状态】
Ø路由器R2向路由器R1发送一个Hello回应报文,该Hello回应报文含有路由器R1的ID
Ø当路由器R1收到该Hello回应报文,发现含有自身的ID,这时就进入2-way状态,双向通信已建立。DR和BDR的选举正是这个状态完成的
(OSPF启动的第二个阶段是建立完全邻接关系)
【④、准启动Exstart状态】
在选举出DR和BDR后,路由器和就被认为是处于Exstart状态。在该状态中,DR和BDR与网络中其他路由器建立邻接关系,在这个过程中,两个邻接路由器之间建立起一个主/从(Master/slave)关系,路由器ID大的作为主路由器,用来发起通信
【⑤、交换Exchange状态】
Ø主/从路由器之间交换一个或多个数据库描述包(DBD),路由器进入Exchange状态
ØDBD包含的是链路状态数据库中的LSA条目的摘要信息,主/从路由器之间交换,DBD时要确保双方都接收到
【⑥、加载Loading状态】
如果收到的DBD有更新的LSA条目的摘要信息,路由器将向对方发送链路状态请求包(LSR)请求更详细的信息,对方路由器用链路状态更新包(LSU)回应该LSR,此过程为Loading状态
【⑦、完全邻接Full状态】
当路由器之间完成了数据库同步,它们的链路状态数据库已经完全一致,Full状态了
(2)、OSPF的网络类型
(点到点网络,点到多点网络):是邻居就是邻接,不需要选择DR和BDR
(广播多路访问网络,非广播多路访问网络):需要选择DR和BDR
(广播型网络):一条双胶线连接两个路由器,也需要选择DR和BDR
一群点到点链路的集合
OSPF |
RIPv1 |
RIPv2 |
链路状态路由协议 |
距离失量路由协议 |
|
没有跳数的限制 |
RIP的15跳限制,超过15跳的路由被认为不可达 |
|
支持可变长子网掩码(VLSM) |
不支持可变长子网掩码 |
支持可变长子网掩码 |
收敛速度快 |
收敛速度慢 |
|
使用组播发送链路状态更新 在链路状态变化时使用触发更新,提高了带宽的利用率 |
周期性广播整个路由表,在低速链路及广域网中应用将产生很大问题 |
表:OSPF和RIP的比较
三、OSPF单域的配置
【配置OSPF路由进程】
Router(config)#router ospf process-id /id号在1~65535之间
【指定OSPF协议运行的接口和所在的区域】
Router(config-router)#network address inverse-mask area area-id
address:网络号,可以是网段地址、子网地址或者是路由器的接口地址
inverse-mask:反向掩码,用于精确匹配所通告的网络ID
area-id:指时网络号相关的区域,可以是0,1,2。也可以是192.168.1.0
【修改接口的优先级】
Router(config-if)#ip ospf priority priority
priority的默认值是1,取值为0~255
【修改接口的cost值】
Router(config-if)#ip ospf cost cost
cost的取值范围是1~65535
【查看邻居列表及其状态】
Router#show ip ospf neighbor
【查看OSPF的配置】
Router#show ip ospf
【查看OSPF接口的数据结构】
Router#show ip ospf interface type number