18-动态路由协议,OSPF

0
RIP协议由于出生较早,有很多缺点,已经逐渐被OSPF代替;
RIP的缺点:
    收敛慢    ->30s发一次路由更新;
    易产生环路    ->需要水平分割、 毒性反转、触发更新等机制来避免环路;
    可扩展性差    ->最大只支持15跳,16跳不可达,导致不适应于大型网络;
 
OSPF协议的优点: 
0
 
1.OSPF概述:Open shortest path first 开放式最短路径优先
  • 大中型网络使用最广泛的IGP协议
  • 链路状态路由协议
  • 无类别路由
  • 使用组播(224.0.0.5和224.0.0.6)
  • 收敛快
  • 以开销(cost)作为度量值(cost根据接口带宽来计算)
  • 采用SPF算法可以有效的避免环路(不需要水平分割、毒性逆转等机制)
  • 触发式更新(路由改变时立即发送更新,并且以较低频率 (每30分钟)定期发送更新,被称为链路状态泛洪)
  • 区域的设计使得OSPF能够支持更大规模的网络(划分骨干区域和非骨干区域和特殊区域,就像国家分省市区来管理)
  • 通过LSA(链路状态信息)的形式发布路由(就像高德地图可以根据路况选路) 
  • 支持手动汇总 (汇总是为了精简路由表的数量,有多个子网时,不需要看每条子网的路由状态;)
 
2.OSPF区域概述
 
术语
备注
区域(Area)
为了适应大型网络,OSPF在AS内划分多个区域
区域是以接口划分
每个OSPF路由器只维护所在区域的完整链路状态信息
区域ID(Area ID)
可以表示成一个十进制的数字,如:1
也可以表示成一个IP,如:0.0.0.1
区域优点
尽量减少路由表条目,从而减少LSDB大小
拓扑变化仅影响本区域内部
1)区域的表示
一共可以创建4294967296个区域;
也就是可以有和ipv4地址数量一样的区域数量;也就是2的32次方个;32位二进制;
因此,区域ID为256时可以有两种表示形式:256、0.0.1.0
 
 
2)区域的划分
划分多区域的作用:为了减轻运行OSPF路由器的压力
    例如:下图中,Area1中的路由器只需要了解Area1中所有路由器的LSA;
    LSA存放在LSDB中,划分区域减少了LSDB的大小,从而降低路由器内存消耗;
    划分区域也减少了路由器cpu的压力,LSA少了,计算路径的压力也减轻;
    ospf每30分钟一次链路状态泛洪,划分区域后,只需要更新区域内的路由状态信息,减少了路由器压力;
    注意:只有1类和2类地址的泛洪会被限制在单个区域内;
 
区域划分机制:以接口划分 
    例如:下图中左边中间的路由器,上方的接口属于Area0,下放的接口属于Area1;
    一个接口只能属于一个区域;
0
 
3)区域的类型
 
类型
备注
骨干区域
area 0
骨干区域,也称为传输区域
非骨干区域
area 0除外
非骨干区域,称为末端区域
只有ID为0的区域是骨干区域,其它非0的都是非骨干区域;
骨干区域负责非骨干区域的数据传输:
    例如,上图中Area1到Area2数据包的转发和路由的传递必须经过Area0;
    就像坐火车从合肥到上海需要经过中转站南京;
一般情况下,所有非骨干区域必须和骨干区域直接相连;(特殊情况用其它方法解决)
 
 
4)路由器的类型
 
角色
备注
IR
internal router 内部路由器
所有接口都属于同一个区域
BR
backbone router 骨干路由器
至少有一个接口属于骨干区域
ABR
Area border router 区域边界路由
连接多个不同的区域,至少有一个接口属于骨干区域
ASBR
Autonomous system border 自治系统边界路由器 
将其他路由协议学习到的路由以引入的方式到OSPF进程中
一台路由器可以同时属于多种类型; 
 
0
 
 
3.OSPF工作流程
OSPF核心工作流程:
    1】发现并建立邻居
    2】传播LSA(区别基于DV算法的路由更新)
        LSA的内容 :
            a.link state advertisement 链路状态宣告(就像地图中的路况信息)
            b.链路:路由器接口
            c.状态:描述接口信息(地址、掩码、开销、网络类型、邻居关系等)
    3】将LSA泛洪到区域中的所有OSPF路由器(不仅仅是直连路由器)
    4】收集LSA创建LSDB(链路状态数据库,相当于地图)
    5】使用SPF算法计算到达每个目标网络的最短路径,存放于路由表
 
1)邻居
osfp中有个概念叫邻居;
查看邻居的命令:
dis ospf peer
 
建立邻居:
ospf 1
area 0
net 
network 192.168.108.0 0.0.0.255
dis ospf peer
 
建立邻居成功后,会周期性发送hello数据包;
hello包的作用是用来找邻居;
 
通过周期性的发送hello包来发现邻居;
邻居会存放在邻居表中(Neighbor Table)
 
2)关于LSDB
建立邻居后,路由器之间会传播LSA;
LSA会通过泛洪传播到区域汇总所有的ospf路由器;
 
LSA保存在LSDB中;
查看LSDB:
dis ospf lsdb
type表示lsa的类型,router是路由器、sun-net是汇总;
 
查看router类型的lsa:
dis ospf lsdb rou
 
查看汇总类型的lsa:
dis ospf lsdb sum
 
3)SPF算法计算
通过LSA可以知道到达特定地点可能有多条路径;
通过SPF算法,计算出一条最佳路径;
 
路由器转发数据,还是需要查询路由表;
通过spf计算出最佳路由后,会将最佳路由写入路由表;
 
4)总结
-》osfp路由器之间建立邻居    
-》发送LSA泛洪,建立LSDB数据库  
-》用SPF算法计算出最短路径
-》将最佳路由存放在路由表里
 
 
这个过程中建立了三张表:
 
类型
含义
邻居表
记录所有邻居关系(有了邻居才能泛洪,才能有LSDB和路由表,ping不通时可以先检查邻居表)
链路状态数据库
记录所有链路状态信息
路由表
记录最佳路由
posted @ 2021-01-08 10:51  L丶银甲闪闪  阅读(176)  评论(0编辑  收藏  举报