目录
1、基本信息:
1、ospf协议的概述:
2、路由id(router id):
3、ospf区域
1.区域的作用:
2.区域ID:
3.区域分类
4.域间路由
2、OSPF协议工作介绍:
1.ospf的5种数据包:
2.数据包的扩展:
1.Hello包:
2.DBD包:
3.ospf的7种状态机:
1.邻居变成邻接的关注条件:
2.DR/BDR选举:
3.mgre中使用ospf需要注意点:
3、OSPF 扩展知识点:
1.ospf不规则区域
1、分类:
2、解决方案:
2.OSPF的数据库表:
1、LSDB:
2、如何查看一条LSA的具体信息
3.OSPF的LSA优化:
1、目的和方式:
2、汇总
3、特殊区域
4.认证
1、定义:
5.沉默接口:
6.修改计时器:
7. 缺省路由
1、3类缺省:
2、5类缺省:
3、7类缺省:
1、基本信息:
1、ospf协议的概述:
- 开放式最短路径优先(Open Shortest Path First,OSPF)是广泛使用的一种动态路由协议,它属于链路状态路由协议,是跨层封装协议,协议号89。是自治系统AS(Autonomous System)的一种内部网关协议(IGP)。
- 在大规模网络中具有路由变化收敛速度快、无路由环路、区域划分、支持变长子网掩码(VLSM)、支持区域汇总和支持以组播地址发送协议报等优点。
- 但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。
- 在网络中使用ospf协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,通过可靠的泛洪与自治系统AS内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;当网络拓扑发生变化时,协议可以自动计算、每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新,极大地方便了网络管理。
2、路由id(router id):
- OSPF区域内路由器的唯一标识,具有全局意义,以IP地址形式配置
3、ospf区域
1.区域的作用:
- 为了适应大型的网络,OSPF在AS内划分多个区域;每个OSPF路由器只维护所在区域的完整链路状态信息
2.区域ID:
- 以十进制的数字或者IP形式表示区域ID
- 骨干区域Area 0。负责区域间路由信息传播
- 非骨干区域相互通信必须通过骨干区域
3.区域分类
- 标准区域:
普通的 区 域0和其他数字区域
- 特殊区域(文章后面有详细介绍):
- 末梢区域stub
- 完全末梢区域stub no-summary
- 非纯末悄区域nssa
- 完全NSSA nssa no-summary
4.域间路由
- 作用:负责区域之间的路由表传递和区域汇总
- 区域之间路由器: ABR
- 自制系统边界路由器:ASBR
2、OSPF协议工作介绍:
- 首先需要了解他的5种数据包和7个状态机
1.ospf的5种数据包:
序号 | 数据包名称: | 作用: |
1 | Hello | 发现邻居 ;维护邻居关系,保证邻居的双向通信;选举DR/BDR |
2 | DBD (Database description) | 数据库描述包。 向邻居交互数据库摘要信息以同步链路状态数据库 |
3 | LSR ( LSA Request) | 链路状态请求。 向对方请求对方有而本地没有的LSA信息 |
4 | LSU (LSA Update) | 链路状态更新。 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含多种、多个的LSA |
5 | LSack (Link State Acknowledgement) | 链路状态确认。 对DBD 报文进行确认,需要对每个LSA分别确认 |
2.数据包的扩展:
1.Hello包:
序号: | 数据名称 | 描述: |
1 | Hello and dead intervals | hello包进行周期性收发 hello time=10s或者30s dead time = hello time * 4 = 40 或 120 |
2 | Area ID | 区域id;判断区域划分规则以及是否为ABR |
3 | Authentication password | 认证字段 |
4 | Stub area flag | 末梢区域标记 -- 判断是否为特殊区域(4类) |
5 | Network Mask | 子网掩码;华为系要求邻居间直连接口ip的子网掩码必须一致 |
- 邻居间Hello包中的以上5个点必须保持一致才能够建立成为邻居。
2.DBD包:
1.MTU值:
- 邻接间的MTU必须一致,否则将卡在exstart或exchange状态机
- 华为默认为开启MTU检测
- 在直连邻接的接口上开启MTU检测,必须两端均开启
[r1-GigabitEthernet0/0/1]ospf mtu-enable
2.DBD包中的标记位(I、M、M/S):
- I :为1标识该DBD包为本地发出的第一个DBD
- M :为1标识该DBD包不是本地发出的最后一个DBD包
- M/S :为1标识本地为主,为0代表从
3.隐性确认
- 使用一个携带载荷的LSA,使用与对方发送的LSA序列号相同的序列号来回应,一方面告诉对方,这个数据包我收到了,另一方面把对方需要的LSA发送给对方,这种可以节约2次ACK交互次数的确认
- 主从被选举后,从 将使用 主 的序列号为确认接收到了主的DBD包,即使从设备已经不需要发送DBD,依然要使用未携带信息的DBD来进行隐性确认;
3.ospf的7种状态机:
序号: | 状态机名称: | 描述: |
1 | Down | 路由器之间处于互不认识,当他们接收到hello包就进入下一个状态机 |
2 | Init(初始化) | 接收到对方发送的hello包中,若存在本地(自己)的RID,就进入下一状态。(另外hello包中存在五个数据是判断能否成为邻居的重要标志) |
3 | 2way(双向通讯) | 邻居关系建立的标志(即已经确认双方都对方的rid) 接口网络类型(工作方式)判断是否进入下一个状态机 点到点网络直接建邻接(跳过DR/BDR选举) MA网络将进入下一个状态机,进行进行40S的DR/BDR选举 非DR/BDR之间不能进入下一个状态机,仅维持为邻居关系 |
4 | Exstart(预启动) | 使用不携带目录信息的DBD包进行主从关系选举,通过判断DR优先级(默认都为1),故一般使用RID进行判断,RID数值大为主Master(DR),优先进入下一个状态机; 主从目的主要在于信息交互的有序性,避免同时收发造成网络拥塞。 选举完成后 邻接或保持邻居问题已解决,将在下一个状态机中进行链路和路由交换 |
5 | Exchange(准交换) | 使用DBD携带目录信息,进行共享交互 |
6 | Loading(加载) | 获取未知的LSA信息。查看完 邻接的目录信息后,针对本地未知的LSA,使用LSR包进行查询,对端使用LSU进行应答, 本地接收到LSA后使用LSack进行确认 |
7 | Full(转发) | 最终状态路由加载完成,日志中邻接关系建立的标志 |
1.邻居变成邻接的关注条件:
- OSPF协议在不同网络类型的接口上,其工作的方式不同
- 邻居建立以后通过关注条件:接口网络类型(工作方式),判断是否能够由邻居建立成为邻接(毗邻)
序号: | 名称: | 描述: |
1 | p2p(点到点) | 接口:ospf默认接口,环回,HDLC/PPP/GRE 邻居的发现:自动 Hello time: 10s DR/BDR选举:无 所有邻居直接建立为邻接关系 |
2 | p2mp(点到多点) | 邻居的发现:自动 Hello time: 30s DR/BDR选举:无 所有邻居直接建立为邻接关系 |
3 | BMA (广播型多路访问) | 接口:以太网 邻居的发现:自动 Hello time: 10s DR/BDR选举:有 |
4 | NBMA (非广播多路访问) | 接口:帧中继、MGRE 邻居的发现:自动 DR/BDR选举:有 |
- MA(MANBMA)网络中,由于OSPF协议需要邻接关系间进行数据库对比,故不支持接口水分割(存在区域水平分割);若两两间均为邻接关系,将可能出现大量的重复更新,因此在MA网络中的ospf协议将进行DR/BDR选举,所有非DR/BDR设备间维持邻居关系,不进行数据库共享。
- 注:环回接口为虚拟接口,虽然显示工作方式为p2p,但实际上不是真正的p2p,而是环回的特有工作方式----无hello包收发, 以32位主机共享路由。
2.DR/BDR选举:
选举意义:
DR 在多路访问中可以减少邻接关系和 LSA 的泛洪。如果设备之间建立全互联的邻接关系, LSA 泛洪和处理占用系统资源和链路资源。
如果选举一个DR/BDR , 所有设备都和DR/BDR 建立full的邻接关系,DRothers 之间停留在Two-way , DRothers 和DR/BDR 之间交互LSA 就可以了,这样可以减少邻接关系和 LSA 的泛洪。
BDR 是DR的备份。
简化网络的拓扑结构,在广播和NBMA 中DR 是一个伪节点,每个设备只要计算到达DR 的开销即可,画路径矢量图的时候会用到
选举规则:
1)先比较参选接口的优先级 0-255 默认为1,数值大优。
2)若优先级相同,比较参选的RID,数值大优。
DR优先级修改最大,BDR次大
干涉选举:
修改参选接口的优先级
[r1]int g0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 0~255 --- 接口优先级为0则弃选
选举的非抢占性:
1)修改后该网段依然维持原有角色。
2)原因:因为在MA网络中所有D Rothers是和DR建立邻居的。如果新加入的路由器抢占DR位置,会导致其他所有路由器断掉现在的邻居,和新加入的路由器建立邻居,由于需要重新选举DR、建立邻居、传递更新计算路由,会导致短时间的断网现象,会导致网络的不稳定。
3)若希望重新选举,需要重启该网段所有设备的OSPF进程。
<r1>reset ospf process 重启ospf进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y
3.mgre中使用ospf需要注意点:
- 在MGRE中,由于MGRE和GRE均使用 tunnel接口,故工作方式均默认为p2p 。在普通的GRE中,由于GRE本身就是点到点网络类型,所有p2p工作方式正常;而MGRE为多点的MA环境,再使用p2p工作方式将出现故障。
- 所以在此工作方式下需要修改接口的工作方式。修改接口方式可改为p2p,p2mp,broadcast
- 由于p2p和 broadcast 的 hello time均为10s,故将能建立邻居关系,但p2p不进行DR/BDR选举,所以建邻后无法正常收敛。因此该网段所有接口必须修改成一样的工作方式。
- P2mp是为帧中继这种物理的NBMA网络设计,在MGRE环境中不建议使用。若全修改为p2pm会出现选路不佳,故最佳使用broadcast
[r1]int t0/0/0
- 要注意的是:在MGRE环境中,若网络拓扑为星型(点到多点),且所有接口的工作方式均需要修改为broadcast;但由于分支站点之间没有伪广播,无法知道对端的存在,故DR/BDR选举将混乱;只能让中心站点成为DR,取消BDR(通过干涉选举实现)。 补充内容:关于MGRE的拓扑
- 补充内容:关于MGRE的拓扑以及运行OSPF的方案:
- 星型 --- 中心站点固定ip地址,所有分支仅和中心注册。---所有接口工作方式为broadcast,仅中心站点为DR,无BDR
- 全连网状 --- 所有站点均为固定ip,所有设备均为中心,两两间均注册。---所有接口工作方式为broadcast;DR/BDR将默认自动选举成功
- 部分网状 --- 部分设备为固定ip地址,存在部分中心和部分的分支。---所有接口工作方式为broadcast;合理安排DR的位置
3、OSPF 扩展知识点:
1.ospf不规则区域
1、分类:
- 远离了骨干的非骨干(area0 - area1 - area2)----area1和area2的abr是一个非法abr不进行区域共享,导致a0和a1与a2互不通。
- 不连续骨干(area0 - area1 - area0)----abr均合法但是两个a0互不通
均导致全网不可达
2、解决方案:
序号: | 名称: | 描述: |
1 | tunnel | 在合法与非法ABR间使用tunnel建立一个新的网段(类似连接一条独立的网线),然后将该网段宣告到ospf协议中 缺点:(1)选路不佳。( 2)周期和触发信息对中间穿越区域照成影响 |
2 | OSPF虚链路 | 合法的ABR与同一区域的非法ABR,建立虚链路;非法ABR获得合法ABR授权后,可进行区域间路由的共享。两台设备均需配置 优点:由于没有新的网段链路出现,不会像tunnel一样选路不佳; 缺点:周期和触发的信息对中间穿越区域照成影响 cisco系 --- 在虚链路上取消周期更新、周期保活 -- 失去可靠性 华为系 --- 保留周期信息,对中间区域照成影响 |
3 | 多进程双向重发布(最优) | 多进程:一台路由器上运行多个OSPF进程,可以分别建立自己的邻居,每个进程拥有独立的数据库,不共享信息;只是将各自计算所得路由加载于同一张路由表中;路由器单一一个接口只能工作在唯一一个进程中;类似于在同一台路由器上允许多种动态路由协议的效果; 重发布:一个网路中,若同时运行多种路由协议;默认协议间不兼容,无法共享路由;可以在两种协议间配置ASBR,ASBR(自治系统边界路由器,协议边界路由器)必须用不同的接口工作不同的协议中;通过两种协议获取到两边的路由,默认这些路由不共享,重发布技术可以实现路由共享,最终全网可达; |
2.OSPF的数据库表:
1、LSDB:
<r1>display ospf lsdb 查看OSPF数据库目录
LSDB中装载了所有可以从LSU数据包中学习到的LSA(链路状态通告 —— 一条拓扑或一条路由条目被称为一条LSA);
OSPF协议的数据库是本地所有LSA的集合,不同网络环境下将产生不同类别的LSA
2、如何查看一条LSA的具体信息
<r1>display ospf lsdb router 2.2.2.2
router ———————————————— 类别
2.2.2.2 —————————————————————— link-id
以下内容为所有类别LSA均携带的基本信息:
序号: | 名称: | 描述 |
1 | Type | 类别名(此处为1类) |
2 | Ls id | 在目录中页码号 |
3 | Adv rtr | 通告者的RID,该条LSA发起 源 的设备RID |
4 | Ls age | 老化时,单位s 周期1800归0,触发当下归0 最大老化3609 |
5 | Len | 长度 |
6 | seq | 序列号 |
7 | chksum | 校验码 |
各种类别的LSA:
类: | Type | 传播范围 | 通告者 | 携带内容 | Link-id |
LSA1 | Router | 单区域 | 该区域每台OSFP路由器 | 本地直连拓扑 | 通告者RID |
LSA2 | Network | 单区域 | 该网段的DR设备 | 单个MA网段的拓扑 | DR接口的ip地址 |
LSA3 | summary | 整个OSPF域 | ABR 经过下一台ABR进入新的区域时,修改为新经过的ABR | 域间路由条目 | 域间路由的目标网络号 |
LSA4 | asbr | 除ASBR所在区域外的整个ospf域;ASBR所在区域通过1类告知ASBR位置 | ABR,和ASBR在同一区域路由器,该路由器同时连接骨干区域,是一台ABR 经过下一台ABR进入新的区域时,修改为新经过的ABR | ASBR位置验算 | ASBR的RID |
LSA5 | ase | 整个OSPF 域 | ASBR | 域外路由条目 | 域外路由的目标网络号 |
LSA7 | nssa | 单个NSSA区域 | ASBR 从该NSSA区域进入骨干区域时将被转换为5类 | 域外路由 | 域外路由目标网络号 |
3.OSPF的LSA优化:
1、目的和方式:
- 目的减少LSA的更新量
- 汇总 -- 优化骨干区域
- 特殊区域 -- 优化非骨干区域
2、汇总
域间汇总 :ABR设备基于某个区域的1/2类LSA计算所得的最佳路由,共享给其他区域时,进行汇总传递
域外汇总:ASBR重发布进入OSPF域路由进行汇总配置。在ASBR重发布路由后,同时进行汇总配置
3、特殊区域
优化非骨干区域的lsa数量
要求:不是骨干区域,不能存在虚链路
分类:
序号: | 名称: | 描述: |
1 | 末梢域 Stub | (不能存在ASBR) 该区域将拒绝4、5LSA的进入,同时由该区域连接骨干0区域的ABR向该区域,发布一条3类的缺省路由 |
2 | 完全梢 Stub no-summary | (不能存在ASBR) 在末梢区域的基础上,进一步拒绝3类的LSA,仅保留ABR发送过来的3类缺省;先将该区域配置为末梢区域,然后仅在ABR上定义完全即可 |
3 | 非完全末梢区域 Nssa | (存在ASBR) 该区域拒绝4/5类的LSA;本地的ASBR产生的域外路由基于7类进行传输;当7类LSA需要通过NSSA区域的ABR进入骨干区域,将由该ABR进行7转5,以5类发现骨干区域,7转5的这台ABR同时成为一台ASBR |
4 | 完全Nssa Nssa no-summary | (存在ASBR) 在NSSA的基础上进一步拒绝3类的LSA,由该区域连接骨干的ABR发布一条3类缺省。 先将该区域配置为NSSA,然后仅在ABR定义完全即可 |
4.认证
1、定义:
直连的邻居或邻接关系间,进行认证配置后,5种数据包中均携带身份核实的密码
且华为设备会对更新信息进行加密 -- 前提为认证方式选择密文认证
2、认证分类:
序号: | 方式: | 描述: |
1 | 接口认证 | 直连的邻居间秘钥和编号、模式必须完全一致否则无法建立邻居关系 |
2 | 区域认证 | 假设在R1上开启区域0的区域认证,实际就是在R1上所有宣告到区域0接口上配置了接口认证 可以理解为批量的完成了接口认证; |
3 | 虚链路认证 | 在虚链路的两端配置 |
配置命令在后面部分
5.沉默接口:
- 只接收不发送路由协议信息,用于路由器连接邻居或邻接的骨干链路,不得用于连接终端用户的接口
6.修改计时器:
- 邻居间该时间必须一致,否则无法邻居关系
- Ospf的hello time为10s或者30s。若hello time为10,不再建立修改若为30s可以结合网络的实际硬件处理能力,适当修改计时器,加快收敛速度
7. 缺省路由
- 3/5/7类缺省
1、3类缺省:
- 是由配置特殊区域后(末梢、完全末梢、完全NSSA),特殊区域连接骨干区域的ABR自动发布。
- 普通NSSA不产生3类缺省;
2、5类缺省:
- 将边界路由器上,路由表中通过其他协议产生的缺省路由(最常为静态缺省)重发布到本地的OSPF协议中
- 因此若边界路由器的路由表还未拥有缺省时,配置该命令将无法发布缺省到其他邻居;
[r3-ospf-1]default-route-advertise
强制本地向所有邻居重发布缺省路由,即便本地路由表中没有缺省,也会发布
[r3-ospf-1]default-route-advertise always
3、7类缺省:
- 配置特殊区域NSSA时,NSSA区域连接骨干的ABR将自动发布缺省路由。
- 切记:由于特殊区域会产生缺省路由指向骨干区域;故必须关注网络中ISP所在的位置,否则可能由于缺省的互指产生环路 --- ISP连接骨干以外的任何区域,那么该区域将不能配置为特殊区域;
由NSSA区域内部存在其他协议获取的缺省路由时,可以重发布到该NSSA区域
[r6-ospf-1-area-0.0.0.2]nssa default-route-advertise
…………