목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

문제

솔루션

SR 글로벌 블록

SR 매핑 서버

매핑 클라이언트

토폴로지 - Inter-AS Option C(Route-Reflectors 포함)

토폴로지 다이어그램의 간략한 개요

IP 주소 지정 스키마

설정

관련 정보

소개

이 문서에서는 도메인 간 MPLS 활용 사례의 맥락에서 SR의 적용 가능성을 포함하여 LDP 기반 트래픽에 SR 혜택을 제공하는 데 부분적인 SR 구축을 사용하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- 세그먼트 라우팅

- MPLS

- 다른 이름으로

- LDP

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- 지원 세그먼트 라우팅

- NCS5500, ASR9000

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

이 문서에서는 SR 지원 라우터와 비 SR 지원 라우터가 동일한 네트워크 내에, 그리고 더 정확하게는 동일한 라우팅 도메인에 공존하는 경우 SR이 LDP와 상호 작용하는 메커니즘에 대해 간략하게 설명합니다.

노드에서 작동하는 MCC(Multicast Control Plane Client)는 노드의 MPLS 데이터 플레인에서 설치하는 수신 레이블이 고유하게 할당되었는지, 그리고 세그먼트 라우팅이 레이블 할당을 위해 SRGB(Segment Routing Global Block)를 사용하는지 확인해야 합니다. SRGB를 사용하면 SR이 다른 MCC와 공존할 수 있습니다.

팁: 이 정보는 Inter-AS Option C를 사용하는 MPLS SR 및 MPLS LDP용 Inter-AS 솔루션에 도움이 됩니다.

문제

SR MPLS 컨트롤 플레인이 있는 이기종 환경의 SR 구축은 RFC 4364에 정의된 Inter-AS 옵션 C를 사용하여 MPLS LDP 컨트롤 플레인과 상호 운용됩니다.

이 문서에서는 MPLS LDP 및 SR MPLS를 사용하는 통신 사업자 네트워크가 Inter-AS 옵션 C를 사용하는 Virtual Private Network를 제공하는 방법에 대해 설명합니다.

솔루션

Inter-AS Option C에 대한 간략한 개요:

Inter-AS Option C는 RFC 4364에서 다루는 multi-AS 백본 상호 연결을 위한 세 번째 옵션입니다. 지금까지 세 가지 옵션 중 가장 확장 가능한 옵션이며, 이 설계를 올바르게 적용하기 위해 반드시 알아야 할 고유한 적용 가능성 시나리오가 있습니다.

옵션 C는 확장 가능하므로 좋은 후보입니다. ASBR은 어떤 VPN 경로도 전달하지 않으며 자신의 AS 내에서 PE의 레이블이 지정된 IPv4 경로의 배포만 처리합니다.

확장성을 개선하기 위해 하나의 MP-EBGP VPNv4 세션에서 PE 또는 RR 간의 모든 VPN 경로(외부 경로)를 전송합니다. RR을 사용하여 외부 경로를 교환하는 경우 VPNv4 경로의 다음 홉을 유지해야 합니다.

ASBR은 EBGP를 사용하여 AS(내부 경로) 간에 내부 PE 라우팅 정보를 교환합니다. 이러한 내부 경로는 PE 또는 RR 간의 멀티 홉 MP-EBGP 세션을 통해 광고되는 외부 경로의 BGP next-hop에 해당합니다. ASBR에 의해 광고되는 내부 경로는 PE 간에 MP-EBGP 세션을 설정하는 데 사용할 수 있으며 인그레스 PE에서 이그레스 PE로의 LSP 설정을 허용합니다.

옵션 C는 확장성의 관점에서 볼 때 매우 좋은 솔루션이며 동일한 SP 다중 AS 네트워크를 사용하는 방법입니다.

세그먼트 라우팅에 대한 간략한 개요:

SR(세그먼트 라우팅)은 소스 라우팅 및 터널링 패러다임을 활용합니다. 노드는 SR 헤더와 함께 패킷을 미리 추가하여 세그먼트라고 하는 제어된 명령 집합을 통해 패킷을 조정합니다. 세그먼트는 토폴로지 또는 서비스 기반의 모든 명령을 나타낼 수 있습니다. SR을 사용하면 SR 도메인의 인그레스 노드에서만 흐름별 상태를 유지하면서 모든 토폴로지 경로 및 서비스 체인을 통한 흐름을 적용할 수 있습니다. 세그먼트 라우팅 아키텍처는 포워딩 플레인을 거의 변경하지 않고 MPLS 데이터 플레인에 직접 적용할 수 있습니다. 기존 링크 상태 라우팅 프로토콜에 대한 소규모 확장이 필요합니다. 세그먼트 라우팅은 새로운 유형의 라우팅 확장 헤더로 IPv6에도 적용할 수 있습니다.

세그먼트는 MPLS 레이블로 인코딩됩니다. 정렬된 세그먼트 목록은 레이블 스택으로 인코딩됩니다. 처리할 세그먼트는 스택의 맨 위에 있습니다. 세그먼트가 완료되면 스택에서 관련 레이블이 팝업됩니다.  세그먼트 라우팅 MPLS 데이터 플레인 작업은 기존 MPLS 포워딩에 따라 push, swap 및 pop입니다. 세그먼트 경로에는 다음과 같은 세그먼트 유형이 정의되어 있습니다.

- 접두사 세그먼트

- 인접성 세그먼트

- BGP 피어링 세그먼트

- BGP 접두사 세그먼트

SR 글로벌 블록

SRGB(Segment Routing Global Block)는 LSD에서 세그먼트 라우팅에 대해 유지되는 레이블 값의 범위입니다. SRGB 레이블 값은 SR 지원 노드에 SID(Prefix Segment Identifier)로 할당되며 도메인 전체에서 전역 의미가 있습니다.

- SR 레이블 범위는 16,000 미만에서 시작할 수 없습니다. 기본 SR 글로벌 블록은 16,000 - 24,000입니다.

- 에 정의된 라우터 기능 TLV의 "SR-Capabilities Sub-TLV"가 주소군에 국한되지 않기 때문에 SRGB 컨피그레이션은 주소군에 국한되지 않습니다.

- CLI에서 기본 SRGB를 확대하거나 이동하는 경우 다시 로드를 요청해도 되지만 새 범위에 레이블이 있는 클라이언트가 있는 경우에만 가능합니다.

- SRGB를 구성하기 전에 관리자는 Segment-Routing에 대해 구성 중인 레이블 베이스의 일부가 비어 있고 다른 MPLS LSD 클라이언트에서 사용되고 있지 않은지 확인해야 합니다.

SR 매핑 서버

매핑 서버는 알려진 접두사의 일부 또는 전체에 대해 접두사 SID를 중앙에서 할당합니다. 라우터는 매핑 서버, 매핑 클라이언트 또는 둘 모두의 역할을 할 수 있어야 합니다.

- 매핑 서버는 컨트롤 플레인 메커니즘이며 위치는 BGP Route-Reflector와 비슷합니다

- 사용자가 일부 또는 모든 접두사에 대해 접두사 SID를 지정하도록 겹치지 않는 SID 매핑 엔트리를 구성할 수 있습니다.

- ISIS는 'SID/Label Binding TLV'에서 로컬 SID 매핑 정책을 광고합니다.

- 매핑 서버는 복원력이 있어야 하며 이중화가 제공되어야 합니다

매핑 서버의 주요 기능은 다음과 같습니다.

- 매핑 서버에 구성된 다른 비 SR 지원 노드 대신 IGP에서 접두사와 SID 간 매핑 알림

- SR 지원 노드가 (SR 지원 불가능) LDP 노드와 상호 작용하도록 지원, SR/LDP 상호 작용을 위해 매핑 서버가 필요

매핑 클라이언트

- 원격 SID 매핑 엔트리를 생성하기 위해 원격으로 수신된 SID/Label Binding TLV를 수신하고 구문 분석합니다. 원격으로 학습되고 로컬로 구성된 매핑 엔트리를 사용하여 중복되지 않는 일관된 활성 매핑 정책을 구성합니다.

- IGP 인스턴스는 활성 매핑 정책을 사용하여 일부 또는 모든 접두사의 접두사 SID를 (다시) 계산합니다.

이 섹션에서는 SR 지원 네트워크 피어링/비SR 지원 네트워크 연결을 사용하는 사업자 네트워크 간의 L3 VPN(Virtual Private Network) 서비스를 이해하고 구성하는 데 도움이 됩니다. 이 섹션에서는 RFC "4364"에 정의된 옵션 C와 활용 사례를 구성하는 방법을 배웁니다.

토폴로지 - Inter-AS Option C(Route-Reflectors 포함)

토폴로지 다이어그램의 간략한 개요

토폴로지 다이어그램의 상단에는 Route-reflector, Provider Edge 라우터 및 Customer Edge 라우터로 구성된 SR 지원 네트워크가 있습니다.

고객 에지 라우터(CE1, CE2)는 각각 VRF A 및 VRF B를 가진다. 이것은 AS 65002에 속합니다.

토폴로지 다이어그램의 아래쪽에는 Route-reflector, Provider Edge 라우터, 고객 에지 라우터로 구성된 LDP 지원 네트워크가 있습니다.

고객 에지 라우터 CE3 및 CE4에는 각각 VRF A 및 VRF B가 있습니다. 이것은 AS65001 소유입니다.

SR 및 LDP 지원 네트워크의 양쪽 끝에 있는 VRF A 및 VRF B는 서로 통신해야 합니다.

IP 주소 지정 스키마

호스트 이름

IP 주소

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