「VPN」- L3VPN over SR-MPLS Policy (Static)

组网需求:
PE1 和 PE2 设备各有一个 CE 属于 VPN 实例 vpna;
在骨干网络中部署 L3VPN 迭代静态 SR-MPLS Policy,使得 CE1 和 CE2 的 loopback1 接口可以相互通信;
配置思路:
完成设备接口 IP 地址及 OSPF 配置(略);
骨干网上使能 MPLS,配置 SR-MPLS Policy;
在 PE1 与 PE2 之间建立 MP-BGP 对等体关系;
PE 上使能 VPN 实例 IPv4 地址族;
在 PE 设备为路由配置扩展团体属性 Color,并交换路由信息;
在 PE 设备上配置隧道选择策略
结果验证;

完成设备接口 IP 地址及 OSPF 配置(略)。

骨干网上使能 MPLS,配置 SR-MPLS Policy。

配置 SR-MPLS 的基本功能,PE1 配置如下(P 和 PE2 配置略);

[~PE1] mpls lsr-id 10.0.1.1
[*PE1] mpls
[*PE1-mpls] mpls te
[*PE1-mpls] quit
[~PE1] segment-routing
[*PE1-segment-routing] ipv4 adjacency local-ip-addr 10.0.12.1 remote-ip-addr 10.0.12.2 sid 330012// 静态配置 SR-MPLS Policy 场景建议用户使用静态配置的 Adjacency SID;

[*PE1-segment-routing] quit
[~PE1] ospf 1
[*PE1-ospf-1] opaque-capability enable
[*PE1-ospf-1] segment-routing mpls
[*PE1-ospf-1] segment-routing global-block 16000 23999
[*PE1-ospf-1-area-0.0.0.0] quit
[*PE1] interface loopback 0
[*PE1-LoopBack1] ospf prefix-sid index 1
[*PE1-LoopBack1] quit

本例中使用静态方式配置 Adjacency SID,Adjacency SID 的数值如图所示;

配置 SR-MPLS Policy,PE1 配置如下(P 和 PE2 配置略);

[~PE1] segment-routing
[~PE1-segment-routing] segment-list pe1
[*PE1-segment-routing-segment-list-pe1] index 10 sid label 330012
[*PE1-segment-routing-segment-list-pe1] index 20 sid label 330023
[*PE1-segment-routing-segment-list-pe1] quit
[*PE1-segment-routing] sr-te policy policy100 endpoint 10.0.3.3 color 100 // 配置 SR-MPLS Policy 的目的地址和颜色(Color);

[*PE1-segment-routing-te-policy-policy100] binding-sid 115
[*PE1-segment-routing-te-policy-policy100] mtu 1000
[*PE1-segment-routing-te-policy-policy100] candidate-path preference 200
[*PE1-segment-routing-te-policy-policy100-path] segment-list pe1
[*PE1-segment-routing-te-policy-policy100-path] quit
[*PE1-segment-routing-te-policy-policy100] quit
[*PE1-segment-routing] quit
[*PE1] commit

SR-MPLS Policy 用来引导流量通过 SR-MPLS TE 网络。每个 SR-MPLS Policy 可以有多个候选路径,每个候选路径有不同的优先级,通过优先级可以选择一个最优的有效候选路径作为主路径,优先级次高有效候选路径做为备份路径。SR-MPLS Policy 配置步骤如下:

配置 Segment List
执行命令 system-view,进入系统视图;

执行命令 segment-routing,使能全局 SR 能力,并进入 Segment Routing 视图;

执行命令 segment-list (Segment Routing 视图) list-name,创建 SR-MPLS TE 候选路径的显式标签路径,并且进入显式标签路径视图;

执行命令 index index sid label label,配置在 Segment List 中指定下一跳标签;
配置 SR-MPLS Policy
执行命令 system-view,进入系统视图;

执行命令 segment-routing,使能全局 SR 能力,并进入 Segment Routing 视图;

执行命令 sr-te policy policy-name [ endpoint ipv4-address color color-value ],创建 SR-MPLS Policy,配置 SR-MPLS Policy 的目的地址和颜色(Color),并且进入 SR-MPLS Policy 视图;

执行命令 binding-sid label-value,配置 SR-MPLS Policy 的 Binding SID(可选);

label-value 取值需要在 local-block begin-value end-value 命令定义的范围内;

执行命令 mtu mtu,配置 SR-MPLS Policy 的 MTU(可选);

执行命令 candidate-path preference preference,配置 SR-MPLS Policy 的候选路径及其优先级;

每一个 SR-MPLS Policy 允许配置多个候选路径。preference 越大,候选路径优先级越高,存在多个候选路径时,优先级最高的生效;

执行命令 segment-list(Candidate Path 视图)list-name,配置引用 SR-MPLS TE 候选路径的 Segment List;

Segment List 需要提前通过 segment-list(Segment Routing 视图)命令创建;

在 PE1 与 PE2 之间建立 MP-BGP 对等体关系。

PE1 配置如下(PE2 的配置略);

[~PE1] ip vpn-instance vpna
[*PE1-vpn-instance-vpna] ipv4-family
[*PE1-vpn-instance-vpna-af-ipv4] route-distinguisher 100:1
[*PE1-vpn-instance-vpna-af-ipv4] vpn-target 111:1 both
[*PE1] interface loopback1
[*PE1-LoopBack1] ip binding vpn-instance vpna
[*PE1-LoopBack1] ip address 10.1.4.4 24
[*PE1-LoopBack1] quit
[~PE1] route-policy color100 permit node 1
[*PE1-route-policy] apply extcommunity color 0:100 // 为收到的路由添加扩展团体属性 Color;
[~PE1] bgp 100
[~PE1-bgp] peer 10.0.3.3 as-number 100
[*PE1-bgp] peer 10.0.3.3 connect-interface loopback 0
[*PE1-bgp] ipv4-family vpnv4
[*PE1-bgp-af-vpnv4] peer 10.0.3.3 enable
[*PE1-bgp-af-vpnv4] peer 10.0.3.3 route-policy color100 import  // 为收到的路由添加扩展团体属性 Color;
[~PE1-bgp-af-vpnv4] quit
[*PE1-bgp]ipv4-family vpn-instance vpna
[*PE1-bgp-vpna]import-route direct
[*PE1-bgp-vpna]commit

通过路由策略对路由增加扩展团体属性 Color,携带 Color 的路由可以根据 Color 与下一跳地址迭代 SR-MPLS Policy;

配置 Route-Policy
执行命令 system-view,进入系统视图;

执行命令 route-policy route-policy-name { deny | permit } node node,创建路由策略,并进入路由策略视图;

配置路由策略过滤条件,即配置 If-match 子句。只有通过过滤条件的路由信息才能被添加或修改团体属性(可选);

执行命令 apply extcommunity color color,配置 BGP 扩展团体属性 Color;

执行命令 commit,提交配置;
对 BGP VPNv4 邻居应用 Route-Policy
执行命令 system-view,进入系统视图;

执行命令 bgp as-number,进入 BGP 视图;

执行命令 peer { ipv4-address | group-name } as-number { as-number-plain | as-number-dot },创建 BGP 对等体;

执行命令 ipv4-family vpnv4,进入 BGP VPNv4 地址族视图;

执行命令 peer { ipv4-address | group-name } enable,使能 BGP VPNv4 邻居关系;

执行命令 peer { ipv4-address | group-name } route-policy route-policy-name { import | export },配置 BGP 入方向或出方向的路由策略;

执行命令 commit,提交配置;

PE 上使能 VPN 实例 IPv4 地址族。

在 PE 设备为路由配置扩展团体属性 Color,并交换路由信息。

在 PE 设备上配置隧道选择策略

PE1 配置如下(PE2 的配置略);

[~PE1] tunnel-policy p3
[*PE1-tunnel-policy-p3] tunnel select-seq sr-te-policy load-balance-
number 1 unmix
[*PE1-tunnel-policy-p3] quit
[*PE1] commit
[~PE1] ip vpn-instance vpna
[*PE1-vpn-instance-vpna] ipv4-family
[*PE1-vpn-instance-vpna-af-ipv4] tnl-policy p3
[*PE1-vpn-instance-vpna-af-ipv4] quit
[*PE1-vpn-instance-vpna] quit
[*PE1] commit

结果验证。

在 PE1 设备上执行 display tunnel-info all 命令,查看 SR LSP;

<PE1>display tunnel-info all
Tunnel ID                       Type              Destination                  Status
-------------------------------------------------------------------------------
0x000000000300000001 sr-te               10.0.3.3                           UP
0x000000002900000042 srbe-lsp           10.0.3.3                          UP
0x000000002900000043 srbe-lsp           10.0.2.2                          UP
0x000000003200000001 srtepolicy         10.0.3.3                          UP // 到达 PE2 的 SR-TE Policy 的隧道 ID;

在 PE1 设备上查看 vpna 的路由信息;

[~PE1]display ip routing-table vpn-instance vpna 10.1.5.5 verbose
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route
------------------------------------------------------------------------------
Routing Table : vpna
Summary Count : 1

Destination: 10.1.5.5/32
     Protocol: IBGP               Process ID: 0
   Preference: 255                      Cost: 0
      NextHop: 10.0.3.3            Neighbour: 10.0.3.3
        State: Active Adv Relied         Age: 00h01m04s
          Tag: 0                    Priority: low
        Label: 48122                 QoSInfo: 0x0
   IndirectID: 0x100013F            Instance:
 RelayNextHop: 0.0.0.0             Interface: policy100
     TunnelID: 0x000000003200000001    Flags: RD
// Label: 48122
// TunnelID: 0x000000003200000001
// 将 VPNv4 标签和 SR-TE Policy LSP 结合,指导数据包转发;

在 PE1 设备上 Tracert SR LSP。

<PE1>tracert lsp sr-te policy endpoint-ip 10.0.3.3 color 100
sr-te policy's segment list:
  Preference: 200; Path Type: primary; Protocol-Origin: local; Originator: 0, 0.0.0.0; Discriminator: 200; Segment-List ID: 65; Xcindex: 2000065
  TTL    Replier            Time     Type       Downstream
  0                                  Ingress    10.0.12.2/[330023 ] |--------+
  1      10.0.12.2          24 ms    Transit    10.0.23.3/[3 ] |-------------+------- 请思考标签是如何计算得到的?
  2      10.0.3.3           113 ms   Egress

在 CE1 上验证结果。

<CE1>ping -a 10.1.4.4 10.1.5.5
  PING 10.1.5.5: 56  data bytes, press CTRL_C to break
	Reply from 10.1.5.5: bytes=56 Sequence=1 ttl=254 time=1 ms
	Reply from 10.1.5.5: bytes=56 Sequence=2 ttl=254 time=1 ms
	Reply from 10.1.5.5: bytes=56 Sequence=3 ttl=254 time=1 ms
	Reply from 10.1.5.5: bytes=56 Sequence=4 ttl=254 time=1 ms
	Reply from 10.1.5.5: bytes=56 Sequence=5 ttl=254 time=1 ms