华为数通 OSPF

技术原理

OSPF(Open Shortest Path First开放式最短路径优先),也是一个内部网关协议(IGP),相邻的路由器之间形成令居关系,互相交换链路状态和路由信息,OSPF路由与其他路由比较后根据最短路径算法算出最优路由,将最优路由放入全局路由表。

技术特点

OSPF运行在IP协议上,协议号是89

协议特点:

  • ospf设备之间需要配置相同的area才能建立关系交互信息,设备之间又有四种类型来建立关系,常用的就是MA和p2p也就是广播和点到点,一个区域内存在多个设备则会选举dr和bdr,其他设备会转变成邻居关系。p2p网络不会选举dr
  • 如果设备之间的网络类型不一致(一方是广播一方是p2p),关系会正常建立,但是不会交换路由信息
  • OSPF hello报文发送和死亡时间为10s/40s

三张表:

  • 邻居表: 描述邻居的建立情况,建立的状态(display ospf peer bri)
  • lsdb:lsa的数据库,里面描述完整收集到的lsa信息(display ospf lsdb)
  • ospf路由表:ospf计算的路由的存放位置,最终会下发到全局路由表(display ospf routing)

名词介绍:

  • router-id:设备在ospf中的标识,设备会自行选择router-id。 1、选择loopback地址大的,如果没有loopback地址则选择接口ip地址大的,2、默认选择第一个配置的ip地址
  • area:划分区域,0为骨干区域,其他为非骨干区域。 非骨干区域必须连接骨干区域,非骨干之间不能相连。 作用减少设备间的lsa
  • cost:路径开销,带宽参考值/接口带宽=cost,默认带宽参考值为100m

五种报文:

  • hello:作用发现邻居,保持活跃,缺省情况下10s一次,40s超时
  • DD:包含本地lsdb的摘要信息,类似目录信息
  • LSR:包含需要请求的lsa摘要信息
  • LSU:包含完整的LSA信息,更新给对方
  • LSA ck:表示我收到了

关系建立步骤:

  • 邻居关系
    • down:刚刚打开ospf
    • init:收到hello,校验没有问题,active字段没有描述我的router-id
    • 2-way:在hello包中有描述我的router-id
  • 邻接关系
    • exstart:交换dd报文,选举主从,选router-id大的,作用是保证dd报文不会被丢失
    • exchange:交换正式的dd报文,包含lsa的摘要信息
    • loading:交换完成,进入最后一个步骤,交换lsa
    • full:收集到完整的lsa后,置位full状态

OSPF支持四种网络类型:

  • Broadcast(广播,也叫BMA)
    • 在以太网接口(E0/1、G0/1)默认就是广播
    • 在这种类型下会建立DR、BDR以及DRother。
  • P2P(点对点)
    • 在串行接口(S1/0),链路层协议为PPP或者HDLC时默认类型就是P2P
  • 帧中继网络(使用DLCI标签决定网络映射关系)帧中继现网很少,ATM等在取代它:
    • NBMA
      • 全连接下默认用这个类型(有多少设备就和多少设备绑定DLCI映射关系决定路由走向)
      • 不支持广播,但是建立同样建立DR、BDR。所以需要在OSPF视图内指定邻居:peer 对端route id
    • P2MP
      • 非全连接可以修改为该类型(指定一个设备将作为转发DLCI的中继设备)

DR和BDR

BMA和帧中继的NBMA都属于MA网络,这种网络的邻接关系数量非常的多且复杂,所以在MA网络中有三种角色DR、BDR以及DRother。
DR相当于老大,在MA网络中负责与其他所有路由器建立邻接关系包括BDR,收集和通告链路状态信息。
BDR相当于二把手,如果DR故障了,BDR发现网络中没有DR那么它将成为DR再从其他DRouter中选出一台BDR。
在MA网络中DRother至于DR和BDR建立邻接关系并且交换链路状态信息,DRother之间建立2-way邻居关系但是不交换链路状态信息。
DR和BDR是设备中一个接口在一个网段中的角色,两个接口选举DR的时候优先级越大越优,如果将已经成为DR或者BDR的接口优先级调成0那么它会立即变成DRother,因为优先级为0不参与选举,而且DR和BDR是无法抢占的,只有在DR或BDR出现故障下才会选出新的DR或BDR,就算有更高优先级的设备加入如果DR和BDR已经存在那么它只能是DRother

LSA类别介绍

1类LSA (Router LSA)

特点:描述设备的连接信息,路由信息,类似于个人自我介绍。由区域内所有路由器产生,并且只能在本区域内广播
1类LSA是必须产生的,P2P下1类LSA存在掩码信息,MA下不存在网路信息,因为会有2类LSA。1、2类LSA属于区域内的LSA。

查看命令:dis ospf lsdb router

  • Linkstate ID:为通告路由器的router-id
  • Link Type:描述是拓扑信息还是路由信息
    • stubnet:描述的路由信息,在拓扑计算完了后挂在拓扑上的信息,
      • data:掩码
      • link id:路由网络号
      • metric:路由的开销
    • p2p:拓扑信息,用来计算拓扑使用
      • data:自己的接口ip
      • link id:连着哪台设备,他的router-id
      • metric:拓扑连接设备的开销
    • transnet:拓扑信息,用来描述广播网络的连接信息
      • data:是自己的接口ip
      • link id:dr的地址信息,同事指向对应的2类LSA,下一步递归查询2类,进一步计算广播网络的拓扑
      • metric:描述指向dr的开销

2类LSA (Network LSA)

特点:用来描述广播网络环境的拓扑信息和路由信息(DR产生),点对点类型没有2类。
查看命令:dis ospf lsdb network

  • ls id:标识作用:DR的接口,DR产生2类的时候会用接口地址作为LS ID
  • ad rtr :adv:那台设备发布的这个2类,那么就会把router-id写在这里
  • net mask:掩码信息,通过掩码+ls id组合成网段信息
  • att router :描述这个广播网络环境的连接信息

3类LSA (Network summary LSA)

特点:主要的作用是打通区域间通信,这一类LSA由ABR产生的
查看命令:dis ospf lsdb summary
防环机制:1、所有区域都需要和骨干区域互连(abr:连接着骨干区域和非骨干区域的设备,2、ABR不会把描述本区域的3类LSA,注入到该区域。3、ABR从非骨干区域收到的3类,不会计算/也不会重新注入到骨干区域

  • ls id:网段信息
  • ad rtr :通告者信息
  • net mask:路由掩码得信息
  • metric:开销(ABR计算之前到目的地开销,然后集成后发送到其他区域的)

4类LSA (ASBR summary LSA)

特点:用来描述asbr的信息,asbr的5类lsa通告到其他区域的时候,会同时产生4类,用来协助其他区域计算路由,这一类LSA由ABR产生的,没有5类就没有4类,通告给除外ASBR区域之外的区域。
查看命令:dis ospf lsdb asbr

华为数通 OSPF
本区域不会有4类,其他区域会接收一条由本区域的ABR生成的4类。
  • Ls id : asbr的route id
  • metric:描述abr到asbr的距离

5类LSA (Autonomous system external LSA)

特点:由asbr产生的,在引入外部路由的时候,产生的5类lsa,类似3类。常规区域(除特殊区域)传来的域外路由信息,5类泛洪到整个AS,但是其他区域是不知道ASBR的,所以需要依赖ABR宣告4类给其他区域,告诉其他区域ASBR的位置,需要到达外部路由交给ABR,ABR再转给ASBR。
查看命令:dis ospf lsdb ase
引入外部路由命令:import-route static/rip/ospf/bgp/isis (cost */type */tag */route-policy *,可选)

华为数通 OSPF
Forwarding Address:如果引入到OSPF中的外部路由的下一跳在一个OSPF路由域内,则该参数被设置为ASBR路由表中该路由的下一跳。
如果没有指定这个参数,到达该路由的流量会交给ASBR,在该情况下会形成次优路径。
  • type1:沿途路径开销(本设备到abr的开销+abr到asbr的开销)+路由开销
  • type2:计算开销的时候,不计算内部开销,只看5类lsa的开销
    • 比如ASBR传入1.1.1.1/32路由的时候开销是10,如果是type2的话,泛洪给所有路由器接收到的该路由的cost都是10。如果是type1的话,比如ASBR到另一台DRther之间有1的cost开销,那么那台DRther收到1.1.1.1/32路由的开销则是11。
    • 在开销一致的情况下优选type1,路由引入默认type 2

7类LSA (NSSA External LSA)
特点:NSSA区域产生,类似5类,主要解决特殊区域不能存在5类的问题
查看命令:dis ospf lsdb nssa

特殊区域

特点:优化路由条目,stub和nssa会优化4/5类lsa,并且对区域下发缺省路由,不同的是nssa区域如果内部有类似直连路由引入的情况下abr会下发7类lsa,totally stub和totally nssa会优化3/4/5类,totally nssa和nssa情况一样。
如果确定该末梢区域不会再有外部路由,那就设置stub或者totally stub精简路由的效果。如果有可能会有外部路由,设置成NSSA或者totally nssa,引入的外部路由会变成7类,下发一条3类和7类的缺省路由。
stub和nssa的区别就在于stub不能引入外部路由,nssa可以引入外部路由,并在区域内通过7类lsa宣告

  • stub:在特殊区域的abr,在给特殊区域注入路由的时候,过滤掉4/5类,同时向特殊区域,下发缺省路由
    • 命令:stub
      • ospf内的区域视图下,区域内所有路由器都需要键入
  • totally stub:在特殊区域的abr,再给特殊区域注入路由的时候,过滤掉3/4/5类,同时向特殊区域,下发缺省路由
    • 命令:stub no-summary
      • 只在stub区域内的ARB下键入,其他路由器键入stub即可
  • NSSA:在特殊区域的abr,过滤掉4/5类,内部如果有引入外部路由的话,以7类的方式通告,ABR7类转5类发布到骨干区域,同样会下发一条缺省路由到内部。
    • 命令:nssa
      • 所有路由器都需要键入,配置为nssa区域
    • 命令:nssa [default-route-advertise]
      • 这条是可选命令,如果在ABR用无法路由表是否存在缺省路由,都会产生LAS 7类缺省路由。
      • 如果在ASBR上用的话只有路由表中存在缺省路由,才会发送LSA 7类缺省路由,目的是让区域内的路由不管是去往外部路由的流量走ASBR出去,包括去往其他区域的流量也走向ASBR出去,相当于抢占了ABR的功能
  • totally NSSA:过滤掉3/4/5类,同样会下发一条缺省路由。
    • 命令:nssa no-summary
      • 屏蔽区域间路由,同时生成一条LAS 3向该区域发布缺省路由
华为数通 OSPF
stub-nosummary
华为数通 OSPF
stub
华为数通 OSPF
nssa,屏蔽4/5类,ASBR ar3学习到3类,学习到7类缺省路由。AR1学习到由ABR ar2发布的5类LSA,ar2转换区域1内的7类为5类向外发布。
华为数通 OSPF
nssa no-summary,ar3学习到3、7类缺省路由。区域内屏蔽3、4、5类LSA

路由聚合(作用是为减小路由表规模优化路路由,将一组前缀相同的路由汇聚成一条路由)只能在ABR、ASBR发布,在汇聚的区域内输入命令

  • asbr上5类聚合(在ospf视图下配置),在network引入的路由上配置该命令,对多条路由进行聚合,缩小路由条目。多数用在边界路由器也就是asbr上。
    • ospf 1
    • asbr-summary 172.16.0.0 255.255.252.0
      • advertise: 发布汇聚后路由,默认
      • not advertise:不发布汇聚路由
      • cost:配置汇聚路由开销
  • abr上3类聚合,将多条路由引入到其他区域时,通过修改子网的方式聚合成一条或者缩小成几条路由,有效的优化路由条目
    • area 1
    • abr-summary x.x.x.x y.y.y.y
华为数通 OSPF

虚连接 (OSPF的规则不允许非骨干区域之间路由信息,要求非骨干区域必须和骨干区域相连)。在不规范的区域架构下使用虚链接,临时使用的一个手段,但不提倡使用。

它的作用是将两个非骨干区域之间建立一条虚拟链路发布路由信息,虚链接之间传输的区域标识为区域0(非真的区域0,而是虚连接的特性就是会改成区域0才能传递路由信息)。

华为数通 OSPF
ABR1所属区域20无法和骨干区域0相连接,和ABR2之间建立虚链路,交换路由信息。
vlink-peer 2.2.2.2

静默端口(作用是指定用户侧端口不发hello包,不参与ospf但网络正常宣告)

ospf 1
silent-interface gigabitethernet 0/0/*

作者:Zleoco,如若转载,请注明出处:https://www.zleoco.com/?p=1381

发表回复

您的电子邮箱地址不会被公开。