VPLS

基础概念总结

image-20230430170625969

  • VPLS
    • VPLS是早期的二层VPN技术,后期被EVPN顶替
    • 我们可以把VPLS形成的网络看成是一个大的二层交换机所连接的网络
    • 主要部署在园区网与园区网中间,或数据中心与数据中心之间
    • 被淘汰的原因:
      • 控制层面MPLS强依赖
      • 不能很好应对双归属场景
      • MAC地址的学习是在数据转发层面完成,初始通信的时候太慢了
  • 配置思路概述
    • VPLS也是两层标签结构
    • VPLS使用的MPLS架构,所以整体配置思路与MPLS-VPN的思路非常相似。
  • 基本名词
    • VSI:其实就是VRF,虚拟交换机,在PE上部分用于和CE相连
    • AC:(Attachment Circuit 接入电路),PE和CE相连的那根线叫做AC
    • PW:pseudo-wire 直译为伪线,在MPLS-LDP生成的隧道当中创建
  • VPLS的两种部署方案
    • Martini:一层标签由MPLS-LDP生成,另一层标签由扩展的LDP生成
    • kompella:一层标签由MPLS-LDP生成,另一层标签由MP-BGP生成

基本原理

  • 基础概念概述
    • VPLS使用的MPLS架构,所以整体思路与MPLS-VPN的思路非常相似。
    • VPLS也是两层标签结构
  • 基本名词
    • VSI:其实就是VRF,虚拟交换机,在PE上部分用于和CE相连
    • AC:(Attachment Circuit 接入电路),PE和CE相连的那根线叫做AC
    • PW:pseudo-wire 直译为伪线,在MPLS-LDP生成的隧道当中创建
  • VPLS的两种部署方案
    • 一层标签由MPLS-LDP生成,另一层标签由VSI生成或是VPLS自己生成
    • 一层标签由MPLS-LDP生成,另一层标签由MP-BGP生成

控制层面

控制层面一共分为三个步骤

image-20230430170640587

第一步:在PE1和PE2之间所有的设备上部署MPLS-LDP从而形成LSP,也就是上图当中所示的Tunnel

第二步:然后再在PE1和PE1再部署一个扩展的LDP或MP-BGP,再形成一条链路,也就是上图所有的PW链路。

第三步:在PE1上创建VRF(VSI)与CE1绑定上,扩展的LDP与MP-BGP会给这个虚拟机分配一个内层标签,CE2也是如此。

PS:PE1为VSI分配完内层标签之后会通过MP-BGP或扩展的LDP将标签发送给PE2,其实作用就是告诉PE2,如果你想给我发送报文,就要携带这个内层标签,这与MPLS-VPN当中的MP-BGP给分配标签的效果一样的。

另外一点需要注意,你看哈,在控制层面只能建立好了路径,并没有为数据转发层面准备好MAC地址,这其实就是VPLS的问题之一。

报文转发过程

image-20230430170650044

如上图,我们来看一下报文转发过程,先看广播,然后再看单播,为什么广播和单播要分开说呢?因为在IPV4的网络同网段通信过程当中,想要单播必须先广播!

广播报文的通信过程

  1. CE1的的请求到达PE1的VSI,这时候VSI会源MAC地址放到自己的VSI的MAC地址表当中。
  2. 对于广播广播报文,PE1会通过pwA转发给PE2,注意这时候会携带两层标签,最内层标签是扩展的LDP形成的用来标签PE2上的VSI,最外层的标签就是MPLS-LDP。
  3. PE2也会学习源MAC地址,并将此广播发送给CE2
  4. CE2回包,PE2和PE1先后学习,这样PE1才有了完整的单播MAC地址表。

单播报文的通信过程:

没什么说的,就比较简单了,根据形成的MAC地址表转发就可以了。

基础实验

image-20230430170702971

  • 控制层面配置步骤概述
    1. 在PE之间部署MPLS-LDP(或RSTE、SR)生成隧道,这时会生成外层标签
    2. 为不同的企业用户创建PW
      1. 静态配置产生PW,这样就不需要控制层面
      2. 通过扩展的LDP辅助生成(martini)用的最多
      3. MP-BGP辅助生成(kompella)
    3. 为站点创建VSI(虚拟交换机),保存不同企业用户的MAC地址表
    4. 把AC绑定到VSI

martini方案概述

其实是使用了两个LDP进程。其实一个LDP进程就是传统的MPLS-LDP进程,与MPLS-VPN当中的作用是一样的就是用来生成外层隧道或生成外部标签的;另一个LDP进程是扩展的LDP进程,用于PE与PE间的直接通信,类似于MPLS-VPN当中MP-BGP的效果,只不过在此处通过扩展的LDP实现了,作用与MP-BGP相似,用于生成内层标签。

kompella方案概述:

这个方案与MPLS-LDP最像了,MPLS-LDP生成外部标签,通过MP-BGP生成内部标签,但由于实现起来比较复杂,已经很少使用了,目前使用最广泛的还是martini这种方案。

实验Martini

image-20230430170711332

实验目标:让R4和R5实现二层间的通信

注意事项:全都使用ENSP的router路由器

实验重点:利用LDP为AC分配标签,两层标签

实验思路:

  1. R1、R2、R3三台路由器先跑一个IGP-OSPF;
  2. R2、R2、R3 启用MPLS-LDP;
  3. R1到R3单独建立一个会话
  4. 双方PE使能MPLS L2VPN
  5. 在PE上创建VSI、指定信令为LDP,然后将VSI与AC接口绑定
  • 第一步:R1和、R2、R3配置OSPF并验证

    R1:
    sys
    sysn R1
    int g0/0/1
    	ip add 10.0.12.1 24
    int LoopBack 0
    	ip add 1.1.1.1 32
    ospf 1 router-id 1.1.1.1 
    a 0
    	network 10.0.12.1 0.0.0.0
    	network 1.1.1.1 0.0.0.0
    
    R2:
    sys
    sysn R2
    int LoopBack 0
    	ip add 2.2.2.2 32
    int g0/0/1
    	ip add 10.0.12.2 24
    int g0/0/2
    	ip add 10.0.23.2 24
    ospf 1 router-id 2.2.2.2
    a 0
    	network 2.2.2.2 0.0.0.0
    	network 10.0.12.2 0.0.0.0
    	network 10.0.23.2 0.0.0.0
    
    R3:
    sys
    sysn R3
    int LoopBack 0
    	ip add 3.3.3.3 32
    int g0/0/2
    	ip add 10.0.23.3 24
    ospf 1 router-id 3.3.3.3
    a 0
    network 3.3.3.3 0.0.0.0
    network 10.0.23.3 0.0.0.0
    
    # 验证
    <R1>dis ip routing-table protocol ospf 
    3.3.3.3/32  OSPF    10   2           D   10.0.12.2       GigabitEthernet 0/0/1
    10.0.23.0/24  OSPF    10   2           D   10.0.12.2       GigabitEthernet 0/0/1
    
    [R3]dis ip routing-table protocol ospf
    Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
    1.1.1.1/32  OSPF    10   2           D   10.0.23.2       GigabitEthernet 0/0/2
    10.0.12.0/24  OSPF    10   2           D   10.0.23.2       GigabitEthernet 0/0/2
    
    
  • 第二步:R1和、R2、R3配置MPLS-LDP并验证

    R1:
    sys
    mpls lsr-id 1.1.1.1
    mpls
    quit
    mpls ldp
    int g0/0/1
    mpls
    mpls ldp
    
    R2:
    sys
    mpls lsr-id 2.2.2.2
    mpls
    quit
    mpls ldp
    quit
    int g0/0/1
    mpls
    mpls ldp
    int g0/0/2
    mpls
    mpls ldp
    
    R3:
    sys
    mpls lsr-id 3.3.3.3
    mpls
    quit
    mpls ldp
    int g0/0/2
    mpls
    mpls ldp
    
    <R1>dis mpls ldp session 
    
     LDP Session(s) in Public Network
     Codes: LAM(Label Advertisement Mode), SsnAge Unit(DDDD:HH:MM)
     A '*' before a session means the session is being deleted.
     ------------------------------------------------------------------------------
     PeerID             Status      LAM  SsnRole  SsnAge      KASent/Rcv
     ------------------------------------------------------------------------------
     2.2.2.2:0          Operational DU   Passive  0000:00:00  2/2
     ------------------------------------------------------------------------------
    <R1>dis mpls ldp lsp
     
     LDP LSP Information
     -------------------------------------------------------------------------------
     DestAddress/Mask   In/OutLabel    UpstreamPeer    NextHop         OutInterface
     -------------------------------------------------------------------------------
    
     1.1.1.1/32         3/NULL         2.2.2.2         127.0.0.1       InLoop0
    *1.1.1.1/32         Liberal/1024                   DS/2.2.2.2
     2.2.2.2/32         NULL/3         -               10.0.12.2       GE0/0/1
     2.2.2.2/32         1024/3         2.2.2.2         10.0.12.2       GE0/0/1
     3.3.3.3/32         NULL/1025      -               10.0.12.2       GE0/0/1
     3.3.3.3/32         1025/1025      2.2.2.2         10.0.12.2       GE0/0/1
     -------------------------------------------------------------------------------
    
    <R3>dis mpls ldp session 
    
     LDP Session(s) in Public Network
     Codes: LAM(Label Advertisement Mode), SsnAge Unit(DDDD:HH:MM)
     A '*' before a session means the session is being deleted.
     ------------------------------------------------------------------------------
     PeerID             Status      LAM  SsnRole  SsnAge      KASent/Rcv
     ------------------------------------------------------------------------------
     2.2.2.2:0          Operational DU   Active   0000:00:00  3/3
     ------------------------------------------------------------------------------
     TOTAL: 1 session(s) Found.
    <R3>dis mpls ldp lsp
     
     LDP LSP Information
     -------------------------------------------------------------------------------
     DestAddress/Mask   In/OutLabel    UpstreamPeer    NextHop         OutInterface
     -------------------------------------------------------------------------------
    
     1.1.1.1/32         NULL/1024      -               10.0.23.2       GE0/0/2
     1.1.1.1/32         1024/1024      2.2.2.2         10.0.23.2       GE0/0/2
     2.2.2.2/32         NULL/3         -               10.0.23.2       GE0/0/2
     2.2.2.2/32         1025/3         2.2.2.2         10.0.23.2       GE0/0/2
     3.3.3.3/32         3/NULL         2.2.2.2         127.0.0.1       InLoop0
    *3.3.3.3/32         Liberal/1025                   DS/2.2.2.2
     -------------------------------------------------------------------------------
    
  • R1到R3单独建立一个会话

    注意,你看哈,在这个环境当中,一旦三台路由器的LDP建立完成之后,R1和R3其实都是只有一条会话,只有中间的R2有两条,我们要做的就是在R1并没有直接连接R3,我们接下来做的就是让R1与R3之间建立一个会话,完成之后你会发现LSP其实产没有发生变化。

    这一步有点类似于MPLS VPN当中的建立IBGP对等体

    [R1]mpls ldp remote-peer ar3
    [R1-mpls-ldp-remote-ar3]remote-ip 3.3.3.3
    
    [R3]mpls ldp remote-peer ar1
    [R3-mpls-ldp-remote-ar1]remote-ip 1.1.1.1
    
    [R1]dis mpls ldp session 
    
     ------------------------------------------------------------------------------
     PeerID             Status      LAM  SsnRole  SsnAge      KASent/Rcv
     ------------------------------------------------------------------------------
     2.2.2.2:0          Operational DU   Passive  0000:00:08  35/35
     3.3.3.3:0          Operational DU   Passive  0000:00:00  4/4
     ------------------------------------------------------------------------------
     TOTAL: 2 session(s) Found.
    
    [R1]dis mpls ldp lsp
    
     1.1.1.1/32         3/NULL         2.2.2.2         127.0.0.1       InLoop0
     1.1.1.1/32         3/NULL         3.3.3.3         127.0.0.1       InLoop0
    *1.1.1.1/32         Liberal/1024                   DS/2.2.2.2
    *1.1.1.1/32         Liberal/1024                   DS/3.3.3.3
     2.2.2.2/32         NULL/3         -               10.0.12.2       GE0/0/1
     2.2.2.2/32         1024/3         2.2.2.2         10.0.12.2       GE0/0/1
     2.2.2.2/32         1024/3         3.3.3.3         10.0.12.2       GE0/0/1
    *2.2.2.2/32         Liberal/1025                   DS/3.3.3.3
     3.3.3.3/32         NULL/1025      -               10.0.12.2       GE0/0/1
     3.3.3.3/32         1025/1025      2.2.2.2         10.0.12.2       GE0/0/1
     3.3.3.3/32         1025/1025      3.3.3.3         10.0.12.2       GE0/0/1
    *3.3.3.3/32         Liberal/3                      DS/3.3.3.3
    
  • PE使能MPLS L2VPN—创建VSI—指定信令为LDP,然后将VSI与AC接口绑定

    [R1]mpls l2vpn 
    [R1-l2vpn]quit
    [R1]vsi yeslab static
    [R1-vsi-yeslab]pwsignal ldp
    [R1-vsi-yeslab-ldp]vsi-id 1
    [R1-vsi-yeslab-ldp]peer 3.3.3.3
    
    R3:
    mpls l2vpn
    quit
    vsi yeslab static
    pwsignal ldp
    vsi-id 1
    peer 1.1.1.1
    
    [R1]int g0/0/0.1
    [R1-GigabitEthernet0/0/0.1]shutdown 
    [R1-GigabitEthernet0/0/0.1]vlan-type dot1q 10
    [R1-GigabitEthernet0/0/0.1]l2 binding vsi yeslab
    [R1-GigabitEthernet0/0/0.1]un sh
    
    [R3-vsi-yeslab]int g0/0/0.1
    [R3-GigabitEthernet0/0/0.1]shutdown 
    [R3-GigabitEthernet0/0/0.1]vlan-type dot1q 10
    [R3-GigabitEthernet0/0/0.1]l2 binding vsi yeslab
    [R3-GigabitEthernet0/0/0.1]un sh
    
  • 验证

    R4:
    interface GigabitEthernet0/0/0.1
     vlan-type dot1q 10
     ip address 192.168.0.4 255.255.255.0
    
    [R5]int g0/0/0.1
    [R5-GigabitEthernet0/0/0.1]dis th
    #
    interface GigabitEthernet0/0/0.1
     vlan-type dot1q 10
     ip address 192.168.0.5 255.255.255.0
    
    [R5]ping 192.168.0.4
      PING 192.168.0.4: 56  data bytes, press CTRL_C to break
        Reply from 192.168.0.4: bytes=56 Sequence=1 ttl=255 time=110 ms
        Reply from 192.168.0.4: bytes=56 Sequence=2 ttl=255 time=110 ms
        Reply from 192.168.0.4: bytes=56 Sequence=3 ttl=255 time=100 ms
        Reply from 192.168.0.4: bytes=56 Sequence=4 ttl=255 time=110 ms
        Reply from 192.168.0.4: bytes=56 Sequence=5 ttl=255 time=100 ms
    [R5]dis arp
    IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE 
                                              VLAN/CEVLAN PVC                      
    ------------------------------------------------------------------------------
    192.168.0.5     5489-980c-14f3            I -         GE0/0/0.1
    192.168.0.4     5489-9887-65d9  18        D-0         GE0/0/0.1
                                                10/-
    ------------------------------------------------------------------------------
    Total:2         Dynamic:1       Static:0     Interface:1
    
    
    <R1>dis vsi name yeslab verbose 
     
     ***VSI Name               : yeslab
        Administrator VSI      : no
        Isolate Spoken         : disable
        VSI Index              : 0
        PW Signaling           : ldp
        Member Discovery Style : static
        PW MAC Learn Style     : unqualify
        Encapsulation Type     : vlan  #封装方式
        MTU                    : 1500
        Diffserv Mode          : uniform
        Service Class          : --
        Color                  : --
        DomainId               : 255
        Domain Name            : 
        Ignore AcState         : disable
        P2P VSI                : disable
        Create Time            : 0 days, 0 hours, 24 minutes, 12 seconds
        VSI State              : up  # 状态
     
        VSI ID                 : 1   # ID
       *Peer Router ID         : 3.3.3.3  # peer
        primary or secondary   : primary
        ignore-standby-state   : no
        VC Label               : 1026   # 分配的标签
        Peer Type              : dynamic  # 分配的标签
        Session                : up
        Tunnel ID              : 0x5    # Tunnel ID
        Broadcast Tunnel ID    : 0x5 
        Broad BackupTunnel ID  : 0x0 
        CKey                   : 2
        NKey                   : 1
        Stp Enable             : 0
        PwIndex                : 0
    
        Interface Name         : GigabitEthernet0/0/0.1
        State                  : up
        Access Port            : false
        Last Up Time           : 2023/04/05 16:20:21
        Total Up Time          : 0 days, 0 hours, 11 minutes, 31 seconds
    
      **PW Information:
    
       *Peer Ip Address        : 3.3.3.3
        PW State               : up
        Local VC Label         : 1026
        Remote VC Label        : 1026
        PW Type                : label 
        Tunnel ID              : 0x5 
        Broadcast Tunnel ID    : 0x5 
        Broad BackupTunnel ID  : 0x0 
        Ckey                   : 0x2
        Nkey                   : 0x1
        Main PW Token          : 0x5 
        Slave PW Token         : 0x0 
        Tnl Type               : LSP   # LSP
        OutInterface           : GigabitEthernet0/0/1 
        Backup OutInterface    :  
        Stp Enable             : 0 
        PW Last Up Time        : 2023/04/05 16:20:21
        PW Total Up Time       : 0 days, 0 hours, 11 minutes, 31 seconds
    
    <R3>dis vsi name yeslab verbose 
     
     ***VSI Name               : yeslab
        Administrator VSI      : no
        Isolate Spoken         : disable
        VSI Index              : 0
        PW Signaling           : ldp
        Member Discovery Style : static
        PW MAC Learn Style     : unqualify
        Encapsulation Type     : vlan
        MTU                    : 1500
        Diffserv Mode          : uniform
        Service Class          : --
        Color                  : --
        DomainId               : 255
        Domain Name            : 
        Ignore AcState         : disable
        P2P VSI                : disable
        Create Time            : 0 days, 0 hours, 18 minutes, 32 seconds
        VSI State              : up
     
        VSI ID                 : 1
       *Peer Router ID         : 1.1.1.1
        primary or secondary   : primary
        ignore-standby-state   : no
        VC Label               : 1026
        Peer Type              : dynamic
        Session                : up
        Tunnel ID              : 0x5 
        Broadcast Tunnel ID    : 0x5 
        Broad BackupTunnel ID  : 0x0 
        CKey                   : 2
        NKey                   : 1
        Stp Enable             : 0
        PwIndex                : 0
    
        Interface Name         : GigabitEthernet0/0/0.1
        State                  : up
        Access Port            : false
        Last Up Time           : 2023/04/05 16:16:22
        Total Up Time          : 0 days, 0 hours, 14 minutes, 26 seconds
    
      **PW Information:
    
       *Peer Ip Address        : 1.1.1.1
        PW State               : up
        Local VC Label         : 1026
        Remote VC Label        : 1026
        PW Type                : label 
        Tunnel ID              : 0x5 
        Broadcast Tunnel ID    : 0x5 
        Broad BackupTunnel ID  : 0x0 
        Ckey                   : 0x2
        Nkey                   : 0x1
        Main PW Token          : 0x5 
        Slave PW Token         : 0x0 
        Tnl Type               : LSP 
        OutInterface           : GigabitEthernet0/0/2 
        Backup OutInterface    :  
        Stp Enable             : 0 
        PW Last Up Time        : 2023/04/05 16:20:21
        PW Total Up Time       : 0 days, 0 hours, 10 minutes, 27 seconds
    <R3>
    
  • 抓包验证

    image-20230430170732528

    image-20230430170740522

    两层标签,两层标签哪里来的?外1025,内1026

    [R1]dis fib 
    Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
    3.3.3.3/32         10.0.12.2       DGHUT t[3707]       GE0/0/1        0x3
    2.2.2.2/32         10.0.12.2       DGHUT t[3697]       GE0/0/1        0x1
    ……
    
    <R1>dis vsi name yeslab verbose | incl 1025
    <R1>dis vsi name yeslab verbose | incl 1026
        VC Label               : 1026
        Local VC Label         : 1026
        Remote VC Label        : 1026
    
    <R1>dis mpls ldp lsp | incl 1026
    <R1>dis mpls ldp lsp | incl 1025
     
     LDP LSP Information
     -------------------------------------------------------------------------------
     DestAddress/Mask   In/OutLabel    UpstreamPeer    NextHop         OutInterface
     -------------------------------------------------------------------------------
    
    *2.2.2.2/32         Liberal/1025                   DS/3.3.3.3
     3.3.3.3/32         NULL/1025      -               10.0.12.2       GE0/0/1
     3.3.3.3/32         1025/1025      2.2.2.2         10.0.12.2       GE0/0/1
     3.3.3.3/32         1025/1025      3.3.3.3         10.0.12.2       GE0/0/1
     -------------------------------------------------------------------------------
    

实验kompella

这种方式不需要远端的LDP,这个内层标签是MP-BGP帮助它分配的,而且使用MP-BGP的优势是如果有RR设备会比较省事,不用一个个的邻居去指定。

  • 配置

    [R1]undo mpls ldp remote-peer ar3
    [R1]undo vsi yeslab
    [R1]bgp 100
    [R1-bgp]peer 3.3.3.3 as-number 100
    [R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
    [R1-bgp]vpls-family 
    [R1-bgp-af-vpls]peer 3.3.3.3 enable
    
    # 启动二层VPN功能
    [R1]mpls l2vpn
    
    # 配置vsi
    [R1]vsi yeslab auto 
    [R1-vsi-yeslab]pwsign	
    [R1-vsi-yeslab]pwsignal bgp
    [R1-vsi-yeslab-bgp]route-distinguisher 100:1
    [R1-vsi-yeslab-bgp]vpn-target 100:1
    [R1-vsi-yeslab-bgp]site 1 range 5
    [R1-vsi-yeslab-bgp]site 1 range 5 default-offset 0
    [R1-GigabitEthernet0/0/0.1]dis th
    #
    interface GigabitEthernet0/0/0.1
     vlan-type dot1q 10
     l2 binding vsi yeslab
    
    [R3]undo mpls ldp remote-peer ar1
    [R3]undo vsi yeslab
    [R3]bgp 100
    [R3-bgp]peer 1.1.1.1 as-number 100
    [R3-bgp]peer 1.1.1.1 con loopback 0
    [R3-bgp]vpls-fa
    [R3-bgp-af-vpls]peer 1.1.1.1 enable
    [R3-bgp-af-vpls]quit
    [R3-bgp]mpls l2vpn
    [R3-l2vpn]quit
    [R3]vsi yeslab auto
    [R3-vsi-yeslab]pwsignal bgp
    [R3-vsi-yeslab-bgp]route-dist 100:1
    [R3-vsi-yeslab-bgp]vpn-target 100:1
    [R3-vsi-yeslab-bgp]site 2 range 5 default-offset 0
    
    # 绑定
    [R3-GigabitEthernet0/0/0.1]dis th
    #
    interface GigabitEthernet0/0/0.1
     vlan-type dot1q 10
     l2 binding vsi yeslab
    
  • 验证

    [R1]dis vsi name yeslab verbose 
     
     ***VSI Name               : yeslab
        Administrator VSI      : no
        Isolate Spoken         : disable
        VSI Index              : 0
        PW Signaling           : bgp
        Member Discovery Style : auto
        PW MAC Learn Style     : unqualify
        Encapsulation Type     : vlan
        MTU                    : 1500
        Diffserv Mode          : uniform
        Service Class          : --
        Color                  : --
        DomainId               : 255
        Domain Name            : 
        Ignore AcState         : disable
        P2P VSI                : disable
        Create Time            : 0 days, 0 hours, 10 minutes, 7 seconds
        VSI State              : up
     
        BGP RD                 : 100:1
        SiteID/Range/Offset    : 1/5/0
        Import vpn target      : 100:1                  
        Export vpn target      : 100:1                  
        Remote Label Block     : 100001/5/0 
        Local Label Block      : 0/100001/5/0 
    
        Interface Name         : GigabitEthernet0/0/0.1
        State                  : up
        Access Port            : false
        Last Up Time           : 2023/04/05 17:36:36
        Total Up Time          : 0 days, 0 hours, 1 minutes, 42 seconds
    
      **PW Information:
    
       *Peer Ip Address        : 3.3.3.3  
        PW State               : up
        Local VC Label         : 100003    # 本地分配的标签
        Remote VC Label        : 100002    # 远端的标签
        PW Type                : label 
        Tunnel ID              : 0x6 
        Broadcast Tunnel ID    : 0x6 
        Broad BackupTunnel ID  : 0x0 
        Ckey                   : 0x4
        Nkey                   : 0x3
        Main PW Token          : 0x6 
        Slave PW Token         : 0x0 
        Tnl Type               : LSP 
        OutInterface           : GigabitEthernet0/0/1 
        Backup OutInterface    :  
        Stp Enable             : 0 
        PW Last Up Time        : 2023/04/05 17:37:09
        PW Total Up Time       : 0 days, 0 hours, 1 minutes, 9 seconds
    
  • 抓包验证

    image-20230430170756738

    image-20230430170805991

    image-20230430170817145

缺陷

依赖性强

  • 对MPLS架构的依赖性强,没有MPLS的话,VPLS无法部署
  • 而且PE和CE之间必须是以太网

MAC地址的学习

我们知道同网段通信要进行广播,而同网段同地域情况下通常带宽资源充足,这么做没什么大问题,但在VPLS当中,跨地域马上进行通信时,MAC地址学习依然是是通过广播报文在广域网当中转发,这样太浪费带宽和时间,我们能不能提供把MAC地址提前准备好呢?其实完全可以在数据通信之前提前把MAC地址表在控制层准备好(EVPN),这样的话,就不会在马上要通信的时候还要在广域网上进行广播,EVPN就是这个思路。

没有良好的冗余机制

image-20230430170827218

为了冗余和稳定性,我们很可能会将CE1连接到两个PE,这样一条链路断了,还有另一条链路,但这样又很有可能会形成物理环路,为了破环我们还得运行一个第三方的技术-STP,而STP的问题在于它一定会堵塞其中一条链路,所以就会导致流量不平均。

image-20230430170836998

另外在PE-PE之间,它也做不到PE1同时将流量发送给PE3和PE4,只能发给其中一PE,这也会导致流量分配不平均。

PS:EVPN就是因为有了良好的冗余机制才战胜了VPLS。

收敛慢

image-20230430170848552

假如现在PE3和CE2之间链路断了

  1. PE3会立马感知到,然后通过PE3与PE1之间运行的扩展LDP进程,利用mac-withdraw报文通知PE1自己这边断了
  2. STP也会立马感知到,将PE4提升为主链路
  3. PE1收到之后立马立马删除与CE2侧下有关于的MAC地址
  4. PE1没有了MAC地址,现在PE1收到CE1的请求,PE1又得重新开始广播,根据头端列表广播询问所有的PE,PE4要在重新学习CE2的MAC,然后返回给PE1
  5. PE1终端有了目标主机的MAC地址,才开始进行单播发送

过程复杂且慢,最根本的原因在于关于MAC地址的学习,控制层面是不管的,MAC地址学习是由数据转发层面来负责的。在EVPN当中就没有这个收敛慢的问题,因为EVPN有良好的冗余机制,所以一连断了立马就切换到另一端了,速度非常快。

posted @ 2023-04-30 17:12  张贺贺呀  阅读(242)  评论(0编辑  收藏  举报