• 文章搜索:
  • 目录

        • 分享到...

        • 新浪微博
        • 腾讯微博
        • 推荐到豆瓣 豆瓣空间
        • 分享到搜狐微博 搜狐微博
        • 分享到QQ空间 QQ空间
        • 分享到腾讯朋友 腾讯朋友
        • 网易微博分享 网易微博
        • 添加到百度搜藏 百度搜藏
        • 转贴到开心网 开心网
        • 转发好友 告诉聊友
    • 推荐
    • 打印
    • 收藏

    OSPF VPN学习理解

    作者:  |  上传时间:2009-11-18  |  关键字:

    /许亮、徐伟、张翔

    1           综述

    对于穿越BGP/MPLS/VPN域的路由协议多实例应用,OSPF 普通VPN形式,类似于Static Routes/RIP/BGP等其他路由协议的多实例应用,在CEPE之间建立对应路由协议多实例,然后在MBGP中引入多实例的路由协议,由MBGP将相应路由传递到BGP/MPLS/VPN域的对端后再发布到对应路由协议多实例中,以完成路由的完整发布。

    以上OSPF普通VPN形式,MBGP处理仅能还原生成3/5/7LSA,无法正确传递携带路由拓扑信息的其他类型LSA,如此将导致OSPF路由拓扑的割裂。同时存在backdoor链路情况下,因为域内路由优先级高的原因将导致无法优选到穿越BGP/MPLS/VPN传递的路由。鉴于此,引入Sham-link方式的OSPF VPN形式,该模式下在PE-PE之间建立单独的OSPF连接,也就是Sham-link,可以认为是一条OSPF区域内的P2P的伪链路,性质类似于Virtual-link,通过该链路直接发布接收OSPF协议报文,从而保留所有LSA的内容信息。

    下面首先来搭建一个BGP/MPLS/VPN的实例环境。  

    2           BGP/MPLS/VPN实例环境的搭建

    2.1         网络拓扑

    以下环境中,PE1PPE2构成BGP/MPLS/VPN域,它们之间的互联互通由IGP保证(可以是Static Routes/RIP/ISIS/OSPF等,这里采用ISIS),同时使能MPLS,并采用LDP分发公网标签,建立LSP。在PE1PE2之间运行MBGP来传递路由。CE1CE2为普通接入路由器,没有特殊配置。以CE1PE1直连区域为0区,CE1RTA直连区域为1区,CE1RTB直连区域为0区, PE2CE2直连区域为0区为例。

    ΋

    2.2         PE配置

    PE1PE2配置完全对称,这里仅给出PE1的配置。

    1、配置系统router idvpn-instance和全局IGP协议:

    #

    router id 49.0.0.2                                                             

    #                                                                              

    ip vpn-instance vpn1                                                            

     route-distinguisher 1:1                                                       

     vpn-target 1:1 export-extcommunity                                            

     vpn-target 1:1 import-extcommunity                                            

    #

    isis 4                                                                         

     network-entity 00.0000.0000.4001.00                                           

    #

    2、配置MPLSLDP

    #

    mpls lsr-id 49.0.0.2                                                            

    #                                                                              

    mpls                                                                            

     lsp-trigger all                                                               

    #                                                                              

    mpls ldp                                                                       

    #

    3、配置公网接口:

    #               

    interface LoopBack0                                                            

     ip address 49.0.0.2 255.255.255.255                                            

     isis enable 4                                                                  

    #                                                                            

    interface Vlan-interface30                                                     

     ip address 30.0.0.1 255.255.255.0                                             

     isis enable 4                                                                 

     mpls                                                                          

     mpls ldp                                                                      

    #

    4、配置私网接口:

    #   

    interface LoopBack1                                                            

     ip binding vpn-instance vpn1                                                  

     ip address 49.0.0.2 255.255.255.255                                        

    #                                                                             

    interface Vlan-interface100                                                    

     ip binding vpn-instance vpn1                                                  

     ip address 100.0.0.1 255.255.255.0                                            

    #

    5、配置MBGP   

    #

    bgp 100

     undo synchronization

     peer 49.0.0.1 as-number 100

     peer 49.0.0.1 connect-interface LoopBack0

     #

     ipv4-family vpnv4

      peer 49.0.0.1 enable

    #

    #  

    2.3          P上的配置   

    P设备只需运行MPLSLDP和公网IGP协议,配置如下:

    #                                                                           

     router id 19.0.0.1                                                             

    #                                                                              

    mpls lsr-id 19.0.0.1                                                             

    #                                                                              

    mpls                                                                           

     lsp-trigger all                                                                

    #                                                                              

    mpls ldp                                                                       

    #                                                                              

    isis 4                                                                         

     network-entity 00.0000.0000.4002.00                                           

    #                                                                              

    interface Ethernet0/0                                                          

     port link-mode route                                                          

     ip address 30.0.0.2 255.255.255.0                                             

     isis enable 4                                                                  

     mpls                                                                          

     mpls ldp                                                                      

    #                                                                               

    interface Ethernet0/1                                                          

     port link-mode route                                                          

     ip address 40.0.0.2 255.255.255.0                                              

     isis enable 4                                                                 

     mpls                                                                          

     mpls ldp                                                                       

    #                                                                              

    interface LoopBack0                                                            

     ip address 19.0.0.1 255.255.255.255                                            

     isis enable 4                                                                 

    3           OSPF VPN普通模式

    OSPF VPN普通模式下,PE建立多实例OSPF VPN,然后配置与MBGP互相引入;CE只需配置普通OSPFPE建立peer即可。

    3.1         PE增加配置

    PE1为例配置,PE2做对称配置。

    1、建立OSPF VPN实例与CE建立邻居关系,配置引入BGP获得从对端私网传来的路由:

    #

    ospf 4 vpn-instance vpn1

     import-route bgp

      area 0.0.0.0

      network 100.0.0.0 0.0.0.255

    #    

    2、配置BGP vpn-instance vpn1地址族先不引入OSPF实例

    #

     ipv4-family vpn-instance vpn1

    #

    3.2         CE的配置

    1CE1配置普通OSPF,与PE1RTB建立0区关系,与RTA建立1区关系:

    #

    ospf 4

     area 0.0.0.0

      network 100.0.0.0 0.0.0.255

      network 102.0.0.0 0.0.0.255

     area 0.0.0.1

      network 101.0.0.0 0.0.0.255

    #         

    2CE2PE2建立普通OSPF 0区邻居关系:

    #

    ospf 4

     area 0.0.0.0

      network 200.0.0.0 0.0.0.255

    #

    3.3         RTARTB配置

    1RTA配置普通OSPF,与CE1建立1区关系,并引入静态路由:

    #

     ip route-static 103.0.0.0 255.255.255.0 NULL0      

    #

    ospf 4

     import-route static

     area 0.0.0.1

      network 101.0.0.0 0.0.0.255

    #                               

    2RTB配置普通OSPF,与CE1建立0区关系:

    #

    ospf 4

     area 0.0.0.0

      network 102.0.0.0 0.0.0.255

    #

    3.4         OSPF VPNMBGP引入之前的情况

    等所有OSPF邻居关系FULL后,查看PE1LSDB和相关路由表:

    [PE1]display ospf 4 lsdb

              OSPF Process 4 with Router ID 49.0.0.2

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID   AdvRouter    Age  Len   Sequence  Metric

    Router   66.0.0.8       66.0.0.8      26  48    80000009      0

    Router   49.0.0.2       49.0.0.2     726  36    80000005      0

    Router   75.0.0.2       75.0.0.2      27  36    80000003      0

    Network  102.0.0.1      66.0.0.8      22  32    80000002      0

    Network  100.0.0.2      66.0.0.8     727  32    80000003      0

    Sum-Net  101.0.0.0      66.0.0.8    1630  28    80000001      1

    Sum-Asbr 50.0.0.60      66.0.0.8      99  28    80000001      1

                      AS External Database

    Type     LinkState ID   AdvRouter    Age  Len   Sequence  Metric

    External 103.0.0.0      50.0.0.60    105  36    80000001      1

    可以看到该LSDB中包含了所有15LSA

     [PE1]display ospf 4 routing

              OSPF Process 4 with Router ID 49.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter    Area

    100.0.0.0/24   1      Transit 100.0.0.1  66.0.0.8     0.0.0.0

    102.0.0.0/24   2      Transit 100.0.0.2  66.0.0.8     0.0.0.0

    101.0.0.0/24   2      Inter   100.0.0.2  66.0.0.8     0.0.0.0

    Routing for ASEs

    Destination    Cost   Type    Tag        NextHop      AdvRouter

    103.0.0.0/24   1      Type2   1          100.0.0.2    50.0.0.60

    Total Nets: 4

    Intra Area: 2  Inter Area: 1  ASE: 1  NSSA: 0

    可以看到,实际得到OSPF路由四条。

    [PE1]display  ip routing-table  vpn-instance  vpn1

    Routing Tables: vpn1

             Destinations : 8        Routes : 8

    Destination/Mask   Proto  Pre  Cost   NextHop      Interface

    49.0.0.2/32        Direct 0    0      127.0.0.1    InLoop0

    100.0.0.0/24       Direct 0    0      100.0.0.1    Eth8/0

    100.0.0.1/32       Direct 0    0      127.0.0.1    InLoop0

    101.0.0.0/24       OSPF   10   2      100.0.0.2    Eth8/0

    102.0.0.0/24       OSPF   10   2      100.0.0.2    Eth8/0

    103.0.0.0/24       O_ASE  150  1      100.0.0.2    Eth8/0

    127.0.0.0/8        Direct 0    0      127.0.0.1    InLoop0

    127.0.0.1/32       Direct 0    0      127.0.0.1    InLoop0

    可以看到在路由表中生效的OSPF路由只有三条。

    3.5         配置OSPF VPN引入到BGP中的情况

    现在PE1上配置在BGPVPN实例地址族中引入OSPF,打开BGPdebug开关查看经过BGP传递的路由信息。

    [PE1-bgp-vpn1]import-route  ospf 4

    *Jun 24 11:36:26:445 2009 PE1 RM/6/RMDEBUG:

     BGP_L3VPN.: Send UPDATE to peer 49.0.0.1 for following destinations :

    *Jun 24 11:36:26:495 2009 PE1 RM/6/RMDEBUG:

             Origin       : Incomplete

             AS Path      :

             Next Hop     : 49.0.0.2

             Local Pref   : 100

             MED          : 3

             Ext-Community:<OSPF Domain Id: 0.0.0.0:0>, <OSPF AreaNum: 0.0.0.0 Route

    Type: 3 Option: 0>, <OSPF Router Id: 49.0.0.2:0:0>,  <RT: 1:1>

             101.0.0.0/24 (RD 1:1,Label 1031),

     

    *Jun 24 11:36:26:595 2009 PE1 RM/6/RMDEBUG:

     BGP_L3VPN.: Send UPDATE to peer 49.0.0.1 for following destinations :

    *Jun 24 11:36:26:695 2009 PE1 RM/6/RMDEBUG:

             Origin       : Incomplete

             AS Path      :

             Next Hop     : 49.0.0.2

             Local Pref   : 100

             MED          : 3

             Ext-Community:<OSPF Domain Id: 0.0.0.0:0>, <OSPF AreaNum: 0.0.0.0 Route

    Type: 2 Option: 0>, <OSPF Router Id: 49.0.0.2:0:0>,  <RT: 1:1>

             102.0.0.0/24 (RD 1:1,Label 1031),

     

    *Jun 24 11:36:26:795 2009 PE1 RM/6/RMDEBUG:

     BGP_L3VPN.: Send UPDATE to peer 49.0.0.1 for following destinations :

    *Jun 24 11:36:26:946 2009 PE1 RM/6/RMDEBUG:

             Origin       : Incomplete

             AS Path      :

             Next Hop     : 49.0.0.2

             Local Pref   : 100

             MED          : 2

             Ext-Community:<OSPF Domain Id: 0.0.0.0:0>, <OSPF AreaNum: 0.0.0.0 Route

    Type: 5 Option: 1>, <OSPF Router Id: 49.0.0.2:0:0>,  <RT: 1:1>

             103.0.0.0/24 (RD 1:1,Label 1031),

    以上可见,BGP只传递OSPF路由表中生效的三条路由,并通过扩展团体属性Ext-Community携带了对应LSA所包含的路由信息,如AreaNumRouter IdRouteType等。Route-Type字段的可能取值为12357129,其中前面5种取值表示OSPF的路由类型,而取值为129时表示是sham-link对端end point的地址。Option只在Route-Type取值为57,表示外部路由的类型。对于外部路由,Type2对应Option最低位为1,值为1Type1对应Option最低位为0,值为0。除以上信息外,还携带了OSPF Domain Id信息,默认情况下为0.0.0.0,这里Domain 表示一个共同的区域,同一个Domain之内的路由器可以根据Route-Type字段还原LSA,还原的规则为:

    Ø       如果Route-Type中的LSA Type123,则作为3类区域间路由引入;

    Ø       如果Route-Type中的LSA Type57Option0时,则作为E1类型引入,Option1时,作为E2类型引入;

    Domain ID不同时,则不能根据Route-Type字段还原LSA,此时只能按照外部LSA引入。

    PE2上配置在OSPF VPN 实例中引入BGP,查看对应LSDB

    [PE2-ospf-4]import-route bgp

    [PE2-ospf-4]display  ospf 4 lsdb

              OSPF Process 4 with Router ID 49.0.0.1

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    Router   66.0.0.2      66.0.0.2    1649  48    80000003      0

    Router   49.0.0.1      49.0.0.1    1651  48    80000004      0

    Sum-Net  102.0.0.0     49.0.0.1      52  28    80000001      3

    Sum-Net  101.0.0.0     49.0.0.1      52  28    80000001      3

                      AS External Database

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    External 103.0.0.0     49.0.0.1      52  36    80000001      2

    从中可以看到,MBGPPE1一侧的私网路由传递到PE2PE2根据携带的扩展团体属性将路由还原为对应的LSA。其中区域内、区域间OSPF路由将被还原为3LSAASE路由还原为5LSA。由以上也可以看到14LSA通过此方式不能得到传递,2LSA也丢失了携带的路由拓扑信息,这样实际上就割裂了整个VPN统一规划的OSPF

    PE1PE2两端OSPF domain-id不一致时,所有路由只能还原为5LSA形式:

    [PE1-ospf-4]domain-id  11.11.11.11

    [PE2-ospf-4]display  ospf 4 lsdb

              OSPF Process 4 with Router ID 49.0.0.1

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    Router   66.0.0.2      66.0.0.2     116  48    80000004      0

    Router   49.0.0.1      49.0.0.1     118  48    80000005      0

                      AS External Database

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    External 103.0.0.0     49.0.0.1     219  36    80000001      2

    External 101.0.0.0     49.0.0.1       2  36    80000001      3

    External 102.0.0.0     49.0.0.1       2  36    80000001      3 

    由于OSPF VPN普通模式中是通过OSPFBGP互相引入来传递路由,丢失了OSPF原有的拓扑信息,在这种情况下最多只能产生3LSA,路由计算时采用类似距离矢量的方法,打破了OSPF路由计算原有的无环性。在如下的CE双归属组网中就会出现路由环路的现象:

    

    CE-CPE-APE-B都建立了OSPF邻接,PE-BBGP路由发送给PE-APE-A转换后的LSA通过CE-C又传递给了PE-BPE-B上一旦通过这些LSA计算出了路由,就会形成环路并且可能造成路由的振荡。出现这种环路后,通过OSPF原有的防环路机制是无法解决的,为此OSPF多实例中新增了如下特性来解决这个问题。

    3LSADN bit位,在RFC4577中规定:PE在将通过BGP还原得到的3LSA发送给CE设备时,3LSA Options fieldDN bit位必须置为1PE设备接收到DN bit13LSA后,不使用它进行路由计算。

    PE1PE2两端OSPF domain-id一致时,检查PE2还原得到的3LSA,看到DN bit被置位了:

    [PE1-ospf-4]domain-id  0.0.0.0

    [PE2-ospf-4]display  ospf 4 lsdb  summary 102.0.0.0

              OSPF Process 4 with Router ID 49.0.0.1

                              Area: 0.0.0.0

                      Link State Database

        Type      : Sum-Net

        LS ID     : 102.0.0.0

        Adv Rtr   : 49.0.0.1

        LS Age    : 53

        Len       : 28

        Options   :  E  DN

        Seq#      : 80000001

        Checksum    : 0xe33

        Net Mask  : 255.255.255.0

        Tos 0  Metric: 3

    57LSA中的Route tag,通过BGP路由还原的5LSAtag字段填写本地的Route Tag,从CE接收到5LSA后,检查LSAtag字段,和本地的Route Tag进行比较,如果相同的话,就不使用该LSA进行路由计算。Route Tag可以手工配置,也可以通过自动计算得到,当MPLS骨干网中BGPAS号为2个字节长度时,Route Tag默认情况下是根据AS号进行自动计算的。

     

    4           Sham-link模式

    4.1         引入原因

    OSPF普通VPN配置下,MBGPOSPF互相引入,MBGP将私网OSPF路由传递到对端,再由对端PEOSPF引入BGP从而实现OSPF路由传递。这种情况下,最多只能还原为3LSA,在CE上得到的路由是区域间路由。如果在CE之间存在backdoor链路(图示如下),作为公网MPLS链路的备份。则在CE上通过backdoor链路学到的路由是区域内路由,优于普通VPN学到的区域间路由,这样就导致数据只能通过backdoor链路而不会选择公网MPLS链路。由此可见,对于这种情况,使用普通VPN是不行的。

    Đ

    首先看一下CE2在普通OSPF VPN(没有backdoor链路)情况下的LSDB和路由表:

    [CE2]display  ospf 4 lsdb

              OSPF Process 4 with Router ID 66.0.0.2

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    Router   66.0.0.2      66.0.0.2    1202  48    80000004      0

    Router   49.0.0.1      49.0.0.1    1205  48    80000005      0

    Sum-Net  102.0.0.0     49.0.0.1     943  28    80000001      3

    Sum-Net  101.0.0.0     49.0.0.1     943  28    80000001      3

                      AS External Database

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    External 103.0.0.0     49.0.0.1    1307  36    80000001      2

    [CE2]display ospf 4 routing

              OSPF Process 4 with Router ID 66.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter    Area

    200.0.0.0/24   1562   Stub    200.0.0.2  66.0.0.2     0.0.0.0

    102.0.0.0/24   1565   Inter   200.0.0.1  49.0.0.1     0.0.0.0

    101.0.0.0/24   1565   Inter   200.0.0.1  49.0.0.1     0.0.0.0

    Routing for ASEs

    Destination    Cost   Type    Tag        NextHop      AdvRouter

    103.0.0.0/24   2      Type2   3489661028 200.0.0.1    49.0.0.1

    Total Nets: 4

    Intra Area: 1  Inter Area: 2  ASE: 1  NSSA: 0

    配置backdoor链路后,CE2OSPF LSDB和路由表:

    [CE2]display ospf 4 lsdb

              OSPF Process 4 with Router ID 66.0.0.2

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    Router   66.0.0.8      66.0.0.8      28  60    80000010      0

    Router   66.0.0.2      66.0.0.2      27  60    8000000C      0

    Router   49.0.0.2      49.0.0.2      22  36    8000000C      0

    Router   49.0.0.1      49.0.0.1      21  48    8000000B      0

    Router   75.0.0.2      75.0.0.2    1396  36    80000007      0

    Network  50.0.0.1      66.0.0.8      25  32    80000002      0

    Network  102.0.0.1     66.0.0.8    1391  32    80000006      0

    Network  100.0.0.2     66.0.0.8     399  32    80000008      0

    Sum-Net  101.0.0.0     66.0.0.8    1299  28    80000006      1

    Sum-Asbr 50.0.0.60     66.0.0.8    1467  28    80000005      1

                      AS External Database

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    External 103.0.0.0     50.0.0.60   1451  36    80000005      1

    [CE2]display  ospf 4 routing

              OSPF Process 4 with Router ID 66.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter    Area

    50.0.0.0/24    1      Transit 50.0.0.2   66.0.0.8     0.0.0.0

    100.0.0.0/24   2      Transit 50.0.0.1   66.0.0.8     0.0.0.0

    200.0.0.0/24   1      Stub    200.0.0.2  66.0.0.2     0.0.0.0

    102.0.0.0/24   2      Transit 50.0.0.1   66.0.0.8     0.0.0.0

    101.0.0.0/24   2      Inter   50.0.0.1   66.0.0.8     0.0.0.0

    Routing for ASEs

    Destination    Cost   Type    Tag        NextHop      AdvRouter

    103.0.0.0/24   1      Type2   1          50.0.0.1     50.0.0.60

    Total Nets: 6

    Intra Area: 4  Inter Area: 1  ASE: 1  NSSA: 0

    以上可见,存在backdoor链路后,OSPFLSDB和相应路由表均发生变化,通过backdoor链路的路由优选。此时,如果要想穿越VPN骨干域的路由生效,就应该使得穿越VPN骨干域的路由为域内路由类型。为此,在PE之间可以建立一条域内的链路来达到这个目的,这也就是Sham-link的本意所在。这样可以通过调整Sham-linkbackdoor链路的COST值来控制选路。接下来给出我司Sham-link的实现。

    4.2         配置sham-link

    Sham-linkPEOSPF VPN实例间的链路配置,与其他设备无关。以下以PE1为例,PE2配置与此对称。

    1Sham-link的端点对应的路由必须是32位的主机路由,且属于私网,通过MBGP传递到对端。

    [PE1-bgp-vpn1]import-route  direct

    此操作的作用为引入直连的32位私网主机路由发布Sham-link端点路由。

    [PE1-ospf-4-area-0.0.0.0]sham-link 49.0.0.2 49.0.0.1

    建立Sham-link,后续可根据需要设置Sham-linkCOST参数。

    2、配置MBGP引入OSPF路由,用于对端PE学习,不能再配OSPFBGP路由。

    [PE1-bgp-vpn1]import-route  ospf 4

    这里引用一段话来说明一下:根据协议规定,这里是不需要再引入的,我司的实现PE仍采用BGP传递过来的OSPF路由,而不Sham-link传来的LSA计算路由,这是因为如下考虑。Sham-link UP是通过PE学到对端Sham-link端点的私网路由,而如果该Sham-link端点的私网路由也通过OSPF发布的话,就会造成如下怪圈:PE学到对端的Sham-link端点路由->Sham-link UP->私网路由通过OSPF LSA学到->由于OSPF路由优于BGP路由,顶掉BGP路由->Sham-link DOWN ->OSPF路由消失,BGP路由生效->Sham-link UP

    这种情况下,PE之间传递了所有的LSA,保留了所有的拓扑信息,PECE均得到完整的LSDBCE可以通过SPF算法得到相应的路由。

    4.3         配置Sham-linkPEOSPF interfacepeer

    PE2的角度,我们首先来看一下形成OSPF Sham-link后的接口和邻居变化。

    [PE2-ospf-4-area-0.0.0.0]sham-link 49.0.0.1 49.0.0.2

    [PE2-ospf-4-area-0.0.0.0]

    [PE2]dis ospf 4 interface

              OSPF Process 4 with Router ID 49.0.0.1

                      Interfaces

     Area: 0.0.0.0

     IP Address      Type    State    Cost   Pri     DR        BDR

     200.0.0.1       PTP     P-2-P      1      1   0.0.0.0  0.0.0.0

    由此可见Sham-link并没有形成新的ospf接口。

    [PE2]display  ospf 4 peer

                       OSPF Process 4 with Router ID 49.0.0.1

                            Neighbor Brief Information

     Area: 0.0.0.0

     Router ID       Address         Pri Dead-Time Interface   State

     66.0.0.2        200.0.0.2       1   33        S6/4           Full/ -

     Sham link 49.0.0.1 -> 49.0.0.2:

     Router ID       Address         Pri Dead-Time State

     49.0.0.2        49.0.0.2        1   31        Full

    以上可以看到,ospf形成两个邻居关系。

    4.4         配置Sham-linkPELSDB

    接下来我们来看一下配置Sham-linkPELSDB

    [PE2]display  ospf 4 lsdb

             OSPF Process 4 with Router ID 49.0.0.1

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    Router   66.0.0.8      66.0.0.8     538  60    80000010      0

    Router   66.0.0.2      66.0.0.2     537  60    8000000C      0

    Router   49.0.0.2      49.0.0.2      24  48    8000000E      0

    Router   49.0.0.1      49.0.0.1      19  60    8000000D      0

    Router   75.0.0.2      75.0.0.2     205  36    80000008      0

    Network  50.0.0.1      66.0.0.8     535  32    80000002      0

    Network  102.0.0.1     66.0.0.8     199  32    80000007      0

    Network  100.0.0.2     66.0.0.8     907  32    80000008      0

    Sum-Net  101.0.0.0     66.0.0.8     107  28    80000007      1

    Sum-Asbr 50.0.0.60     66.0.0.8     275  28    80000006      1

                      AS External Database

    Type     LinkState ID  AdvRouter    Age  Len   Sequence  Metric

    External 103.0.0.0     50.0.0.60    253  36    80000006      1

    以上我们可以看到OSPF LSDB中得到的为完整的LSA信息可以进行OSPFSPF运算来计算路由,这些都是通过Sham-link传递过来的,而不是通过引入得到的。下面分析一下backdoor链路和Sham-link不同COST情况下的路由选择情况。

    4.5         Backdoor链路COST大于Sham-link的情况

    1、  配置PE2如下:

    #

    [PE2-ospf-4-area-0.0.0.0]sham-link  49.0.0.1 49.0.0.2 cost 55

    2、  配置CE2如下:

    #

    [CE2-Ethernet0/1]ospf cost 88

    3、  查看CE2OSPF路由表情况:

     [CE2]display  ospf 4 routing

              OSPF Process 4 with Router ID 66.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter     Area

    50.0.0.0/24    58     Transit 200.0.0.1  66.0.0.8      0.0.0.0

    100.0.0.0/24   57     Transit 200.0.0.1  66.0.0.8      0.0.0.0

    200.0.0.0/24   1      Stub    200.0.0.2  66.0.0.2      0.0.0.0

    102.0.0.0/24   58     Transit 200.0.0.1  66.0.0.8      0.0.0.0

    101.0.0.0/24   58     Inter   200.0.0.1  66.0.0.8      0.0.0.0

    Routing for ASEs

    Destination    Cost   Type    Tag        NextHop       AdvRouter

    103.0.0.0/24   1      Type2   1          200.0.0.1     50.0.0.60

    Total Nets: 6

    Intra Area: 4  Inter Area: 1  ASE: 1  NSSA: 0

    由路由表可见,在这种情况下,路由选择VPN域的主链路。

    4.6         Sham-link COST大于Backdoor链路的情况

    1、配置PE2如下:

    #

    [PE2-ospf-4-area-0.0.0.0] sham-link  49.0.0.1 49.0.0.2 cost 88

    2、配置CE2如下:

    #

    [CE2-Ethernet0/1]ospf cost 55

    3、  查看CE2OSPF的路由表情况:

     [CE2]display  ospf 4 routing

              OSPF Process 4 with Router ID 66.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter     Area

    50.0.0.0/24    55     Transit 50.0.0.2   66.0.0.8      0.0.0.0

    100.0.0.0/24   56     Transit 50.0.0.1   66.0.0.8      0.0.0.0

    200.0.0.0/24   1      Stub    200.0.0.2  66.0.0.2      0.0.0.0

    102.0.0.0/24   56     Transit 50.0.0.1   66.0.0.8      0.0.0.0

    101.0.0.0/24   56     Inter   50.0.0.1   66.0.0.8      0.0.0.0

    Routing for ASEs

    Destination    Cost   Type    Tag        NextHop       AdvRouter

    103.0.0.0/24   1      Type2   1          50.0.0.1      50.0.0.60

    Total Nets: 6

    Intra Area: 4  Inter Area: 1  ASE: 1  NSSA: 0

    这种情况下,路由选择backdoor链路。由此可知,只要对两者链路的COST进行相应设置,就可以控制路由选择VPN主链路还是backdoor备份链路。

     

    5           MCE应用

    5.1         需求来源

    BGP/MPLS VPN以隧道的方式解决了在公网中传送私网数据的问题,但传统的BGP/MPLS VPN架构要求每个VPN实例单独使用一个CEPE相连。

    随着用户业务的不断细化和安全需求的提高,很多情况下一个私有网络内的用户需要划分成多个VPN,不同VPN用户间的业务需要完全隔离。此时,为每个VPN单独配置一台CE将加大用户的设备开支和维护成本;而多个VPN共用一台CE,使用同一个路由表项,又无法保证数据的安全性。为了解决这个问题提出了MCE组网,既在同一台CE设备上配置多个VPN实例和用户自己的VPN相对应,这样不但能够隔离私网内不同VPN的报文转发路径,而且通过与PE间的配合,也能够将每个VPN的路由正确发布至对端PE,保证VPN报文在公网内的传输。

    5.2         OSPFMCE中的扩展

    MCE应用情况下,CE上配置的OSPF多实例只是为了隔离不同VPN的路由,而不是来进行路由还原的,这种情况下进行路由计算不应该受防环路处理的影响,为此专门提供了命令来实现MCE设备上OSPF多实例路由的正常计算——vpn-instance-capability simple

    ΋

    CE2上也配置VPN,将OSPF进程也绑定在VPN中,和PE2建立OSPF邻居。

    [CE2-ospf-4]dis this

    #

    ospf 4 router-id 66.0.0.2 vpn-instance vpn1

     route-tag 3489661028

    area 0.0.0.0

      network 200.0.0.0 0.0.0.255

    #

    return

    [CE2-ospf-4]display  ospf 4 peer

                       OSPF Process 4 with Router ID 66.0.0.2

                            Neighbor Brief Information

     Area: 0.0.0.0

     Router ID       Address         Pri Dead-Time Interface     State

     49.0.0.1        200.0.0.1       1   35        S1/4          Full/ -

    CE2上查看LSDBOSPF路由表:

    [CE2]display  ospf 4 lsdb

              OSPF Process 4 with Router ID 66.0.0.2

                      Link State Database

                              Area: 0.0.0.0

    Type     LinkState ID   AdvRouter   Age  Len   Sequence  Metric

    Router   66.0.0.2       66.0.0.2     38  48    80000002      0

    Router   49.0.0.1       49.0.0.1     39  48    80000002      0

    Sum-Net  50.0.0.0       49.0.0.1     49  28    80000001      3

    Sum-Net  102.0.0.0      49.0.0.1     49  28    80000001      3

    Sum-Net  101.0.0.0      49.0.0.1     49  28    80000001      3

                      AS External Database

    Type     LinkState ID   AdvRouter   Age  Len   Sequence  Metric

    External 103.0.0.0      49.0.0.1     49  36    80000001      2

    External 100.0.0.0      49.0.0.1     49  36    80000001      1

    External 49.0.0.2       49.0.0.1     49  36    80000001      1

    [CE2]display  ospf 4 routing

              OSPF Process 4 with Router ID 66.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter    Area

    200.0.0.0/24   1      Stub    200.0.0.2  66.0.0.2     0.0.0.0

    Total Nets: 1

    Intra Area: 1  Inter Area: 0  ASE: 0  NSSA: 0

    缺省情况下,配置OSPF多实例后,OSPF认为设备是PE,在路由计算时会按照PE的环路机制处理,从上面可以看到虽然OSPF的邻居建立正确并且LSDB中也存在3类和5LSA,但OSPF并没有计算出了相关路由。

    CE2上配置vpn-instance-capability simple命令后,在进行观察:

    [CE2-ospf-4]vpn-instance-capability  simple

    [CE2-ospf-4]display  ospf 4 routing

              OSPF Process 4 with Router ID 66.0.0.2

                       Routing Tables

    Routing for Network

    Destination    Cost   Type    NextHop    AdvRouter    Area

    50.0.0.0/24    4      Inter   200.0.0.1  49.0.0.1     0.0.0.0

    200.0.0.0/24   1      Stub    200.0.0.2  66.0.0.2     0.0.0.0

    102.0.0.0/24   4      Inter   200.0.0.1  49.0.0.1     0.0.0.0

    101.0.0.0/24   4      Inter   200.0.0.1  49.0.0.1     0.0.0.0

    Routing for ASEs

    Destination    Cost   Type    Tag         NextHop     AdvRouter

    103.0.0.0/24   2      Type2   3489661028  200.0.0.1   49.0.0.1

    100.0.0.0/24   1      Type2   3489661028  200.0.0.1   49.0.0.1

    49.0.0.2/32    1      Type2   3489661028  200.0.0.1   49.0.0.1

    Total Nets: 7

    Intra Area: 1  Inter Area: 3  ASE: 3  NSSA: 0

    配置vpn-instance-capability simple命令,OSPF认为设备不是PE,路由计算时不受防环路机制的影响,正确计算出了所有路由。