1,ospf的基础概念
- 开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。 目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。
-
无类别IGP协议;链路状态型; 基于LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署 --- 区域划分、ip地址规划
组播更新 --- 224.0.0.5 224.0.0.6 支持等开销负载均衡
-
支持触发更新 30min周期更新 跨层封装协议,协议号89;
- ospf的5包7机
2,ospf基本工作过程
1,启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表;
2,邻居关系建立后,将进行条件的匹配,匹配失败将维持邻居关系,仅hello包周期保活即可;匹配成功可以建立邻接(毗邻)关系;邻接关系间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;获取完成后,邻接关系间数据库同步一致;--- 数据库表;
3,之后本地基于本地的数据库所有内容整理出有向图--->最短路径树结构--->将本地到达所有未知网段的最短路径加载于本地的路由表中;收敛完成后,邻居间仅hello包周期保活即可;每30min邻接关系间周期比对数据库目录,若不一致将马上使用LSU和LSACK进行不一致部分收敛;
4.拓扑突变:
1)新增网段:直连新增网段设备,用LSU直接进行触发更新
2)断开网段:直连断开网段设备,用LSU直接进行触发更新
3)无法沟通:dead time 为hello time4倍;在dead time到时时将断开邻接、邻居关系,删除路由;
5,ospf基本配置:
先启动ospf进程(进程只具有本地意义)
[r1] ospf 1 router-id 1.1.1.1 (ospf进入进程一)
[r1] ospf 2 router-id 1.1.1.1 (可以同时在一台设备上启动多个ospf,只需进程不同即可)
ospf创建区域:
[r1-ospf-1] area 0
ospf宣告问题:
[r1-ospf-1-area-0] network 1.1.1.1 0.0.0.0 (精准宣告)
[r1-ospf-1-area-0] network 12.1.1.0 0.0.0.255 (多个一块宣告)
[r1-ospf-1-area-0] network 0.0.0.0 255.255.255.255 (该设备上所有网段全部宣告)
6,区域划分规则
- 星型拓扑 --- 区域0为骨干,大于0为非骨干,所有非骨干必须连接到骨干区域方可正常共享路由
- 区域间必须存在ABR -- 区域边界路由器
-
[r2]display ospf peer 查看邻居信息
[r2]display ospf peer brief 查看邻居表
-
<r2>display ospf lsdb 查看数据库表 LSDB-链路状态数据库--所有LSA的集合
7,关于DBD包的扩展知识点:
、Ospf的DBD包中将携带接口的MTU值,要求邻接间的MTU必须一致,否则将卡在exstart或exchange状态机;
华为默认为开启MTU检测
[r1-GigabitEthernet0/0/1]ospf mtu-enable 在直连邻接的接口上开启,必须两端均开启
DBD包中的标记位
I M MS I为1标识该DBD包为本地发出的第一个DBD M为1标识该DBD包不是本地发出的最后一个DBD包 MS 为1标识本地为主,为0代表从
- 隐性确认
主从被选举后,从将使用主的序列号为确认接收到了主的DBD包,即使从设备已经不需要发送DBD,依然要使用未携带信息的DBD来进行隐性确认;
邻接关系间数据库同步完成后,本地基于数据库生成---有向图 ---> 最短路径树--->将本地到达所有未知网段的最短路径加载于本地的路由表中;
默认优先级为10 ,度量为cost值;
Cost=开销=参考带宽/接口带宽 默认参考为100M 当接口带宽大于参考带宽时,cost值为1;OSPF优选整段路径cost值之和最小为最短路径
故当接口带宽大于参考带宽的网络可能导致选路不佳,建议修改参考带宽
8,dr/bdr选举
- 邻居关系成为邻接关系的条件 --- 和网络类型有关
点到点 --- 所有邻居直接建立为邻接关系
MA---由于OSPF协议需要邻接关系间进行数据库对比,故不支持接口水分割;若两两间均为邻接关系,将可能出现大量的重复更新;因此,在MA网络中ospf协议将进行DR/BDR选举,所有非DR/BDR设备间维持邻居关系,不进行数据库共享;
选举规则:1)先比较参选接口的优先级 0-255 默认为1,大优
2)若优先级相同,比较参选的RID,数值大优
若需要干涉选举,可以修改参选接口的优先级
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 3
切记:选举是非抢占的,故修改后该网段依然维持原有角色,若希望重新选举,需要重启该网段所有设备的OSPF进程;
<r1>reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
建议直接将DR优先级修改最大,BDR次大,其他设备优先级修改为0,0标识不参选,可以不同重启任何设备的ospf进程;
- ospf的接口网络类型 --- OSPF协议在不同网络类型的接口上,其工作的方式不同
[r1]display ospf interface LoopBack 0
Interface: 1.1.1.1 (LoopBack0)
Cost: 0 State: P-2-P Type: P2P MTU: 1500
重点:
修改接口的ospf工作方式:
1)修改该网段所有接口为 Broadcast
[r1]int t0/0/0
[r1-Tunnel0/0/0]ospf network-type broadcast
切记:由于p2p和 broadcast hello time均为10s,故将能建立邻居关系,但p2p不进行DR/BDR选举,所以建邻后无法正常收敛;因此该网段所有接口必须修改成一样的工作方式;
注解1:在MGRE环境中,若网络拓扑为星型;且所有接口的工作方式,均修改为broadcast;
由于分支站点之间没有伪广播,无法知道对端的存在,故DR/BDR选举将混乱;只能让中心站点成为DR,没有BDR;
1,修改所有接口的工作方式为p2mp
P2MP 工作方式 hello time为30,不进行dr、bdr选举
P2mp是为帧中继这种物理的NBMA网络设计,在MGRE环境中不建议使用
补充内容:关于MGRE的拓扑
- 星型 -- 中心站点固定ip地址,所有分支仅和中心注册
- 全连网状 --- 所有站点均为固定ip,所有设备均为中心,两两间均注册
- 部分网状 -- 部分设备为固定ip地址,存在部分中心和部分的分支
在以上三种环境中运行OSPF的方案:
- 星型 -- 所有接口工作方式为broadcast,仅中心站点为DR,无BDR
- 全连 -- 所有接口工作方式为broadcast;DR/BDR将默认自动选举成功
- 部分 -- 所有接口工作方式为broadcast;合理安排DR的位置
3,ospf扩展知识点
- 远离了骨干的非骨干
- 不连续骨干
建议直接用重发布:多进程双向重发布(推荐)
多进程 --- 一台路由器上运行多个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;
3,ospf数据库表
4,lsa的优化
- 汇总 -- 优化骨干区域
- 特殊区域 -- 优化非骨干区域
- 域间汇总 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
- 域外汇总 --- 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数量
不是骨干区域,不能存在虚链路
- 不能存在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
- 存在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类
- OSFP扩展配置
- 认证 --- 直连的邻居或邻接关系间,进行认证配置后,5种数据包中均携带身份核实的密码,且华为设备会对更新信息进行加密--前提为认证方式选择密文认证
- 接口认证
-
[r1-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cipher 123456
直连的邻居间秘钥和编号、模式必须完全一致否则无法建立邻居关系;
- 区域认证
-
假设在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
可以理解为批量的完成了接口认证;
- 虚链路认证
-
[r1-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
在虚链路的两端配置
- 沉默接口 ---只接收不发送路由协议信息,用于路由器连接邻居或邻接的骨干链路,不得用于连接终端用户的接口;
-
[r1]ospf 1
[r1-ospf-1]silent-interface GigabitEthernet 0/0/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/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的扩展知识点
「1」附录E --- link-id相同的问题
若一台ABR将两条3类LSA导入其他区域;或者一台ASBR将两条5/7类导入OSFP域;
同时这两条LSA的link-id会相同;
假设:短掩码网段先进入,link-id正常显示;长掩码进入时link-id加反掩码
20.1.0.0/16--link-id 20.1.0.0
20.1.0.0/24--link-id 20.1.0.255
若长掩码先进入,再短掩码进入时,长掩码的信息被刷新为反掩码;
「2」OSPF选路规则
- AD(管理距离)无关的一种情况:
r2(config)#router ospf 1
r2(config-router)#distance 109 1.1.1.1 0.0.0.0
本地从RID为1.1.1.1的设备处学习到路由条目,管理距离修改109;
一台路由器从两个OSPF邻居处学习到了两条相同的路由时,仅比较度量值,不关注管理距离;因为仅针对一台邻居进行管理距离修改的结果是要么两台都被改,要么修改失败;-关注IOS版本---有时修改RID大路由器管理距离生效,有时需要修改RID小的设备;
- AD(管理距离)无关的第二种情况 O IA 3类
O IA 与 O IA路由相遇,到达相同目标的两条3类路由,这两条路由均通过非骨干传递,仅关注cost值,不关注管理距离;
若一条通过骨干区域传递,另一条同过非骨干区域传递--非骨干传递的路由无效
OSPF的区域水平分割:区域标号为A的3类LSA,不能回到区域A;
先比类型-à 区域àcost
- OE 与OE E为5类 N 为7类 默认所有重发布进入路由条目均为类型2,类型2在路由表中cost值不会显示沿途的累加,仅显示起始度量;
两条均为OE2或者均为N2,起始度量相同; 关注沿途的累加度量 (OE2路由在表中度量默认不显示内部度量,仅显示起始度量)
两条均为OE2或者均为N2,起始度量不同;优先起始度量小的路径;
注:以上设计是便于管理员快速干涉选路;
OE1路由仅比较总度量(起始度量+沿途累加),仅修改起始度量不一定能干涉选路,必须在修改后使得总度量产生区别才能干涉选路;
- 拓扑优于路由 1/2LSA计算所得路由优于3/4/5/7类计算所得
内部优于外部 3类优于4/5/7类
类型1优于类型2 E1优于E2,N1优于N2,E1优于N2,N1优于E2;
E1与N1相遇,或E2与N2相遇,先比总度量(起始+沿途)小优;度量一致5类优于