OSPF(开放式最短路径优先协议):是一种无类别链路状态路由协议。
有类别和无类别区分:
有类的路由:不会识别子网的信息,如宣告10.0.1.0/24 172.16.1.0/22192.168.1.64/28 路由表中只会识别A类10.0.0.0/8, B类172.16.0.0/16 C类192.168.1.0/24。
无类的路由协议:不会根据A B C类来识别,根据子网掩码的长度来区分网段。
IP Classful RIP v1, IGRP ,EGP IP Classless RIP v2 ,EIGRP, OSPF, IS-IS, BGP 有类的路由协议只会传送网络前缀(网络地址),但是不会包含子网掩码。当它传送更新时,它首先检查直接连接的网络是否和发送更新的网络属于同一个大一点的子网,如果是的,那么它会继续检查它们的子网掩码是否相等,如果不等,那么更新信息会被丢弃而不会被广播。
OSPF:有五种包,七种状态
五种包:hello包,DBD包,LSR , LSU, LSACK
hello包: 周期收发 用于邻居、邻接关系的发现、建立、周期保活。
DBD包 :数据库描述表
LSR :链路状态请求
LSU: 链路状态更新 -- 携带各种具体的LSA信息(LSA—链路状态通告—具体的每 条拓扑或路由信息)
LSACK: 链路状态确认
2 OSPF的状态机
Down 一旦收到对端的hello包进入下一个状态;
Init 初始化 一旦接收到的hello包中存在本地的RID,进入下一个状态
2way 双向通讯 邻居关系建立的标志
条件:点到点直接进入下一状态 MA网络进行40sDR/BDR选举,非DR/BDR间不能进入下一状态
Exstart 预启动 使用不携带数据库目录的DBD包进行主从关系选举,RID数值大为主,优
先进入下一个状态
Exchange 准交换 使用携带信息的DBD进行数据库目录共享;
Loading 加载 查看完对端的DBD后,基于本地未知的LSA信息,使用LSR查询,对端
使用LSU应答,本地使用LSack确认;来获取所有未知的LSA信息;
FULL转发 邻接关系建立的标志
3,OSPF的工作过程
启动配置完成后,运行ospf协议的路由器,将组播收发hello包;若hello包中存在本地的RID,视为对端已经认识本地,故标志邻居关系建立;生成邻居表;
之后条件的匹配,匹配失败将停留于邻居关系,仅hello周期保活即可;
匹配成功者间,将建立邻接(毗邻)关系;首先使用不携带数据库目录的DBD进行主从关系选举;之后主优先与从进行DBD目录交换;交换后再使用LSR/LSU/LSack来获取未知的LSA信息;直到邻接间数据库完全一致;生成LSDB表;-链路状态数据库(该网络所有LSA的集合)
当数据库的同步完成后;本地将所有的LSA进行组合;生成有向图—>最短路径树à将最佳路径加载到本地的路由表中;网络收敛完成,hello包周期保活;
之后每30min邻接关系间周期比对下一数据库目录;(查漏补缺)
网络结构突变LSU,LSACK):
- 新增网段 – 直连新增网段的ospf设备,使用LSU告知本地所有邻接,对端需确认
- 断开网段 -直连断开网段的ospf设备,使用LSU告知本地所有邻接,对端需确认
- 无法沟通 ---dead time到时时,断开邻居关系,删除从该邻接学习到信息;
默认hello 包的hello time 为10s或30s dead time 为hello time的4倍
邻居间hello包中必须完全一致的参数; hello 和dead time;区域ID;认证字段;
末梢区域标记;在华为设备的体系中,邻居间接口所配置ip地址子网掩码必须完全一致;
图中带*号表示参数必须一致否则停留在2way状态(仅保活)
4 OSPF的基础配置
[R1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号;进程号仅具有本地意义;
同时配置RID,全网唯一;使用IPV4地址格式;
手工配置—环回接口最大地址数值---物理接口最大地址数值
[R1-ospf-1]
宣告:1)区域划分 2)激活接口协议 3)传递接口信息
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
区域划分规则:
- 星型拓扑(中心到站点、轴辐状) 区域0为骨干,大于0为非骨干;所有非骨干必须连接到骨干区域
- 必须存在ABR—区域边界路由器 –同时连接两个区域
启动配置完成后,邻居间收发hello包,建立邻居关系;生成邻居表:
[R2]display ospf peer brief
邻居关系建立后,邻居间进行条件匹配;匹配失败,停留于2way的邻居关系;
匹配成功将建立成为邻接关系,关系间将进行LSA的洪泛、LSDB的同步(OSPF收敛);
完成后,生成LSDB—数据库表;
当数据库表完全一致后,本地基于数据库生成有向图,在转换为最短路径树;之后将本地到达所有未知网段的最短路径加载于本地的路由表中;
优先级为10,选路基于cost值进行;
Cost开销值= 参考带宽/接口带宽 向上取整 默认优选整段路径cost值之和最小;
若接口带宽大于参考带宽,cost值为1;可能导致选路不佳;故需要修改默认的参考带宽
默认参考带宽=100m
[R2]ospf 1
[R2-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[R2-ospf-1]bandwidth-reference 1000
切记:网络中一定修改参考带宽,需要全网设备修改一致;
5 邻居关系成为邻接关系的条件
基于网络类型决定的;
点到点 – OSPF在点到点网络必然成为邻接关系
MA – 由于OSPF协议没有接口水平分割,故该网段两两间皆邻接,将可能出现大量的重复更新;因此ospf协议在MA网络中将进行DR/BDR选举;所有非DR/BDR间仅为邻居关系;
选举规则:先比较参选接口的优先级,默认1,0-255越大越优;0为不参选
若接口优先级相同,比较参选设备的RID,数值大优;
[R2]interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0]ospf dr-priority 3 修改参选接口的优先级
DR/BDR选举非抢占,故修改优先级后,不会影响网络选举结果;
因此修改优先级后,需要管理员重启该网段所有设备的ospf进程;
<R2>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
还可以将非DR/BDR设备优先级修改为0,这样不需要重启进程;
注意OSPF协议要求邻接关系间接口MTU值必须一致,否则将卡在exstart或exchange状态机;默认华为设备不检测邻接间的MTU
[R1]interface GigabitEthernet 0/0/1
[R1-GigabitEthernet0/0/1]ospf mtu-enable
要求本地与该接口连接的邻接设备进行mtu值一致
六 一台ABR设备若没有连接到骨干区域0,那么默认不得进行区域间路由的共享,两种不规则区域:
1、 远离了骨干的非骨干区域
2、 不连续骨干