问个问题,IS-IS协议有必要了解吗?感觉IS-IS使用场景比较少。。。可以说较为小众,相关概念应该和OSPF差别不大吧?
目录
OSPF 【RFC1147】Open Shortest Path First 开放最短路径优先
通过LSA泛洪扩散到整个区域,同区域内所有路由器都会形成相同的LSDB
当路由器LSDB完全相同时,每台路由器将以自身为根,使用SPF计算一个无环拓扑,描述自己所知道的到达每一个目的地的shortest path
区域内OSPF是一种链路状态协议,而在区域间是一种距离矢量协议。OSPF的SPF算法使得区域内无环,层次化结构区域设计,通过骨干区域确保区域间无环路。
同一设备不同ospf进程路由表相互独立,不同进程Router-ID可以一致,区域内不能一致
一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息
OSPF报文类型类比点菜过程打招呼--要菜单--请求点菜--上菜--确认
2-way 【2-Way Received事件】选举DR/BDR
OSPF LSA类型Link-State Advertisement1、LSA谁产生的2、LSA中包含哪些内容3、LSA宣告的范围
LSA Type 1 ——Router LSA all->all
LSA Type 2 ——Network LSA DR->DRother
LSA Type 3 ——Network Summary LSA
LSA Type 7 ——NSSA External LSA
LSA Type 6 ——Group Membership LSA(用于MOSPF)*
ASBR发布external LSA路由信息而不是链路状态信息由发布的ASBR汇总
目的:减少T3和T5 LSA泛洪和节省CPU资源,最大限度减少路由条目,降低由于拓扑变化导致的路由震荡。LSA Type1(O路由)不可汇总,由于传递的是LSDB而非路由条目
使用OSPF多进程,进程间重分布实现LSA Type5路由重分布
华为设备,接口加入ospf area没有相关ospf进程已经区域接口ospf不会生效,需定义ospf进程和区域后接口下配置才生效
SPF算法构建最短路径树,计算到目标网络最短路径(cost)
OSPF 【RFC1147】Open Shortest Path First 开放最短路径优先
OSPF工作原理
通过LSA泛洪扩散到整个区域,同区域内所有路由器都会形成相同的LSDB
当路由器LSDB完全相同时,每台路由器将以自身为根,使用SPF计算一个无环拓扑,描述自己所知道的到达每一个目的地的shortest path
区域内OSPF是一种链路状态协议,而在区域间是一种距离矢量协议。OSPF的SPF算法使得区域内无环,层次化结构区域设计,通过骨干区域确保区域间无环路。
每一台路由器都将从SPF算法树中构建出自己的路由表
- 1) 区域内路由(最优)
- 2) 区域间路由
- 3) E1外部路由
- 4) E2外部路由
OSPF路由计算流程
- 建立OSPF邻居
- 传递LSA
- SPF计算最小路径
- 放入路由表
OSPF技术特征概括
协议号 89 运行在IP层
支持CIDR无类域间路由
一个设备可以存在多个ospf进程
同一设备不同ospf进程路由表相互独立,不同进程Router-ID可以一致,区域内不能一致
使用IP组播收发协议数据,占用的网络流量很小
支持ECMP等价多路径
支持协议报文的认证
无路由自环
收敛速度快,触发式更新
接口敏感型协议
OSPF技术基本概念
自治系统(Autonomous System)
邻居关系(Neighbor)HELLO
- 有端口连接到同一个网段且HELLO互达的两个路由器就是邻居路由器
- DRother间为邻居关系,但非邻接关系,并保持2-way状态
邻接关系(Adjacency)HELLO LSU DBD
- 邻居关系由OSPF的Hello协议维护
- 邻接关系是为交换路由信息而形成的关系,不交换路由不建立该状态
- DR与DRother为邻接关系,full状态
- 此阶段表示设备间交换LSA(exStart状态)
OSPF的三张表
- 邻居表(邻接数据库)
• 包含所有邻居列表
- 拓扑表(链路状态数据库 LSDB)
• 区域所有路由器及其连接状态,同一区域内所有路由器的LSDB相同
- OSPF路由表(转发数据库)
• 描述OSPF进程到达目的网段的最佳路径
• OSPF路由表最佳路径才可能写入全局路由表
OSPF路由角色
- 指定路由器(Designated Router,DR)
- 备份指定路由器(Backup Designated Router,BDR)
OSPF设备角色的作用
- 内部路由器(Internal Router)
• 同一个区域的IR维护相同的LSDB
- 区域边界路由器(Area Border Router)
• 连接到多个区域的路由器
• 为每一个区域维护一个LSDB
- 骨干路由器(Backbone Router)
• 至少有一个端口(或者虚连接)连接到骨干区域的路由器
- AS边界路由器(AS Boundary Router)
• 与其它AS路由器交换路由信息的路由器
• 向整个AS通告AS外部路由信息
OSPF分区分域
- 1.最大限度地减少路由表条目
- 2.本地区域内拓扑变化的影响
- 3.在区域边界阻止LSA的泛洪
- 4.需要分层网络设计扩大网络容量
- 5.路由器A和B都是骨干路由器
- 6.骨干路由器属于区域0
- 7.路由器C,D和E被称为区域边界路由器ABR
- 8.ABR连接着骨干区域和非骨干区域
- 概要【缺图】
OSPF路由信息维护发送地址
- DRother发送至DR的LSU是通过组播地址224.0.0.6
- DR发送至DRother的LSU是通过组播地址224.0.0.5
OSPF DBD 3个标志位
- I位 或称为初始位(initial bit)用于exstart协商主从关系的初始化协商的DBD包,置位1。
- MS位,或称为主/从位(Master/Slave bit)如果始发路由器是Master,置位1,slave置位为0
- M位,或称为后继位(More bit),如果不是路由器发送的最后一个DBD包,置位1.
- 当DBD报文中I位置位0,则意味着ex-start状态结束,主从已经选出,则进入exchange状态,开始用包含LSA头部的DBD交换LSDB
OSPF计时器
- 1800刷新一次LSALSRefreshTime(30分钟)--实际会随机在1790-1810秒内刷新
- 3600秒路由老化时间 MaxAge(1小时)
- 同时收到同一条LSA的两个实例,并且LS序列号也一样时,LS age小的更优先
OSPF Link State ID
OSPF-- LSA类型 定义了不同的路由器类型,因此需要多种LSA, 通常考试考Type1 , Type2, Type3,Type4,Type5, Type7。 type1 是router lsa , 所有的ospf speaker都会产生该类lsa,只在区域内传播,包括路由器自身的接口信息。 type2是network lsa,由DR产生,包括DR相连的所有网络的信息,只在区域内传播。 type3是network summary lsa,由ABR产生,告知区域内路由器区域外的路由条目, 当有多个ABR时使用cost来确定,这个cost是由区域内路由器将外部路由cost和内部cost简单相加所得(metric-type 1), 而不是运行SPF算法,因此 可以说在区域内OSPF是一种链路状态协议,而在区域间是一种距离矢量协议。 type4是ASBR summary, 由ABR产生,用来广播ASBR的位置, 用show ip ospf database 可以看到type4 lsa总是一个host mask 255.255.255.255,并且type5是数据库中唯一没有area 属性的lsa。 type5是external summary,由ASBR产生,是非ospf设备的路由信息, 通常在一个大型网络中,路由器的数据库中会存在大量的此类lsa, 给路由器形成较重的负荷。因此我们可以用stub area 来限制此类lsa的传播。 但是考虑以下情景,如果一台运行ospf的路由器需要连接一个非ospf网络net1,并将非ospf网络中的路由条目通告到ospf中,而又不想在数据库中保存大量的由其他路由器通告的外部网络路由 ,那么这时我们不可以用stub,因为这将阻止所有的external路由,ospf网络将丢失net1的路由信息, type 7 因此被写入了ospf标准。 为了解决这个问题, cisco 规定了nssa, type7在nssa中传播external route,在nssa 的ABR上,type7 被转换成type5 (当然必须type7 lsa P-bit=1),然后由ABR将这些路由条目通告到backbone。————————————————版权声明:本文为优快云博主「平囧囧囧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.youkuaiyun.com/jkoxck/article/details/6449033
- 连接标识(Link State ID)标识此连接的对端。
- 按网络类型区分
• Point-to-Point
• LINK ID 是邻居的RID
• 表示这是一个从本路由器到邻居路由器之间的点到点连接
• TransNet
• 表示这是一个从本路由器到一个Transit网段(例如广播型网段或者NBMA网段)的连接
• LINK ID 是DR的ip地址
• StubNet:表示这是一个从本路由器到一个Stub网段(例如Loopback接口)的连接。
• Virtual:表示这是一个从本路由器到虚连接对端ABR的连接。
- 按LSA类型区分
• Type 1
• link state id 是本身的RID
• Advertising router是本身的RID
• Type 2
• link state id 是DR的ip接口地址
• Advertising router是 DR的RID
• Type 3
• link state id 是ip的网络号
• Advertising router是 ABR的RID
• Type 4
• link state id 是ASBR的RID
• Advertising router是ABR的RID
• Type 5
• link state id 是是ip的网络号
• Advertising router是ASBR的RID
OSPF防环机制
区域间通过ABR将域内路由封装成Type3类LSA发送到其它区域传递域间路由。注意:Type3类LSA不是链路状态信息,是纯粹的路由信息。此时OSPF基于D-V算法,不基于链路状态算法算路。这导致问题:路由自环。因为D-V算法无法消除路由自环。如果无法解决区域间路由环路问题,则区域分层概念就是失败的。分析D-V算法中路由环的产生的原因,主要因为生成路由的路由器没有加入生成者信息,即学习者无法知道最初的生成。而OSPF在生成LSA Type3时先将自己的Router ID加入到LSA中,但如果路由信息传递超过两个区域后,Router ID被覆盖,丧失了最初生成者信息。解决方法:所有ABR将本区域内路由封装成LSA后,统一发给骨干区域,再由骨干区域转发给其他区域。由于骨干区域知道每一条LSA都确切生成者。区域间路由都发送到骨干区域,就不会产生路由自环。由此可知:所有的区域必须和骨干区域相连,每个ABR连接的区域至少有一个是骨干区域。而且骨干区域自身也必须是一体连通的,这就能防止环路产生。
- 区域内通过SPF算法保证无环
- 区域间水平分割Area0统一分发域间路由+DV算法保证无环
OSPF RID(router ID)
- 点分十进制表述
- 配置方式
• 自动
• 将router id作为RID(如存在)
• 最大的环回口IP
• 最大的接口IP(无论开启OSPF或活跃与否)-HW,Cisco为当时最大活动接口IP
• 华为设备,检测RID冲突自动修改RID
• auto-recover 检测到冲突的RID将自动更改
• 手动
• ospf 1 router-id 1.1.1.1 //进程的路由器ID
• router id //全局的路由器ID
- 作用
• AS内唯一标识一台运行OSPF的路由器
• 标识路由源发布者,双点双向等特殊场景供区域间防环(较大方泛洪)
- 注意:修改RID要重置OSPF进程生效,网络需要重新收敛
• reset ospf process 1
• 建议使用lookback口保持RID稳定
FA(Forwarding address)
- 由ASBR产生,由于导入外部路由OSPF域,7类LSA转5类LSA产生的字段
- FA字段值
• 地址全为0(0.0.0.0)
• OSPF域内访问域外以ASBR为下一条查询最优路径,LSA Type 5 LSA的FA地址为0.0.0.0,其他路由器将考虑如何到达产生该LSA Type 5 LSA的路由器来计算外部网段
• 地址不为0
• OSPF域内访问域外以如何到FA地址后算最优路径,LSA Type 5 LSA的FA地址不为0,其他路由器将考虑如何到达该FA地址来计算外部网段
• 产生LSA Type 5 LSA时,FA不为0.0.0.0同时满足
• 引入的外部路由,其出接口启用OSPF
• 引入的外部路由,其出接口未设置为passive-interface(被动接口)
• 引入的外部路由,其出接口的OSPF类型为broadcast(广播或NBMA)
一个既不是DR也不是BDR的路由器只与DR和BDR形成邻接关系并交换链路状态信息以及路由信息
减少邻接关系减少交换次数节约计算资源与流量开销
- DR/BDR
• 特性
• 所有的路由器都与DR和BDR形成邻接关系,DR与BDR互相形成邻接关系
• DR将OSPF packets发往224.0.0.5,所有OSPF路由器都会接受(一般为HELLO报文)
• DRothers将OSPF packets发往224.0.0.6,只有DR/BDR路由器侦听该地址并接受数据
• MA网络中可以没有BDR,DR必须存在
• 如MA所有路由都没有资格选举,会卡在Two-way状态,即没有DR/BDR产生
• 选举
• OSPF DR BDR优先级判断
• 接口priority -- 接口敏感型
• priority取值范围为0-255,接口priority为0,路由器退出DR/BDR选举,255指定为DR
• priority最高的路由器为DR;次优的为BDR
• priority相同,最高router-id为DR
• OSPF DR/BDR选举策略
• 2-way communication状态时即为选举DR/BDR状态
• DR失效,BDR接管并激活一个新BDR选举进程
• 即使拥有最高的priority也不会去抢占现有的DR/BDR
• 选举进程由Hello包承载所需要的参数字段(priority、DR/BDR’srouter-id)
OSPF报文类型类比点菜过程打招呼--要菜单--请求点菜--上菜--确认
HELLO
- 在MA/NBMA网络中自动发现邻居
- 完成OSPF邻居关系建立的参数协商,维护邻接关系
- 组播224.0.0.5,TTL=1,组播节约带宽
- 间隔默认10s(与链路状态挂链)超时时间40s 需要一致
- 是否建立邻接关系,看hello包是否有active neighbor(RID)但还没有交换DBD
• init --> 2-way
• 如果在hello中看到自己的RID进入2-way
- 邻居之间交换的Hello数据包称为keepalive
DBD(DatabaseDescribe)
- 数据库描述,建立邻居时发送,描述自身接口状态
LSR(LinkState Request)
- 链路状态请求,向邻居请求
LSU(LinkState Update)
- 链路状态更新,发送的是LSA
LSAck
- 对DBD、LSR、LSU进行确认
只在建立了邻接关系的路由器间发送
OSPF邻居建立
OSPF邻居建立的条件
- Router-id不冲突,域内必须唯一,否则出现邻居翻滚(直接在down状态,由于以为是自身发出所以有可能导致路由环路)
- Area-id 必须一致
- Hello-interval/Dead-interval一致
- Authentication一致
- stub位一致
- MTU一致(不一致卡exstart,用ip ospf mtu-ignore忽略)
- 邻居间IP地址掩码一致(broadcast环境,p to p环境可以不一致)
- broadcast环境,priority不可以均为0(无法选举出DR-BDR卡2-way)
- OSPF hello包被ACL过滤了(224.0.0.5)
- Network-LSA Type一致(Area-LSA Type不一致 -- 可以建立邻居,在MA网络由于配置网络类型不一致导致没有LSA Type2 LSA无法传递LSU不会更新路由条目
- 非被动接口 passive接口