OSPF开放式最短路径优先协议(一)

OSPF开放式最短路径优先协议

无类别链路状态路由协议,基于拓扑进行收敛
需要结构化设计--------区域划分、合理的IP地址规划
组播更新:
224.0.0.5------all ospf
224.0.0.6------BR/DBR专用
触发更新(hello、ack)、周期更新(30min)----更新量大,可靠性稍低
支持等开销负载均衡,默认4条,最大6条,IOS12.4以上16–32
跨层封装到3层报头,协议号89

OSPF数据包

hello包:用于邻居的发现,关系的建立和周期保活 224.0.0.5组播收发
Hello time 10s 或30s dead time为hello 的4倍
DBD:数据库描述包
LSR:链路状态请求
LSU:链路状态更新—携带各种LSA
LSack:链路状态确认

OSPF的状态机

Down:一旦本地发出hello包进入下一个状态
Init:初始化 – 收到的hello包中若存在本地的RID,进入下一状态
2way:双向通信 – 邻居关系建立的标志
条件匹配:点到点直接进入下一状态;每一个MA网络进行DR/BDR选举(30s),非DR/BDR间不能进入下一状态,维持邻居关系,仅hello包周期保活即可
exstart:预启动 – 使用类似hello 的DBD包进行主从关系的选举,RID大为主,优先进入下一状态
exchange:准交换—使用真正的DBD包进行LSDB目录交互
loading:加载—使用LSR/LSU/LSack来获取未知的LSA信息
full:转发—邻接(毗邻)关系建立的标志

工作过程

启动配置完成后,本地收发hello包,进行邻居关系的建立,生成邻居表
之后所有的邻居进行条件的匹配:
匹配失败将停留于邻居关系,仅hello包周期保活即可
匹配成功,进行LSA的共享,收集到所有的LSA后生成LSDB----数据库表
在进行SPF(最短路径优先)选路,将到达所有位置网段的最短路径加载于路由表
收敛完成,hello包周期保活,没30min,邻接关系周期进行DBD包的比对,若一致周期更新完成;若不一致将使用LSR/LSU/LSack来获取不同信息;

结构变化
1、新增网段:
直连新增网段的设备,使用DBD包告知所有邻接,之后邻接们基于本地的数据库判断是否需要学习,若需要使用LSR请求,之后收到LSU携带该LSA,再LSack确认;
2、断开网段:
直接断开网段的设备,使用DBD告知,之后邻接间使用LSR/LSU/LSack来获知
3、无法沟通:
Dead time到时时,断开邻居关系,删除从该邻接收到的所有LSA信息;能否重建邻居关系关注hello包,能都重建邻接关系需要条件匹配

基础配置

R1(config)#router ospf 1                 启动时需要定义进程号,仅具有本地意义
R1(config-router)#router-id 1.1.1.1      定义RID,全网唯一;
手工—取环回数值最大ip地址—物理接口数值最大ip地址---无进程
宣告:1、激活   2、接口拓扑或者接口路由   3、区域划分
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0       将1.1.1.0/24宣告到区域0
R1(config-router)#network 12.1.1.1 0.0.0.0 area 0         反掩码宣告

区域划分规则

1、星型结构------中心到站点
非骨干区域(大于0)需要直接到骨干区域(区域0);
若一台ABR处于两个非骨干区域之间,同时没有链接骨干区域,将不能进行区域间路由共享;
2、ABR------区域边界路由器
同时连接两个区域,收集到两个区域的拓扑信息后,计算为最短路径的路由后,将路由信息进行共享;
若直连邻居间发送的OSPF数据包中区域ID不一致将无法建立邻居关系

当启动配置完成后,邻居间组播收发hello包,进行邻居关系的建立,生成邻居表

R2#show ip ospf neighbor 查看邻居表
Neighbor ID Pri State Dead Time Address
1.1.1.1 0 FULL/ - 00:00:31 12.1.1.1 Serial1/0
3.3.3.3 0 FULL/ - 00:00:38 23.1.1.2 Serial1/1
邻居的RID 优先级 状态机 保活倒计时 邻居IP 本地邻居的接口

hello包::用于邻居的发现,关系的建立和周期保活 224.0.0.5组播收发
Hello time 10s 或30s dead time为hello 的4倍

OSPF邻居间hello包必须完全一致的参数,否则无法见邻居关系
1、hello和dead time
2、区域ID
3、认证字段–类型、密码
4、末梢区域标记

当邻居关系建立后,进行条件的匹配;匹配失败将继续保持为邻居关系,仅hello包周期保活即可;
若条件匹配成功,将进行邻接关系的建立,期间使用DBD包进行LSDB目录的共享;再使用LSR/LSU/LSack来获取未知LSA的信息;当收集所有的LSA后,生成LSDB—数据库表

R1#show ip ospf database 查看数据库表

LSA:链路状态通告—存在多种类别 不同类别是由不同的拓扑或网络环境产生,内容为拓扑或路由信息;
使用LSU来携带传递LSA;
LSDB:链路状态数据库—本地收集到的所有LSA的集合
DBD:数据库描述
exstart时不携带目录信息,仅进行RID大小的比较来进行主从关系选举;Exchange状态用于携带本地LSDB的目录信息

关于DBD的补充:
1、DBD包中携带本地接口的MTU值,要求直连邻居间MTU值必须完成一致,否则将卡在exstart状态;
2、隐性确认
从设备使用主设备的序号来对接收的DBD包进行确认
3、标记位
I位为1标识本地的第一个DBD包
M为0标识本地的最后一个DBD包
MS位为1代表主,为0代表从;

当OSPF的LSA洪泛或LSDB同步完成,设备将基于本地的数据库表,使用最短选路规则,计算本地到达所有未知网段的最短路径然后,将其加载于路由表中;

1、字母:
O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
O 本地区域内的路由,由本地通过本区域拓扑计算所得
---------------------------------------------------------------------
O IA其他区域的路由,由ABR共享所得 –域间路由
O E1/2 域外路由,其他协议产生,通过ASBR重发布进入到OSPF协议
O N1/2域外路由,其他协议产生,通过ASBR重发布进入到OSPF协议;同时本地处于NSSA区域;
2、管理距离:110
3、度量:cost=开销值
度量计算带宽(默认100M)/接口参考带宽(默认为接口实际带宽)
优先cost值之和最小的路径;
接口的参考带宽大于计算用带宽:cost=1;可能导致错误的选路。
为避免建议修改计算用带宽

R1(config)#router ospf 1 
R1(config-router)#auto-cost reference-bandwidth ?
<1-4294967>  The reference bandwidth in terms of Mbits per second
R1(config-router)#auto-cost reference-bandwidth 1000
注:全网设备必须修改为一致

能否从邻居关系直接成为邻接关系的条件

关注点为网络类型:
点到点 – 邻居直接成为邻接关系,否则无法收敛拓扑和路由信息
MA—距离矢量(DV)存在接口水平分割,可以在MA网络中避免重复更新;
但由于ospf协议需要邻接间DBD内容的比对,故不能存在接口水平分割;所有只有通过进行DR/BDR选举,来避免在MA网络中的重复更新;
DR/BDR与非DR/BDR间建立为邻接关系,非DR/BDR间为邻居关系,邻居关系间不进行LSA的更新,仅存在hello包;

1、优先级:默认为1,大优
0标识不参选 0-255
2、RID:数值大优

r1(config)#int e0/0   修改参选接口优先级
r1(config-if)#ip ospf priority 3 
注:DR/BDR选举为非抢占,因此若需要重新选举,必须重启所有设备的OSPF进程;
r4#clear ip ospf process 
Reset ALL OSPF processes? [no]: yes

若不愿重启所有设备进程,可以将DR优先级改为最大,BDR次大,其他设备修改为0,退出选举,无需重启ospf进程;
切记:不能将一个网段内所有参选接口优先级修改为0,导致没有邻接关系,无法收敛;故至少必须存在一个DR;

OSPF的接口网络类型

网络类型(二层封装技术)===点到点 BMA NBMA
所谓OSPF接口网络类型是指OSPF协议在不同的网络类型下其接口不同工作方式

r2#show ip ospf interface loopback 0  查看某个接口在ospf协议中的工作方式
Loopback0 is up, line protocol is up 
  Internet Address 2.2.2.2/24, Area 0, Attached via Network Statement
  Process ID 1, Router ID 2.2.2.2, Network Type LOOPBACK, Cost: 1  
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Loopback interface is treated as a stub Host
网络类型 OSPF接口网络类型(工作方式)
环回 Loopback–无hello包;基于32位的主机路由进行加表
点到点(串行HDLC/PPP/GRE) POINT_TO_POINT–hello time 10s 自动建邻,不选举DR/BDR
BMA(以太网) BROADCAST–hello time 10s;自动建邻,选DR/BDR
NBMA(帧中继、MGRE)

MGRE–接口默认工作方式位POINT_TO_POINT;该工作方式只能允许建立一个邻居关系,而MGRE构建的又是一个MA网络,存在多个邻居,导致邻居关系不停翻滚。

解决方法:只能修改接口的工作方式
r4(config)#interface tunnel 0
r4(config-if)#ip ospf network ?
Broadcast(广播型网络) Specify OSPF broadcast multi-access network
non-broadcast(非广播多路访问) Specify OSPF NBMA network
point-to-multipoint(点到多点) Specify OSPF point-to-multipoint network
point-to-point(点到点网络) Specify OSPF point-to-point network

1、修改接口工作方式为broadcast;切记由于broadcast和point_to_point的hello time均为10s;故可以建立邻居,但在DR/BDR选择上不同;故即使建立邻居关系,也不能正常收敛;需要将该NBMA网段中所有接口均修改为broadcast;
注:在NBMA网络若使用broadcast的工作方式,需要关注拓扑接口
1)星型结构(中心到站点)–DR位置问题 需要解决 中心点为DR,不要BDR
2)全连网状结构(该往段内所有节点间均为正常的邻居关系) 正常选择一个DR/BDR即可
3)部分网状结构(该网段内部分节点间为邻居关系,但又不是的星型接口)–根据实际情况来判断DR的位置需求
2、修改该网段所有接口的工作方式为point-to-multipoint
point-to-multipoint hello time 30s,自动建邻,不选DR/BDR;从哪个邻居学习到LSA,路由下一跳指向该邻居;
该工作方式为手工设定,缺点是没有DR/BDR选举规则;在全连网状结构中将导致重复更新;

总结(建议)

全脸网状结构 Broadcast 正常选举DR/BDR
星型结构 Broadcast 将DR定义在中心站点
Point-to-multipoint
部分网状结构 Point-to-multipoint

你可能感兴趣的:(OSPF开放式最短路径优先协议(一))