目录

简介

前提条件

要求

使用的组件

背景信息

问题

解决方案

SR全局块

SR映射服务器

映射客户端

拓扑 — AS间选项C（带路由反射器）

拓扑图概述

IP编址方案

配置

相关信息

简介

本文档介绍如何使用部分SR部署为基于LDP的流量提供SR优势，包括域间MPLS使用案例中可能应用SR。

前提条件

要求

Cisco 建议您了解以下主题：

- 分段路由

- MPLS

- AS间

- LDP

使用的组件

本文档中的信息基于以下软件和硬件版本：

- 支持网段路由

- NCS5500、ASR9000

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解所有命令的潜在影响。

背景信息

本文档概述了当支持SR的路由器和不支持SR的路由器混用在同一网络内，并且更准确地说是在同一路由域中时，SR与LDP交互的机制。

在节点上运行的组播控制平面客户端(MCC)必须确保它安装在节点的MPLS数据平面中的传入标签被唯一分配，并且分段路由使用分段路由全局块(SRGB)进行标签分配。使用SRGB可以使SR与任何其他MCC共存。

提示：此信息有助于您使用Inter-AS选项C为MPLS SR和MPLS LDP提供Inter-AS解决方案。

问题

使用RFC 4364中定义的Inter-AS选项C，在具有SR MPLS控制平面的异类环境中的SR部署与MPLS LDP控制平面进行互操作。

本文档介绍服务提供商网络使用MPLS LDP和SR MPLS提供使用AS间选项C的虚拟专用网络的方法。

解决方案

AS间选项C的简要概述：

AS间选项C是RFC 4364中介绍的用于互连多AS主干的第三个选项。这是迄今为止三种设计中最具可扩展性的选项，而且它有其自身的适用场景，要正确应用此设计，我们必须了解这些场景。

选项C是可伸缩的，因此是一个很好的候选选项。ASBR不传输任何VPN路由，它们只负责在自己的AS内分配PE的标记IPv4路由。

为了提高可扩展性，一个MP-EBGP VPNv4会话在PE或RR之间传输所有VPN路由（外部路由）。如果使用RR交换外部路由，则必须保留VPNv4路由的下一跳。

ASBR使用EBGP在AS（内部路由）之间交换内部PE路由信息。这些内部路由对应通过PE或RR之间的多跳MP-EBGP会话通告的外部路由的BGP下一跳。ASBR通告的内部路由可用于在PE之间建立MP-EBGP会话，并允许从入口到出口PE建立LSP。

从可扩展性角度来看，选项C是一个非常好的解决方案，是采用同一SP多AS网络的途径。

分段路由的简要概述：

分段路由(SR)利用源路由和隧道模式。节点通过一组受控的指令（称为数据段）引导数据包，方法是使用SR报头对数据包进行预置。网段可以表示任何指令、拓扑或基于服务。SR允许通过任何拓扑路径和服务链实施流量，同时仅在SR域的入口节点保持每个流量的状态。分段路由架构可以直接应用于MPLS数据平面，转发平面上变化很小。它需要对现有链路状态路由协议进行次要扩展。分段路由还可以使用新型路由扩展报头应用于IPv6。

将网段编码为MPLS标签。有序的数据段列表被编码为标签堆栈。要处理的数据段位于堆栈的顶部。完成数据段后，相关标签会从堆栈中弹出。  根据传统MPLS转发，分段路由MPLS数据平面操作是推送、交换和pop。在“段布线”中定义了以下段类型：

- 前缀段

- 邻接网段

- BGP对等网段

- BGP前缀段

SR全局块

分段路由全局块(SRGB)是为LSD中的分段路由保留的标签值范围。SRGB标签值被指定为支持SR的节点的前缀段标识符(SID)，并在整个域中具有全局意义。

- SR标签范围不能从16,000以下开始。默认SR全局块为：16,000 - 24,000。

- SRGB配置不是特定于地址系列的，因为中定义的路由器功能TLV的“SR功能子TLV”不是特定于地址系列的。

- 如果CLI导致扩展或移动默认SRGB，则要求重新加载即可，但前提是客户端的标签在新范围中。

- 在配置SRGB之前，管理员需要确保为分段路由配置的标签库的一部分是空闲的，并且未被任何其他MPLS LSD客户端使用。

SR映射服务器

映射服务器为部分或全部已知的前缀集中分配前缀SID。路由器必须能够充当映射服务器、映射客户端，或者同时充当这两者。

- 映射服务器是一种控制平面机制，其位置与BGP路由反射器类似

- 允许用户配置非重叠SID映射条目，以指定某些或所有前缀的前缀SID。

- ISIS在“SID/标签绑定TLV”中通告本地SID映射策略

- 映射服务器必须具备恢复能力，应提供冗余

映射服务器的主要功能包括：

- 代表其他不支持SR的节点在IGP中通告前缀到SID的映射在映射服务器上配置前缀到SID的映射

- 使支持SR的节点能够与（不支持SR的）LDP节点互通，SR/LDP互通需要映射服务器

映射客户端

- 接收并解析远程接收的SID/标签绑定TLV，以创建远程SID映射条目。使用远程获取和本地配置的映射条目，构建不重叠的一致活动映射策略。

- IGP实例使用活动映射策略来（重新）计算某些或所有前缀的前缀SID。

本部分帮助您了解并配置提供商网络之间的第3层虚拟专用网络(VPN)服务，该提供商网络具有支持SR的网络对等/连接到不支持SR的网络。在本节中，您将学习如何配置RFC“4364”和使用案例中定义的选项C。

拓扑 — AS间选项C（带路由反射器）

拓扑图概述

在拓扑图的顶部，我们有一个由路由反射器、提供商边缘路由器和客户边缘路由器组成的支持SR的网络。

客户边缘路由器CE1和CE2分别具有VRF A和VRF B。这属于AS 65002。

在拓扑图底部，我们有一个支持LDP的网络，其中包含路由反射器、提供商边缘路由器和客户边缘路由器。

客户边缘路由器CE3和CE4分别具有VRF A和VRF B。这属于AS65001。

启用SR和LDP的网络两端的VRF A和VRF B需要相互通信。

IP编址方案

主机名

IP Address

RR-01

10.0.0.1

RR-02

10.0.0.2

PE1

10.0.0.3

PE2

10.0.0.4

CE1

10.0.0.5

CE2

10.0.0.6

RR-03

10.0.1.1

RR-04

10.0.1.2

PE5

10.0.1.3

PE6

10.0.1.4

CE3

10.0.1.5

CE4

10.0.1.6

配置

描述了设备的配置。

RR-1

segment-routing mpls

!

mapping-server

!

prefix-sid-map

address-family ipv4

10.0.0.1/32 index 200 range 10

exit-address-family

!

!

interface Loopback0

description Loopback0

ip address 10.0.0.1 255.255.255.255

ip router isis 65002

!

!

router isis 65002

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65002

bgp router-id 10.0.0.1

neighbor 10.0.0.3 remote-as 65002

neighbor 10.0.0.3 description rr client

neighbor 10.0.0.3 update-source Loopback0

neighbor 10.0.0.4 remote-as 65002

neighbor 10.0.0.4 description rr client

neighbor 10.0.0.4 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 description iBGP peer

neighbor 10.0.0.2 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 ebgp-multihop 255

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 ebgp-multihop 255

neighbor 10.0.1.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.2 activate

neighbor 10.0.1.1 activate

neighbor 10.0.1.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 send-community extended

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 send-community extended

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community extended

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community both

neighbor 10.0.1.1 next-hop-unchanged

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community both

neighbor 10.0.1.2 next-hop-unchanged

exit-address-family

!

RR-2

segment-routing mpls

!

mapping-server

!

prefix-sid-map

address-family ipv4

10.0.0.2/32 index 200 range 10

exit-address-family

!

!

interface Loopback0

description Loopback0

ip address 10.0.0.2 255.255.255.255

ip router isis 65002

!

!

router isis 65002

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65002

bgp router-id 10.0.0.2

neighbor 10.0.0.3 remote-as 65002

neighbor 10.0.0.3 description rr client

neighbor 10.0.0.3 update-source Loopback0

neighbor 10.0.0.4 remote-as 65002

neighbor 10.0.0.4 description rr client

neighbor 10.0.0.4 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 description iBGP peer

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 ebgp-multihop 255

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 ebgp-multihop 255

neighbor 10.0.1.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.1 activate

neighbor 10.0.1.1 activate

neighbor 10.0.1.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.0.3 activate

neighbor 10.0.0.3 send-community extended

neighbor 10.0.0.3 route-reflector-client

neighbor 10.0.0.4 activate

neighbor 10.0.0.4 send-community extended

neighbor 10.0.0.4 route-reflector-client

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community extended

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community both

neighbor 10.0.1.1 next-hop-unchanged

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community both

neighbor 10.0.1.2 next-hop-unchanged

exit-address-family

!

PE-1

interface Loopback0

description Loopback0

ip address 10.0.0.3 255.255.255.255

ip router isis 65002

!

vrf A                               # Define VRF A

address-family ipv4 unicast

import route-target

65000:1

!

export route-target

65000:1

!

!

vrf B                               # Define VRF B

address-family ipv4 unicast

import route-target

65000:2

!

export route-target

65000:2

!

!

router isis 65002                   # ISIS Level 2

is-type level-2-only

net xx.xxxx.xxxx.xxxx.xx

address-family ipv4 unicast

metric-style wide

advertise link attributes

mpls traffic-eng level-2-only

mpls traffic-eng router-id Loopback0

router-id Loopback0

segment-routing mpls sr-prefer

!

router bgp 65002                    # BGP

bgp router-id 10.0.0.3

neighbor-group RR

remote-as 65002

update-source Loopback0

address-family vpnv4 unicast

!

!

neighbor 10.0.0.1

use neighbor-group RR

!

neighbor 10.0.0.2

use neighbor-group RR

vrf A

rd 65000:1

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.0.5           # IP address of CE1

remote-as 61001

ebgp-multihop 255

update-source Loopback100

address-family ipv4 unicast

!

vrf B

rd 65000:2

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.0.6           # IP address of CE2

remote-as 61001

ebgp-multihop 255

update-source Loopback101

address-family ipv4 unicast

!

interface GigabitEthernet1         # Link to CE-01

vrf A

ipv4 address x.x.x.x 255.255.255.0

!

interface GigabitEthernet2         # Link to CE-02

vrf B

ipv4 address x.x.x.x 255.255.255.0

!

segment-routing

global-block 16000 23999

!

RR-3

interface Loopback0

description Loopback0

ip address 10.0.1.1 255.255.255.255

ip router isis 65001

!

!

router isis 65001

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65001

bgp router-id 10.0.1.1

neighbor 10.0.1.3 remote-as 65001

neighbor 10.0.1.3 description rr client

neighbor 10.0.1.3 update-source Loopback0

neighbor 10.0.1.4 remote-as 65001

neighbor 10.0.1.4 description rr client

neighbor 10.0.1.4 update-source Loopback0

neighbor 10.0.1.2 remote-as 65001

neighbor 10.0.1.2 description iBGP peer

neighbor 10.0.1.2 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 ebgp-multihop 255

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 ebgp-multihop 255

neighbor 10.0.0.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.2 activate

neighbor 10.0.0.1 activate

neighbor 10.0.0.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 send-community extended

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 send-community extended

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.2 activate

neighbor 10.0.1.2 send-community extended

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community both

neighbor 10.0.0.1 next-hop-unchanged

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community both

neighbor 10.0.0.2 next-hop-unchanged

exit-address-family

!

RR-4

interface Loopback0

description Loopback0

ip address 10.0.1.2 255.255.255.255

ip router isis 65001

!

!

router isis 65001

net xx.xxxx.xxxx.xxxx.xx

metric-style wide

segment-routing mpls

segment-routing prefix-sid-map advertise-local

!

router bgp 65001

bgp router-id 10.0.1.2

neighbor 10.0.1.3 remote-as 65001

neighbor 10.0.1.3 description rr client

neighbor 10.0.1.3 update-source Loopback0

neighbor 10.0.1.4 remote-as 65001

neighbor 10.0.1.4 description rr client

neighbor 10.0.1.4 update-source Loopback0

neighbor 10.0.1.1 remote-as 65001

neighbor 10.0.1.1 description iBGP peer

neighbor 10.0.1.1 update-source Loopback0

neighbor 10.0.0.1 remote-as 65002

neighbor 10.0.0.1 ebgp-multihop 255

neighbor 10.0.0.1 update-source Loopback0

neighbor 10.0.0.2 remote-as 65002

neighbor 10.0.0.2 ebgp-multihop 255

neighbor 10.0.0.2 update-source Loopback0

!

address-family ipv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.1 activate

neighbor 10.0.0.1 activate

neighbor 10.0.0.2 activate

exit-address-family

!

address-family vpnv4

neighbor 10.0.1.3 activate

neighbor 10.0.1.3 send-community extended

neighbor 10.0.1.3 route-reflector-client

neighbor 10.0.1.4 activate

neighbor 10.0.1.4 send-community extended

neighbor 10.0.1.4 route-reflector-client

neighbor 10.0.1.1 activate

neighbor 10.0.1.1 send-community extended

neighbor 10.0.0.1 activate

neighbor 10.0.0.1 send-community both

neighbor 10.0.0.1 next-hop-unchanged

neighbor 10.0.0.2 activate

neighbor 10.0.0.2 send-community both

neighbor 10.0.0.2 next-hop-unchanged

exit-address-family

!

PE-6

interface Loopback0

description Loopback0

ip address 10.0.1.3 255.255.255.255

ip router isis 65001

!

vrf A                               # Define VRF A

address-family ipv4 unicast

import route-target

65000:1

!

export route-target

65000:1

!

vrf B                               # Define VRF B

address-family ipv4 unicast

import route-target

65000:2

!

export route-target

65000:2

!

router isis 65001

is-type level-2-only

net xx.xxxx.xxxx.xxxx.xx

address-family ipv4 unicast

metric-style wide

advertise link attributes

mpls traffic-eng level-2-only

mpls traffic-eng router-id Loopback0

router-id Loopback0

segment-routing mpls sr-prefer

!

router bgp 65001

bgp router-id 10.0.1.3

neighbor-group RR

remote-as 65002

update-source Loopback0

address-family vpnv4 unicast

!

!

neighbor 10.0.1.1

use neighbor-group RR

!

neighbor 10.0.1.2

use neighbor-group RR

vrf A

rd 65000:1

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.1.5           # IP address of CE3

remote-as 61001

ebgp-multihop 255

update-source Loopback100

address-family ipv4 unicast

!

vrf B

rd 65000:2

address-family ipv4 unicast

redistribute connected

allocate-label all

!

neighbor 10.0.1.6           # IP address of CE4

remote-as 61001

ebgp-multihop 255

update-source Loopback101

address-family ipv4 unicast

!

interface GigabitEthernet1         # Link to CE3

vrf A

ipv4 address x.x.x.x 255.255.255.0

!

interface GigabitEthernet2         # Link to CE4

vrf B

ipv4 address x.x.x.x 255.255.255.0

!

相关信息

- 技术支持和文档 - Cisco Systems

- https://tools.ietf.org/html/rfc8661

- https://tools.ietf.org/html/rfc4659

- https://tools.ietf.org/html/rfc4364

- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-ldp-interop-08

- https://tools.ietf.org/html/draft-ietf-isis-segment-routing-extensions-19

- https://tools.ietf.org/html/draft-ietf-spring-segment-routing-ldp-interop-15#ref-I-D.ietf-isis-segment-routing-extensions

- https://learningnetwork.cisco.com/s/question/0D53i00000Ksqy9CAB/interas-option-c