Sommario

Introduzione

Prerequisito

Requisiti

Componenti usati

Premesse

Problema

Soluzione

Blocco globale RS

Server mapping SR

Client mapping

Topologia - Opzione Inter-AS C (con router-riflettori)

Breve panoramica del diagramma topologico

Schema di indirizzamento IP

Configurazioni

Informazioni correlate

Introduzione

In questo documento viene descritto come utilizzare una distribuzione SR parziale per offrire vantaggi SR al traffico basato su LDP, inclusa una possibile applicazione della SR nel contesto di casi di utilizzo MPLS tra domini.

Prerequisito

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Ciclo dei segmenti

- MPLS

- Inter-AS

- LDP

Componenti usati

Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:

- Supporto del routing dei segmenti

- NCS 5500, ASR 9000

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Premesse

Questo documento descrive i meccanismi tramite i quali la SR interagisce con l'LDP nei casi in cui una combinazione di router compatibili con SR e non compatibili con SR coesistano all'interno della stessa rete e più precisamente nello stesso dominio di routing.

Un client MCC (Multicast Control Plane Client) che opera su un nodo deve assicurarsi che l'etichetta in ingresso che installa nel piano dati MPLS del nodo sia stata allocata in modo univoco e che l'instradamento dei segmenti utilizzi il blocco globale di instradamento dei segmenti (SRGB) per l'allocazione delle etichette. L'utilizzo dell'SRGB consente alla SR di coesistere con qualsiasi altra MCC.

Suggerimento: queste informazioni sono utili per la soluzione Inter-AS per MPLS SR e MPLS LDP con l'opzione C di Inter-AS.

Problema

L'implementazione delle SR in un ambiente eterogeneo con il Control Plane MPLS SR interagisce con il Control Plane LDP MPLS utilizzando l'opzione C Inter-AS definita nella RFC 4364.

In questo documento viene descritto un metodo con cui un provider di servizi di rete utilizza MPLS LDP e SR MPLS per fornire una rete privata virtuale utilizzando l'opzione C di Inter-AS.

Soluzione

Breve panoramica dell'opzione C di Inter-AS:

L'opzione C tra appliance ASA è la terza opzione per l'interconnessione di backbone multi-AS a cui si fa riferimento nella RFC 4364. È l'opzione più scalabile dei tre finora e ha i propri scenari di applicabilità che dobbiamo conoscere per applicare questo progetto correttamente.

L'opzione C è un buon candidato perché è scalabile. Gli ASBR non hanno nessuna route VPN e si occupano solo della distribuzione delle route IPv4 contrassegnate dei PE all'interno della loro appliance ASA.

Per migliorare la scalabilità, una sessione MP-EBGP VPNv4 trasporta tutte le route VPN (route esterne) tra PE o RR. In caso di utilizzo di RR per lo scambio di route esterne, è necessario mantenere l'hop successivo delle route VPNv4.

ASBR utilizza EBGP per lo scambio delle informazioni di routing PE interno tra AS (route interne). Queste route interne corrispondono agli hop BGP successivi delle route esterne annunciate tramite la sessione MP-EBGP multi-hop tra PE o RR. Le route interne annunciate dagli ASBR possono essere utilizzate per stabilire le sessioni MP-EBGP tra i PE e consentono la configurazione LSP dall'ingresso all'uscita PE.

L'opzione C è una soluzione molto valida dal punto di vista della scalabilità ed è la soluzione ideale per le stesse reti SP multi-AS.

Breve panoramica su Instradamento segmento:

Il routing dei segmenti (SR) sfrutta i paradigmi di routing e tunneling dell'origine. Un nodo indirizza un pacchetto attraverso un set controllato di istruzioni, denominate segmenti, anteponendo al pacchetto un'intestazione SR. Un segmento può rappresentare qualsiasi istruzione, topologica o basata sui servizi. SR consente di applicare un flusso attraverso qualsiasi percorso topologico e catena di servizi mantenendo uno stato per flusso solo nel nodo in entrata del dominio SR. L'architettura Segment Routing può essere applicata direttamente al piano dati MPLS con una piccola modifica sul piano di inoltro. Richiede estensioni minori dei protocolli di routing esistenti dello stato del collegamento. Il routing dei segmenti può essere applicato anche a IPv6 con un nuovo tipo di intestazione di estensione del routing.

Un segmento viene codificato come etichetta MPLS. Un elenco ordinato di segmenti viene codificato come una pila di etichette. Il segmento da elaborare si trova nella parte superiore dello stack. Una volta completato un segmento, l'etichetta correlata viene estratta dallo stack.  Le operazioni del data-plane MPLS di routing dei segmenti sono push, swap e pop secondo il tradizionale inoltro MPLS. I seguenti tipi di segmento sono definiti in Ciclo segmento:

- Segmento prefisso

- Segmento adiacente

- Segmento di peering BGP

- Segmento prefisso BGP

Blocco globale RS

Il blocco globale del routing dei segmenti (SRGB) è l'intervallo di valori di etichetta conservati per il routing dei segmenti nell'LSD. I valori delle etichette SRGB vengono assegnati come identificatori di segmento (SID) di prefisso ai nodi abilitati per SR e hanno significato globale in tutto il dominio.

- L'intervallo di etichette SR NON può iniziare al di sotto di 16.000. Il blocco globale predefinito della SR è: 16.000 - 24.000.

- La configurazione SRGB NON è specifica per la famiglia di indirizzi perché la "SR-Capabilities Sub-TLV" della capacità del router definita in non è specifica per la famiglia di indirizzi.

- Se CLI aumenta o sposta l'SRGB predefinito, è possibile richiedere un ricaricamento solo se vi sono client con etichette nel nuovo intervallo.

- Prima di configurare SRGB, l'amministratore deve accertarsi che una parte della base di etichette configurata per Segment-Routing sia libera e non sia utilizzata da altri client LSD MPLS.

Server mapping SR

Il server di mapping assegna centralmente i SID di prefisso per alcuni o tutti i prefissi noti. Un router deve essere in grado di fungere da server di mapping, client di mapping o entrambi.

- Un server di mappatura è un meccanismo del piano di controllo e la sua posizione è paragonabile a quella di un reflector di route BGP

- Consente all'utente di configurare voci di mapping SID non sovrapposte per specificare i SID di prefissi per alcuni o tutti i prefissi.

- ISIS annuncia i criteri di mapping SID locali in 'TLV binding SID/etichetta'

- Il server di mapping deve essere resiliente. È necessario fornire ridondanza

Le funzioni principali di Mapping Server includono:

- Annuncia i mapping da prefisso a SID in IGP per conto di altri nodi non SR configurati nel server di mapping

- Consentire ai nodi SR di interagire con i nodi LDP (non SR), è necessario un server di mapping per l'interoperabilità SR/LDP

Client mapping

- Riceve e analizza TLV di binding SID/etichetta ricevuti in remoto per creare voci di mapping SID remote. Utilizzando le voci di mapping apprese in remoto e configurate localmente, creare il criterio di mapping attivo coerente non sovrapposto.

- L'istanza IGP utilizza il criterio di mappatura attivo per (ri)calcolare i SID di prefissi di alcuni o di tutti i prefissi.

Questa sezione consente di comprendere e configurare il servizio VPN (Virtual Private Network) di L3 tra una rete del provider e l'altra con peering/connessione di rete compatibile con SR con una rete non compatibile con SR. In questa sezione viene illustrato come configurare l'opzione C definita nella RFC "4364" e nelle Use Case.

Topologia - Opzione Inter-AS C (con router-riflettori)

Breve panoramica del diagramma topologico

Nella parte superiore del diagramma della topologia è presente una rete abilitata per SR composta da router di riflessione, router di Provider Edge e router di Customer Edge.

I router periferici dei clienti CE1 e CE2 dispongono rispettivamente di VRF A e VRF B. Appartiene a AS 65002.

Nella parte inferiore del diagramma della topologia è presente una rete abilitata per LDP composta da router di riflessione, router di confine del provider e router di confine del cliente.

I router periferici dei clienti CE3 e CE4 dispongono rispettivamente di VRF A e VRF B. Appartiene a AS65001.

VRF A e VRF B su entrambe le estremità delle reti abilitate per SR e LDP devono comunicare tra loro.

Schema di indirizzamento IP

Nome host

Indirizzo 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

Configurazioni

Vengono descritte le configurazioni dei dispositivi.

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

!

Informazioni correlate

- Documentazione e supporto tecnico – 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