【HCIE面试系列第六回】有关OSPF VLINK建立原理的再分析

digest 精华[复制链接]
发表于 : 2017-12-27 11:04:43 最新回复:2018-01-02 14:24:56
1399 15
忧郁的红雨伞  导师  

各位好

   上次对ospf虚链路的为何属于AREA0 做了示例说明。同时在分析的过程中也通过引入防火墙对VLINK上发送的协议消息进行了简单说明。但是有个小问题不知大家是否思考过既然VLINK端点发送的OSPF协议消息是以单播形式发送到另一台端点路由器接口地址的那么当端点之间跨越多台路由器时数据报文又是如何转发的呢
   下面通过1个简单的示例加以进一步分析、说明。



    一个简单的拓扑4台路由器互联接口均处于OSPF AREA1中同时在R1与R4之间建立VLINK建立成功后可通过命令查看VLINK的状态如下
      [R1]display ospf vlink 
         OSPF Process 10 with Router ID 1.1.1.1                 Virtual Links 
 Virtual-link Neighbor-id  -> 4.4.4.4, Neighbor-State: Full
 Interface: 12.1.1.1 (GigabitEthernet0/0/0) Cost: 3  State: P-2-P  Type: Virtual  Transit Area: 0.0.0.1  Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1  GR State: Normal 

<R4>display ospf vlink 
         OSPF Process 10 with Router ID 4.4.4.4                 Virtual Links 
 Virtual-link Neighbor-id  -> 1.1.1.1, Neighbor-State: Full
 Interface: 34.1.1.4 (GigabitEthernet0/0/0) Cost: 3  State: P-2-P  Type: Virtual  Transit Area: 0.0.0.1  Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1  GR State: Normal 

  问题1       R1与R4穿越了R2、R3路由器建立VLINK那么R1路由器在通过SPF算法计算出最短路径树后再向R4接口发送单播OSPF消息时是否需要在路由表中存在到达R4接口地址的路由还是在 ospf routing table中存在该条目即可   
   要验证这个问题其实并不难我们可以利用链路状态路由协议的特点结合路由过滤观察效果、得出结论。
   1.由于链路状态路由协议先要同步数据库再计算路由而不是直接发送路由条目而ospf routing table中保存的条目就是经过SPF 算法计算后的最优路由。
      <R1>display ospf routing  
         OSPF Process 10 with Router ID 1.1.1.1                  Routing Tables 
 Routing for Network  Destination        Cost  Type       NextHop         AdvRouter       Area 12.1.1.0/24        1     Stub       12.1.1.1        1.1.1.1         0.0.0.1 23.1.1.0/24        2     Stub       12.1.1.2        2.2.2.2         0.0.0.1 34.1.1.0/24        3     Stub       12.1.1.2        3.3.3.3         0.0.0.1
 Total Nets: 3   Intra Area: 3  Inter Area: 0  ASE: 0  NSSA: 0 
  其中34.1.1.0/24前缀即为R3与R4互联接口所在的网络前缀。
   2.在R1的ospf进程中通过一个路由过滤规则将34.1.1.0/24前缀过滤掉。
[R1]ip ip-prefix 10 index 20 permit 0.0.0.0 0 greater-equal 0 le        [R1]ip ip-prefix 10 index 20 permit 0.0.0.0 0 greater-equal 0 less-equal 32
[R1-ospf-10]dis this[V200R003C00]#ospf 10 router-id 1.1.1.1  filter-policy ip-prefix 10 import area 0.0.0.1   vlink-peer 4.4.4.4

[R1]display ip routing-table protocol ospf Route Flags: R - relay, D - download to fib------------------------------------------------------------------------------Public routing table : OSPF         Destinations : 1        Routes : 1        
OSPF routing table status : <Active>         Destinations : 1        Routes : 1
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
     23.1.1.0/24  OSPF    10   2           D   12.1.1.2        GigabitEthernet0/0/0


[R1]display ospf routing 34.1.1.0 
         OSPF Process 10 with Router ID 1.1.1.1
 Destination : 34.1.1.0/24         AdverRouter : 3.3.3.3                  Area      : 0.0.0.1   Cost        : 3                        Type      : Stub  NextHop     : 12.1.1.2                 Interface : GigabitEthernet0/0/0   Priority    : Low                      Age       : 00h00m00s  [R1]
OSPF routing table status : <Inactive>         Destinations : 0        Routes : 0
    可以看到加载路由策略后在R1路由器的全局路由表中已经不存在34.1.1.0/24路由但是R1路由器的OSPF routing table中仍然存在该路由。这也证明了对于ospf协议路由过滤策略实际上是在SPF优选后在装入路由表的时候执行的而不是在接收到与该条目相关的LSA时执行的。
    [R1]display ospf vlink 
         OSPF Process 10 with Router ID 1.1.1.1                 Virtual Links 
 Virtual-link Neighbor-id  -> 4.4.4.4, Neighbor-State: Init
 Interface: 12.1.1.1 (GigabitEthernet0/0/0) Cost: 3  State: P-2-P  Type: Virtual  Transit Area: 0.0.0.1  Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1  GR State: Normal 
   进过dead time时间后查看R1的vlink状态已经变为init。
 
   通过在R1的接口上进行抓包可以看到只有34.1.1.4发送的单播OSPF协议消息而R1并为发送单播OSPF消息由于R1在VLINK上收到了R4的Hello消息因此OSPF邻居状态为Init。
  [R1-ospf-10]undo filter-policy import

Dec 27 2017 10:48:19-08:00 R1 %OSPF/4/VLINK_NBR_CHG_E(l)[5]:Virtual link peer event: neighbor status changed. (ProcessId=2560, VirtualLinkNeighborAddress=4.4.4.4, NeighborEvent=LoadingDone, NeighborPreviousState=Loading, NeighborCurrentState=Full)        将路由过滤策略去掉后可以看到VLINK变为了 FULL状态根据上述过程可以判断ospf在建立VLINK时发送给对端的单播协议消息是在对全局路由表的查找后发送的而不是对OSPF的数据结构查找后发送的。
    问题2中间经过的R2、R3路由器对R1在VLINK上发送的单播OSPF协议消息是当做一个普通IP数据包转发还是由于自身运行了OSPF能够感知到该数据为OSPF的VLINK消息直接转发
     验证这个问题我们可以同样用上述的方法进行验证。
1.在R2路由器上将34.1.1.0/24前缀过滤掉
[R2]display ip ip-prefixPrefix-list 10Permitted 2Denied 1        index: 10               deny    34.1.1.0/24                     index: 20               permit  0.0.0.0/0               le  32
[R2-ospf-10]filter-policy ip-prefix 10 import 
[R2]display ip routing-table protocol  ospf [R2]display ospf routing 
         OSPF Process 10 with Router ID 2.2.2.2                  Routing Tables 
 Routing for Network  Destination        Cost  Type       NextHop         AdvRouter       Area 12.1.1.0/24        1     Stub       12.1.1.2        2.2.2.2         0.0.0.1 23.1.1.0/24        1     Stub       23.1.1.2        2.2.2.2         0.0.0.1 34.1.1.0/24        2     Stub       23.1.1.3        3.3.3.3         0.0.0.1
 Total Nets: 3   Intra Area: 3  Inter Area: 0  ASE: 0  NSSA: 0 
    应用策略后在R2路由器上已经不存在34.1.1.0/24的路由前缀但是ospf routing table中该前缀存在经过Dead时间R1路由器上的VLINK状态变为了Init。 [R1]Dec 27 2017 10:54:21-08:00 R1 %OSPF/3/NBR_DOWN_REASON(l)[6]:Neighbor state leaves full or changed to Down. (ProcessId=2560, NeighborRouterId=4.4.4.4, NeighborAreaId=0, NeighborInterface=Virtual-Link,NeighborDownImmediate reason=Neighbor Down Due to 1-Wayhello Received, NeighborDownPrimeReason=1-Wayhello Received, NeighborChangeTime=2017-12-27 10:54:21-08:00) [R1]
  2.同样在R1路由器端口上进行抓包可以看到R1向R4发送以及从R4接收的OSPF单播消息。

    3.在R2路由器上将过滤策略去掉R1路由器的VLINK变为了Full状态,查看邻居down原因可以看到是1-wayy
[R2-ospf-10]undo filter-policy import
<R1>display ospf vlink 
         OSPF Process 10 with Router ID 1.1.1.1                 Virtual Links 
 Virtual-link Neighbor-id  -> 4.4.4.4, Neighbor-State: Full
 Interface: 12.1.1.1 (GigabitEthernet0/0/0) Cost: 3  State: P-2-P  Type: Virtual  Transit Area: 0.0.0.1  Timers: Hello 10 , Dead 40 , Retransmit 5 , Transmit Delay 1  GR State: Normal 

<R1>display ospf peer last-nbr-down  
         OSPF Process 10 with Router ID 1.1.1.1
                        Last Down OSPF Peer
        Neighbor Ip Address : 34.1.1.4        Neighbor Area   Id  : 0.0.0.0        Neighbor Router Id  : 4.4.4.4        Interface           : Virtual-Link        Immediate Reason    : Neighbor Down Due to 1-Wayhello Received        Primary Reason      : 1-Wayhello Received        Down Time           : 2017-12-27 10:54:21-08:00

     通过上述的调试、分析过程可以得出VLINK端点穿越的路由器同样会将该单播OSPF包当做普通IP数据包在全局路由表中查表、转发。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
  • x
  • 常规:

点评 回复

壹粥壹菜壹世界
跳转到指定楼层
user_2958103     发表于 2017-12-27 12:38:29 已赞(0) 赞(0)

谢谢分享
  • x
  • 常规:

点评 回复

忧郁的红雨伞  导师   发表于 2017-12-27 12:39:53 已赞(0) 赞(0)

  • x
  • 常规:

点评 回复

壹粥壹菜壹世界
社区管理员咕噜噜  管理员   发表于 2017-12-27 13:50:35 已赞(0) 赞(0)

阿伞,赞一个!总结分享很漂亮!
  • x
  • 常规:

点评 回复

企业互动社区精华帖管理规则
关注!关注!关注!
忧郁的红雨伞  导师   发表于 2017-12-27 14:17:03 已赞(0) 赞(0)

社区管理员咕噜噜 发表于 2017-12-27 13:50 阿伞,赞一个!总结分享很漂亮!
感谢。
  • x
  • 常规:

点评 回复

壹粥壹菜壹世界
李宗易  版主   发表于 2017-12-27 17:30:44 已赞(0) 赞(0)

谢谢分享
  • x
  • 常规:

点评 回复

user_2975785     发表于 2017-12-27 21:25:19 已赞(0) 赞(0)

跟大神学习下
  • x
  • 常规:

点评 回复

忧郁的红雨伞  导师   发表于 2017-12-28 09:46:52 已赞(0) 赞(0)

感谢。
  • x
  • 常规:

点评 回复

壹粥壹菜壹世界
忧郁的红雨伞  导师   发表于 2017-12-28 09:47:14 已赞(0) 赞(0)

互相。
  • x
  • 常规:

点评 回复

壹粥壹菜壹世界
耶耶耶耶耶耶     发表于 2017-12-28 10:36:41 已赞(0) 赞(0)

总结分享很漂亮!学习了
  • x
  • 常规:

点评 回复

12
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
快速回复 返回顶部