浅析OSPF中的DN位

一、OSPF中的DN位

在OSPF的Hello报文中有一个Option字段,其每一个bit位代表始发Router的一种能力,如果Router支持该能力,就把该bit置位;否则,该bit置0,如下图所示。

    DN位用于MPLS VPN中,用来防止LSA3、LSA5、LSA7回传,防止次优和环路等功能。

      5.jpg

图1 数据包中的option位截图

二、场景和说明

    6.jpg

图2 BGP  MPLS  VPN 组网图

 

如上场景,是一个BGP MPLS VPN的典型组网。PE1下连site1,并在VRF vpn-instace1中发布了60.0.0.1/32的路由。CE1在vpn-instance2中,CE1有两个PE双归属PE2和PE3,CE1与PE1、PE2间运行OSPF路由协议,PE2和PE3都学到了PE1传递过来的60.0.0.1/32路由,要求vpn1和vpn2能互通。

三、DN位的作用

    在以上场景中,假设没有DN位,PE2将学到60.0.0.1/32先于PE3引入site2中,CE1学到了这条site1路由,然后传递给PE3,PE3的vpn2中,学到了IBGP路由和OSPF路由,由于优先级的原因,PE2的vpn2认为去往60.0.0.1/32的最优路由是OSPF,下一跳指向CE1,次优形成。

    引入了DN位后,PE2将60.0.0.1/32引入site2中时,其LSA中的DN位会被置位,如下在PE3上查看LSA的信息:

<PE3>dis ospf lsdb

Type      LinkState ID    AdvRouter          Age  Len   Sequence   Metric

Sum-Net   60.0.0.1        2.2.2.2           775  28    80000001       2

<PE3>display  ip routing-table  vpn-instance 2

Route Flags: R - relay, D - download to fib

------------------------------------------------------------------------------

Routing Tables: 2

         Destinations : 7        Routes : 7       

       60.0.0.1/32  IBGP    255  2          RD   3.3.3.3         GigabitEthernet0/0/0

<PE3>dis ospf lsdb summary 60.0.0.1

 

     OSPF Process 2 with Router ID 27.1.1.7

                 Area: 0.0.0.0

         Link State Database

  Type      : Sum-Net

  Ls id     : 60.0.0.1

  Adv rtr   : 2.2.2.2 

  Ls age    : 251

  Len       : 28

  Options   :  E  DN 

  seq#      : 80000001

  chksum    : 0x3059

  Net mask  : 255.255.255.255

  Tos 0  metric: 2

  Priority  : Medium

     如上输出信息,PE3上可以查看到PE2(router id 为2.2.2.2)产生的LinkState ID 60.0.0.1 的三类LSA(PE3的OSPF进程中还未将BGP路由引入),但是PE2的vpn2路由表中并没有这条OSPF路由,而是IBGP路由,原因是其DN位置位,Options : E  DN,虽然有这条LSA,但是不作路由计算,从而防止次优和环路等问题。

四、DN位置位功能关闭的场景

    在H3C路由器上,默认在PE上作实例引入VPN路由时会置DN位,也可以对其功能作关闭处理,只在下面两种场景中推荐使用关闭DN位置位功能。

OSPF应用在VPN-OptionA场景时,本端PE设备引入BGP路由生成LSA,发布到对端PE设备。根据RFC4577,由于DN位的抑制,对端PE设备无法计算出这个路由。这时,使用关闭命令控制本端PE设备的DN位的设置或取消。

当PE设备连接MCE设备场景时,MCE设备需要计算PE设备发布的某些路由。缺省情况下,MCE设备不支持DN位检查,这时可以在PE设备上使用关闭命令控制DN位的设置或取消。

 


2016年08月