在 Kompella L2 VPN 的情况下,瞻博网络 PE 如何将来自 CE 的帧与 <VPN_name>.l2vpn.0 表中的正确路由相关联?

网络工程 杜松 l2vpn
2021-07-27 15:45:58

假设我有以下简单的 BGP 信号 L2VPN 配置:

root@PE4> show configuration routing-instances
vpn-b {
    instance-type l2vpn;
    interface ge-0/0/0.515;
    route-distinguisher 65512:200;
    vrf-target target:65512:200;
    protocols {
        l2vpn {
            encapsulation-type ethernet-vlan;
            site ce-d {
                site-identifier 2;
                interface ge-0/0/0.515;
            }
        }
    }
}

root@PE4>

vpn-b.l2vpn.0表格内容如下:

root@PE4> show route table vpn-b.l2vpn.0 detail

vpn-b.l2vpn.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
 65512:200:1:1/96 (1 entry, 1 announced)
        *BGP    Preference: 170/-101
                Route Distinguisher: 65512:200
                Next hop type: Indirect, Next hop index: 0
                Address: 0xce2eb90
                Next-hop reference count: 6
                Source: 192.168.2.1
                Protocol next hop: 192.168.2.1
                Indirect next hop: 0x2 no-forward INH Session ID: 0x0
                State: <Secondary Active Int Ext>
                Local AS: 65512 Peer AS: 65512
                Age: 3:29:45    Metric2: 1
                Validation State: unverified
                Task: BGP_65512.192.168.2.1+179
                Announcement bits (1): 0-vpn-b-l2vpn
                AS path: I
                Communities: target:65512:200 Layer2-info: encaps: VLAN, control flags:[0x2] Control-Word, mtu: 0, site preference: 100
                Import Accepted
                Label-base: 800256, range: 2, status-vector: 0x0, offset: 1
                Localpref: 100
                Router ID: 192.168.2.1
                Primary Routing Table bgp.l2vpn.0

 65512:200:2:1/96 (1 entry, 1 announced)
        *L2VPN  Preference: 170/-101
                Next hop type: Indirect, Next hop index: 0
                Address: 0xce2f190
                Next-hop reference count: 3
                Protocol next hop: 192.168.2.4
                Indirect next hop: 0x0 - INH Session ID: 0x0
                State: <Active Int Ext>
                Age: 1d 23:46:41        Metric2: 1
                Validation State: unverified
                Task: vpn-b-l2vpn
                Announcement bits (1): 1-BGP_RT_Background
                AS path: I
                Communities: Layer2-info: encaps: VLAN, control flags:[0x2] Control-Word, mtu: 0, site preference: 100
                Label-base: 800000, range: 2, status-vector: 0x0, offset: 1
                Secondary Tables: vpn-b.l2id.0

root@PE4>

如何PE4知道来自CE连接到ge-0/0/0.515接口的必须与65512:200:1:1/96NLRI相关联,从而获得 800257(2 + 800256 - 1) 的内部标签?

1个回答

有两个标签,因此当流量从 CE 进入 PE 时,会有双重推送。

内标

每个接口都从该 L2VPN 标签块中获得一个标签。内部标签基于远程L2VPN 站点的此接口特定标签

L2VPN 使用与 VPLS 相同的 NLRI,因为它们包含:

  • 路由标识符
  • 边缘 ID(站点 ID)
  • 标签块偏移
  • 标签块大小
  • 标签基础

如果您不是多宿主,则每个 L2VPN CE 接口都有自己的站点 ID,因此会在设备上分配自己的标签。如果您是多宿主,则两者是同一个站点并且将使用相同的标签,但需要额外的路由选择来确定哪个电路处于活动状态。

BGP NLRI 中的信息允许本地和远程 PE 导出用于发送和接收的内部标签值。由于每个 CE 都是自己的站点,因此双方都可以找出所需的每个必要的 CE 到 CE 标签。请记住,标签块本质上是局部重要的,也就是说,每个 PE 的标签块不必相同。

您可以查看 L2VPN 连接以查看标签详细信息。

jhead@L2VPN-PE1> show l2vpn connections instance L2VPN-NESE
Layer-2 VPN connections:

<...snip...>

Instance: L2VPN-NESE
Edge protection: Not-Primary
  Local site: 1 (1)
    connection-site           Type  St     Time last up          # Up trans
    2                         rmt   Up     Jan  7 19:45:02 2021           1
      Remote PE: 2.2.2.2, Negotiated control-word: No
      Incoming label: 800183, Outgoing label: 800000
      Local interface: xe-0/0/7.119, Status: Up, Encapsulation: VLAN
      Flow Label Transmit: No, Flow Label Receive: No

此外,您可以查看mpls.0本地接口表标签关联。

jhead@L2VPN-PE1> show route label 800183

mpls.0: 1063 destinations, 1063 routes (1063 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

800183             *[L2VPN/7] 3w6d 22:34:47
                    > via xe-0/0/7.119, Pop

外标

外层标签是与 LSP 相关联以到达远程 PE (RSVP / LDP) 的任何传输标签。