目录
一.OSPF协议的简介
Ospf:开放式最短路径优先协议
无类别链路状态igp协议;周期更新(30min)+触发更新;链路状态协议的更新量随着网络范围的扩展指数性的上升,因此ospf协议为了在中大型网络中工作,需要结构化的部署-区域划分、合理ip地址规划;组播更新--- 224.0.0.5和224.0.0.6
二.OSPF的五种数据包
Hello 邻居的发现,关系的建立;周期(10s)的保活 携带rid
Dbd 数据库描述包;本地数据库目录
Lsr 链路状态请求
Lsu 链路状态更新
Lsack 链路状态确认
Lsa -链路状态,具体一条一条路由信息或拓扑信息;但它不是一个包,是被lsu数据包来携带;
三.OSPF协议的7种状态机
Down :一旦接收到的hello 包,进入下一个状态机
Init 初始化: 一旦接收到的hello包中,存在本地的rid,进入下一个状态
2way 双向通讯: 邻居关系建立的标志
关注条件:
Exstart 预启动: 使用不携带目录信息的DBD包,进行主从关系的选举;rid大为主,优先进入下一个状态;解决了目录共享时的无序;
Exchange 准交换:使用携带目标信息的dbd包,共享本地数据库目录;
loading加载:查看完邻接的dbd信息后,对比本地,然后基于本地未知的lsa进行查询;
使用lsr 向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要
lsack来进去确认;
Full :邻接关系建立的标志; 意味着邻接间,数据库同步(一致)
四.OSPF 的工作过程
启动配置完成后,邻居间开始收发hello包;hello包中将携带本地及本地所有已知邻居的rid;之后生成邻居表;邻居间需要关注是否可以成为邻接的条件;若不能建立为邻接,将保持为邻居关系,仅hello包周期保活即可;
若可以建立邻接关系;将使用DBD进行本地数据库目录的对比;之后基于对比的结果,使用LSR/LSU/LSack来获取本地未知的LSA信息;使邻接关系间数据库(lsdb)完成同步(一致),生成数据库表;
之后本地基于lsdb,使用spf算法,生成有向图—>最短路径树——>计算本地到达所有未知网段的最短路径,将其加载到本地路由表中;收敛完成;
收敛完成后,邻居和邻接关系间均hello每10s保活;每30min一次邻接关系间周期数据库比对,保障一致;
结构突变:
- 新增网段
- 断开网段
- 无法沟通 --- dead time 为hello time的4倍;在4次周期内未收到对端的hello包,将断开与其的邻居关系;删除通过该邻居计算所得路由;
lsdb:链路状态数据库 – 所有lsa的集合
五.OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时可以定义进程号、RID;默认进程1,RID--格式为IPV4地址,全网唯一; 手工--》环回接口最大数值--》物理接口最大数值
[r1-ospf-1]
宣告:1、激活-- 可以收发ospf的信息 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
ospf在宣告时,需要使用反掩码,来匹配宣告的地址范围
区域划分规则:
- 星型结构 --- 编号0骨干区域(中心),大于0为非骨干区域(分支)
非骨干区域必须直连骨干区域;
2、必须存在ABR --- 区域边界路由器 两个区域间互联的设备
启动配置完成后,邻居间收发hello包;建立邻居关系,生成邻居表:
[r2]display ospf peer 查看邻居关系
[r2]display ospf peer brief 查看邻居简表
邻居关系建立后,关注条件;匹配失败,保持为邻居关系,仅hello包周期保活;匹配成功可以建立为邻接(毗邻)关系;邻接关系间,将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;完整本地的LSDB (数据库表);
[r2]display ospf lsdb
当数据库同步完成后;本地基于SPF算法,将数据库转换为有向图,再将有向图转换为树型结构;之后基于树形结构,以本地为起到到达所有未知网段的最短路径,加载到路由表中;
<r1>display ip routing-table protocol ospf 查看ospf路由
优先级为10;度量为cost值 ; cost值=开销值
Ospf cost = 参考带宽/接口带宽 默认参考带宽为100M
ospf优选cost值之和最小,为最佳路径;若两条链路cost值之和相同,等开销负载均衡;
若接口带宽大于参考带宽,cost为1;将可能导致选路不佳;建议修改默认的参考带宽:
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
切记:若修改参考带宽,全网需修改的一致;
六.扩展配置
1.DR/BDR选举
邻居成为邻接关系的条件;与网络类型有关;
网络类型:
点到点--在一个网段内只能存在两个节点 -- 串线链路
MA--多路访问-在一个网段内的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点;--以太网
点到点网络邻居关系直接成为邻接关系;在MA网络中,将进行DR/BDR选举;在一个网段中仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间为邻居关系;
选举规则:
(1)先比较该网段所有参选设备接口的优先级,越大越优;
默认优先级为1;取值范围0-255,0标识不参选
(2)若所有参选者优先级相同,比较参选设备的RID,数值大优;
干涉选举:
(1)DR优先级最大,BDR次大 -- 切记ospf的选举是非抢占性的;故在修改完优先级后,需要所有路由器重启OSPF进程;
[r2]interface GigabitEthernet 0/0/0
[r2-GigabitEthernet0/0/0]ospf dr-priority 3 修改接口优先级
<r1>reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
(2)DR优先级修改为最大,BDR次大;其他设备修改为0;无需重启进程
2.区域汇总 --- OSPF协议不支持接口汇总;只能在ABR上将a区域拓扑计算所得路由,共享给B区域时进行汇总;
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0
R2为一台连接区域0和其他区域的ABR;以上操作为,R2将通过区域0学习到的拓扑计算所得的路由,传递给其他区域时进行汇总,汇总网段1.1.0.0/22
(1)被动接口(沉默接口)--仅接收不发送路由协议信息;用于连接用户终端的接口,不得用于连接邻居路由器的接口,否则无法建立邻居关系;
[r2]ospf 1
[r2-ospf-1]silent-interface GigabitEthernet 0/0/0
(2)认证 -- 接口认证 在直连邻居或邻接的接口上配置,保障更新的安全
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
模式、编号、密码要求邻居间一致
3.加快收敛
邻居间计时器 10s hello time 40s dead time
邻居间,修改本端的hello time,本端的dead time自动4被关系匹配;但ospf中邻居间的hello time和dead time必须完全一致,否则无法建立邻居关系;
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 5
4.缺省路由 --- 边界路由器上配置后,将自动向内网下放一条缺省路由,之后内网设备将自动生成缺省路由指向边界
[r4]ospf 1
[r4-ospf-1]default-route-advertise always
OSFP扩展配置
1.认证 --- 直连的邻居或邻接关系间,进行认证配置后,5种数据包中均携带身份核实的密码,且华为设备会对更新信息进行加密--前提为认证方式选择密文认证
(1)接口认证
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
直连的邻居间秘钥和编号、模式必须完全一致否则无法建立邻居关系;
(2)区域认证
假设在R1上开启区域0的区域认证,实际就是在R1上所有宣告到区域0接口上配置了接口认证;
[r1]ospf 1
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
可以理解为批量的完成了接口认证;
(3)虚链路认证
[r1-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
在虚链路的两端配置
2.沉默接口 ---只接收不发送路由协议信息,用于路由器连接邻居或邻接的骨干链路,不得用于连接终端用户的接口;
[r1]ospf 1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/2
2.修改计时器
Ospf的hello time为10s或者30s dead time为hello time的4倍;
邻居间该时间必须一致,否则无法邻居关系;若hello time为10,不再建立修改;
若为30s可以结合网络的实际硬件处理能力,适当修改计时器,加快收敛速度
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf timer hello 10 修改本端的hello time,本端的dead time自动4倍关系匹配;对端还需要手工修改一致,否则无法建立邻居关系;
[r1-GigabitEthernet0/0/1]ospf timer dead 40 修改本端的dead time,本端的hello time不变
3.缺省路由
3/5/7类缺省;
3类缺省是由配置特殊区域后,特殊区域连接骨干区域的ABR自动发布
末梢、完全末梢、完全NSSA;普通NSSA不产生3类缺省;
5类缺省:
[r3-ospf-1]default-route-advertise 将边界路由器上,路由表中通过其他协议产生的缺省路由(最常为静态缺省)重发布到本地的OSPF协议中
因此若边界路由器的路由表还未拥有缺省时,配置该命令将无法发布缺省到其他邻居;
[r3-ospf-1]default-route-advertise always 强制本地向所有邻居重发布缺省路由,即便本地路由表中没有缺省,也会发布;
7类缺省:配置特殊区域NSSA时,NSSA区域连接骨干的ABR将发布缺省路由;
[r6-ospf-1-area-0.0.0.2]nssa default-route-advertise 由NSSA区域内部存在其他协议获取的缺省路由时,可以重发布到该NSSA区域
切记:由于特殊区域会产生缺省路由指向骨干区域;故必须关注网络中ISP所在的位置,否则可能由于缺省的互指产生环路 --- ISP连接骨干以为的任何区域,那么该区域将不能配置为特殊区域;
七.OSPF的LSA
OSPF的LSA优化 --- 减少LSA的更新量
1.汇总 -- 优化骨干区域
特殊区域 -- 优化非骨干区域
【1】汇总
(1)域间汇总 ABR设备基于某个区域的1/2类LSA计算所得的最佳路由,共享给其他区域时,进行汇总传递
[r2]ospf 1
[r2-ospf-1]area 1 --明细路由所在区域,该ABR设备必须和明细路由在同一区域
[r2-ospf-1-area-0.0.0.1]abr-summary 1.1.0.0 255.255.252.0
(2)域外汇总 --- ASBR重发布进入OSPF域路由进行汇总配置
[r6]ospf 1
[r6-ospf-1]import-route rip 重发布RIP路由进入ospf域
在ASBR重发布路由后,同时进行汇总配置
[r6]ospf 1
[r6-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
【2】特殊区域 --- 优化非骨干区域的lsa数量
不是骨干区域,不能存在虚链路
(1)不能存在ASBR
1】末梢区域
该区域将拒绝4、5LSA的进入,同时由该区域连接骨干0区域的ABR向该区域,发布一条3类的缺省路由;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub
该区域内每台路由器均需配置,否则无法正常建立邻居关系
2】完全末梢
在末梢区域的基础上,进一步拒绝3类的LSA,仅保留ABR发送过来的3类缺省;
先将该区域配置为末梢区域,然后仅在ABR上定义完全即可
[r2]ospf 1
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]stub no-summary
(2)存在ASBR
1】NSSA -- 非完全末梢区域
该区域拒绝4/5类的LSA;本地的ASBR产生的域外路由基于7类进行传输;当7类LSA需要通过NSSA区域的ABR进入骨干区域,将由该ABR进行7转5,以5类发现骨干区域,7转5的这台ABR同时成为一台ASBR
华为设备由该区域连接骨干ABR自动产生7类缺省路由;
[r4]ospf 1
[r4-ospf-1]area 2
[r4-ospf-1-area-0.0.0.2]nssa 该区域每台设备均需配置
2】完全NSSA
在NSSA的基础上进一步拒绝3类的LSA,由该区域连接骨干的ABR发布一条3类缺省
先将该区域配置为NSSA,然后仅在ABR定义完全即可
[r4-ospf-1-area-0.0.0.2]nssa no-summary
7类的LSA:
传播范围 携带内容 link-id 通告者
LSA7nssa 单个NSSA区域 域外路由 域外路由目标网络号 ASBR
从该NSSA区域进入骨干区域时将被转换为5类
八.OSPF的不规则区域
ospf不规则区域
1.远离了骨干的非骨干
2.不连续骨干
解决目的--全网可达
解决方案:
1.tunnel -- 在合法与非法ABR间使用tunnel建立一个新的网段(类似连接一条独立的网线);然后将该网段宣告到ospf协议中;
缺点:1)选路不佳 2)周期和触发信息对中间穿越区域照成影响
2.OSPF虚链路 -- 合法的ABR与同一区域的非法ABR,建立虚链路;非法ABR获得合法ABR授权后,可进行区域间路由的共享;
[r2]ospf 1
[r2-ospf-1]area 1 两台ABR共同存在的区域
[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID
两台设备均需配置
优点:由于没有新的网段链路出现,不会像tunnel一样选路不佳;
缺点:周期和触发的信息对中间穿越区域照成影响
cisco系 --- 在虚链路上取消周期更新、周期保活 -- 失去可靠性
华为系 --- 保留周期信息,对中间区域照成影响
3.多进程双向重发布(推荐)
多进程 --- 一台路由器上运行多个OSPF进程,可以分别建立自己的邻居,,每个进程拥有独立的数据库,不共享信息;只是将各自计算所得路由加载于同一张路由表中;类似于在同一台路由器上允许多种动态路由协议的效果;路由器单一一个接口只能工作在唯一一个进程中;
重发布:一个网路中,若同时运行多种路由协议;默认协议间不兼容,无法共享路由;可以在两种协议间配置ASBR,ASBR(自治系统边界路由器,协议边界路由器)必须用不同的接口工作不同的协议中;通过两种协议获取到两边的路由,默认这些路由不共享,重发布技术可以实现路由共享,最终全网可达;
故在不规则区域中,利用多进程加重发布机制,可以实现全网可达,且不存在选路问题和中间区域周期信息相关问题;
多进程双向重发布配置命令
[r4]ospf 1
[r4-ospf-1]import-route ospf 2
[r4-ospf-1]q
[r4]ospf 2
[r4-ospf-2]import-route ospf 1
注:通过重发布手段学习到的ospf路由,显示协议为0_ASE,优先级为150;
九.OSPF的数据库表
OSPF的数据库表
<r1>display ospf lsdb 查看OSPF数据库目录
LSDB中装载了所有可以学习到的LSA;
LSA-- 链路状态通告 一条拓扑或一条路由条目被称为一条LSA
OSPF协议的数据库是本地所有LSA的集合,不同网络环境下将产生不同类别的LSA;
LSA在共享时基于LSU数据包传递;
各种类别的LSA;
如何查看一条LSA的具体信息
<r1>display ospf lsdb router 2.2.2.2
类别 link-id
一下内容为所有类别LSA均携带的基本信息
Type : Router 类别名,此处为1类
Ls id : 2.2.2.2 在目录中页码号
Adv rtr : 2.2.2.2 通告者的RID,该条LSA发起源的设备RID
Ls age : 1532 老化时间,单位秒;周期1800归0,触发当下归0;最大老化3609;
Len : 48 长度
seq# : 80000026 序列号
chksum : 0x568e 校验码
传播范围 通告者 携带内容
LSA1 Router 单区域 该区域每台OSFP路由器 本地直连拓扑
LSA2 Network 单区域 该网段的DR设备 单个MA网段的拓扑
LSA3 summary 整个OSPF域 ABR 域间路由条目
LAS4asbr 注1 注2 ASBR位置验算
注1:除ASBR所在区域外的整个ospf域;ASBR所在区域通过1类告知ASBR位置
注2:ABR,和ASBR在同一区域路由器,该路由器同时连接骨干区域,是一台ABR
LAS5 ase 整个OSPF 域 ASBR 域外路由条目
Link-id 通告者
LSA1 通告者RID 该区域每台路由器
LSA2 DR接口的ip地址 该网段的DR设备
LSA3 域间路由的目标网络号 ABR,经过下一台ABR进入新的区域时,修
改为新经过的ABR
LAS4 ASBR的RID ABR,经过下一台ABR进入新的区域时,修
改为新经过的ABR
LAS5 域外路由的目标网络号 ASBR