虚链路

虚链路的作用

  • 一般用于临时或备用的连接,在设计中应该避免使用虚链路。使用隧道技术在某些场景下可以替代虚链路,如GRE隧道;使用不同OSPF进程进行路由重引入。
  • 虚链路和隧道的区别:
  1. 报文的不同,虚链路是封装在IP报文中,并且通过单播进行发送,而隧道技术是将报文封装在隧道中本质上还是通过组播的形式进行报文发送的。
  2. 虚链路可以穿越一个区域,隧道可以穿越多个区域,虚链路需要有到达对方的路由并且在同一区域才能建立邻居,而隧道技术只要双方路由可达,就能建立邻居,可穿越多个区域。

虚链路的使用场景

  • 用于连接与骨干区域不相连的非骨干区域
  • 用于连接不连续的骨干区域
  • 用于连接两个非骨干区域。
  • 用于骨干区域的备用链路
  • 用于路径优化时使用

虚链路的缺点

  • 易出现环路
  • 不能将骨干区域的汇总发布到虚链路穿越的区域(虚链路防环机制)

虚链路的状态监测

  • 虚链路上会周期10s发送单播Hello报文。其中该单播报文的源地址为发送该报文的设备的接口地址,目的地址为虚链路对端接受该报文设备的入接口地址。
  • 通过直连链路故障可以检测虚链路上的故障。

虚链路的认证

  • 对区域0认证也需要对V-link做认证,可以在虚链路后直接配置,也可以开启一个区域0,在区域0下面配置认证信息。

特殊区域

  • Stub区域:stub区域中的ABR不会传播外部路由5类LSA,这样stub区域的路由信息和LSDB规模会大大减小,stub区域是位于AS边界,是一个OSPF非骨干区域,在stub区域中为了保证外部路由可达,ABR会生成一条默认3LSA去往外部路由,并发布给区域内其他路由器。stub区域不存在LSA4和LSA5,LSA4和LSA5由一条缺省的LSA3代表。
  • total-stub区域(完全stub区域):完全stub区域内不允许外部路由5LSA和区域间路由3LSA在区域内传播,区域路由器必须通过ABR发布的缺省的路由(3LSA)到达外部路由和区域间路由。完全stub区域不存在LSA3,LSA4,LSA5,他们由一条缺省LSA3代替
  • NSSA区域:NSSA区域允许本区域内的ASBR发布少量的外部路由,但不允许其他区域的外部路由LSA5进入本区域,到达外部路由只能通过本区域的ASBR到达。ABR会产生一条默认路由去往外部路由7LSA,此时有两种情况:
  1. 如果希望由本区域ASBR引入的外部路由从ASBR走,而其他区域外部路由由ABR走,则NSSA区域中ABR会产生一条缺省路由7LSA并发布到NSSA区域,此时去往ASBR引入的外部路由可以由ASBR走,去往其他区域的外部路由可以通过ABR走。
  2. 如果希望去往外部路由通过ASBR走,那么需要在ASBR进行手动配置,使得ASBR产生一条默认路由LSA7,此时所有的外部路由都会经ASBR走。
  • 注:只配置了NSSA区域是不会自动产生缺省路由的,如果区域内有两台ABR,那么7转5由router-ID大的来做。
  • total-NSSA区域(完全NSSA区域):完全NSSA区域不允许存在区域间路由3LSA和其他区域外部路由(4LSA/5LSA),去往区域间路由(3LSA)由ABR产生一条缺省路由(3LSA)到达,去往其他区域外部路由,由ABR产生一条缺省的默认路由(7LSA)到达。完全NSSA区域不存在3LSA,LSA4和5类LSA,LSA由缺省代替,LSA3由缺省LSA3代替,LSA4和LSA5由缺省LSA7代替。
  • 特殊区域配置时应注意以下几点:
  1. 骨干区域不能被配置为stub区域
  2. 要配置stub区域需要保证区域内每一台路由器都配置stub属性
  3. stub区域不能存在ASBR
  4. 虚连接不能穿越stub区域
  • stub/total stub区域优缺点:
  1. 优点:减少LSDB的规模,使得性能较差的路由器可以放置在此,减少路由震荡。
  2. 缺点:可能存在次优的问题,如下图:


认证

  • 接口认证和区域认证
  1. 接口认证主要是对接口发送的报文和接受的报文做认证,可以配置空认证,明文认证和密文认证。
  2. 区域认证对所有在此区域的接口开启认证包括area0的虚链路,可以配置明文认证和密文认证。
  3. 接口认证优于区域认证,不同的认证方式可以建立邻居关系只要认证类型和密钥一致。
  • 空认证,明文认证和密文认证:
  1. 空认证:不做任何认证
  2. 明文认证:认证密码通过明文的方式发送,安全性较低
  • 密文认证:认证密码通过hash进行计算得到hash值,通过发送hash比较做认证,hash值由密码,ospf的payload以及key id经过hash计算生成,安全性更高。
  1. key-id:一次认证密钥的标识符
  2. Seq Number:序列号,防重放攻击,对收到的报文会将该值记录下来,下一次收到的报文的序列号必须比记录的大才可以接受,可以防止攻击攻击者截获OSPF报文再发送出来干扰邻居关系状态。
  • OSPF认证特点:认证信息携带在hello报文里面,所以会对每一个hello报文每一类报文都做认证
  • 认证和加密的区别:
  1. 认证主要实现的是确保报文来源的可靠性,确保报文是一个合法邻居发送的,以及防范报文传递过程中被篡改和被他人伪造,认证并不会实现对报文信息的加密,报文的内容还是明文。
  2. 加密主要实现信息的私密性,只能够被解密的设备所读取并且处理,通过嗅探无法实现报文内容的获取,加密机制能被解密,认证机制理论是不可逆的。
  3. OSPFv2支持认证,不支持加密。ospfv3的报文没有专门用于认证和加密的字段,借用于IPV6的报文头部AH报头或者ESP报头实现。

OSPF过滤路由的方式有哪些?

  • 由于OSPF属于链路状态路由协议,区域内LSDB是同步的,路由是根据LSA计算出来的,所以OSPF过滤路由应该从两方面考虑,一是直接过滤LSA,没有LSA自然没有路由,二是将LSA计算出来的路由禁止加入路由表中,但实际上LSA自然就没有路由。二是将LSA计算出来的路由禁止加入路由表中,但实际意义上LSA还在LSDB中。其中LSA的过滤有LSA3和LSA5的汇总,特殊区域,接口下配置ospf filter-lsa-out等方式。过滤路由表有:在OSPF中配置filter-policy inbound等方式(在这里只能用inbound控制路由不加入本地路由表。不能使用outbound影响其他路由器加表)