Contents

Introduction

Pré-requisito

Requirements

Componentes Utilizados

Informações de Apoio

Problema

Solução

Bloco Global SR

Servidor de mapeamento SR

Cliente de Mapeamento

Topologia - Opção C entre AS (com refletores de rota)

Breve visão geral do diagrama de topologia

Esquema de endereçamento IP

Configurações

Informações Relacionadas

Introduction

Este documento descreve como uma implantação de SR parcial pode ser usada para fornecer benefícios de SR ao tráfego baseado em LDP, incluindo uma possível aplicação de SR no contexto de casos de uso de MPLS entre domínios.

Pré-requisito

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Roteamento de segmento

- MPLS

- Inter-AS

- LDP

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Roteamento de Segmento de Suporte

- NCS5500, ASR9000

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Informações de Apoio

Este documento descreve os mecanismos através dos quais o SR interage com o LDP nos casos em que uma mistura de roteadores com e sem capacidade de SR coexiste dentro da mesma rede e mais precisamente no mesmo domínio de roteamento.

Um Multicast Control Plane Client (MCC), operando em um nó, deve garantir que o rótulo de entrada que ele instala no plano de dados MPLS do Nó tenha sido alocado exclusivamente e o Roteamento de Segmento utilize o Segment Routing Global Block (SRGB) para a alocação de rótulo. O uso do SRGB permite que o SR coexista com qualquer outro MCC.

Dica: essas informações o ajudam com a solução Inter-AS para MPLS SR e MPLS LDP usando a Opção C Inter-AS.

Problema

A implantação de SR em um ambiente heterogêneo com o plano de controle de SR MPLS interopera com o plano de controle de LDP de MPLS usando a opção C inter-AS definida no RFC 4364.

Este documento descreve um método pelo qual a rede do provedor de serviços que usa MPLS LDP e SR MPLS fornece Virtual Private Network usando Inter-AS opção C.

Solução

Uma breve visão geral da opção C entre AS:

A Opção C do Inter-AS é a terceira opção para interconectar backbones multi-AS cobertos no RFC 4364. É a opção mais escalável dos três até agora e tem seus próprios cenários de aplicabilidade que devemos estar cientes para aplicar esse projeto corretamente.

A opção C é uma boa candidata porque é escalável. Os ASBRs não carregam nenhuma rota VPN e apenas cuidam da distribuição de rotas IPv4 rotuladas dos PEs em seu próprio AS.

Para melhorar a escalabilidade, uma sessão de VPNv4 MP-EBGP transporta todas as rotas de VPN (rotas externas) entre PEs ou RR. No caso de usar o RR para trocar as rotas externas, o próximo salto das rotas VPNv4 deve ser preservado.

O ASBR usa o EBGP para trocar as informações de roteamento PE internas entre AS (rotas internas). Essas rotas internas correspondem aos próximos saltos BGP das rotas externas anunciadas através da sessão MP-EBGP multi-hop entre PEs ou RRs. As rotas internas anunciadas pelos ASBRs podem ser usadas para estabelecer as sessões MP-EBGP entre PEs e permitem a configuração de LSP do PE de entrada para o PE de saída.

A opção C é uma solução muito boa do ponto de vista da escalabilidade e é o caminho a seguir para as mesmas redes SP multi-AS.

Uma breve visão geral do roteamento de segmentos:

O Roteamento de Segmento (SR - Segment Routing) aproveita os paradigmas de roteamento e encapsulamento de origem. Um nó orienta um pacote por meio de um conjunto controlado de instruções, chamadas de segmentos, ao anexar o pacote a um cabeçalho SR. Um segmento pode representar qualquer instrução, topológica ou baseada em serviço. O SR permite impor um fluxo através de qualquer caminho topológico e cadeia de serviço, mantendo um estado por fluxo apenas no nó de entrada do domínio SR. A arquitetura de roteamento de segmento pode ser aplicada diretamente ao plano de dados MPLS com uma pequena alteração no plano de encaminhamento. Ele requer extensões menores para os protocolos de roteamento link-state existentes. O roteamento de segmento também pode ser aplicado ao IPv6 com um novo tipo de cabeçalho de extensão de roteamento.

Um segmento é codificado como um rótulo MPLS. Uma lista ordenada de segmentos é codificada como uma pilha de rótulos. O segmento a ser processado está no topo da pilha. Após a conclusão de um segmento, o rótulo relacionado é removido da pilha.  As operações de plano de dados MPLS de roteamento de segmentos são push, swap e pop conforme o encaminhamento MPLS tradicional. Os seguintes tipos de segmento são definidos no Roteamento de Segmento:

- Segmento de prefixo

- Segmento de adjacência

- Segmento de peering BGP

- Segmento de prefixo BGP

Bloco Global SR

O SRGB (Segment Routing Global Block) é o intervalo de valores de rótulo preservados para o roteamento de segmento no LSD. Os valores de rótulo SRGB são atribuídos como SIDs (identificadores de segmento de prefixo) para nós habilitados para SR e têm significado global em todo o domínio.

- O intervalo do rótulo SR NÃO pode começar abaixo de 16.000. O bloco global de SR padrão é: 16.000 - 24.000.

- A configuração SRGB NÃO é específica da família de endereços porque o "sub-TLV de recursos de SR" do TLV de capacidade do roteador definido no não é específico da família de endereços.

- Se o CLI resultar no aumento ou na movimentação do SRGB padrão, não há problema em exigir um recarregamento, mas somente se houver clientes com rótulos no novo intervalo.

- Antes de configurar o SRGB, o administrador precisa certificar-se de que uma parte da base de rótulos que está sendo configurada para o roteamento de segmento esteja livre e não esteja sendo usada por nenhum outro cliente LSD MPLS.

Servidor de mapeamento SR

O Servidor de Mapeamento atribui centralmente SIDs de prefixo para alguns ou todos os prefixos conhecidos. Um roteador deve ser capaz de atuar como um servidor de mapeamento, cliente de mapeamento ou ambos.

- Um servidor de mapeamento é um mecanismo de plano de controle e sua posição é comparável a um refletor de rota BGP

- Permite que o usuário configure entradas de mapeamento de SID sem sobreposição para especificar os SIDs de prefixo para alguns ou todos os prefixos.

- O ISIS anuncia a política de mapeamento de SID local em 'SID/Label Binding TLV'

- O servidor de mapeamento deve ser resiliente, a redundância deve ser fornecida

As principais funções do Servidor de Mapeamento incluem:

- Anunciar mapeamentos de prefixo para SID no IGP em nome de outros nós sem capacidade para SR. Os mapeamentos de prefixo para SID são configurados no Servidor de Mapeamento

- Permitir que os nós com capacidade de SR interfuncionem com nós LDP (sem capacidade de SR); um servidor de mapeamento é necessário para o interfuncionamento de SR/LDP

Cliente de Mapeamento

- Recebe e analisa TLV de Associação de SID/Rótulo recebidos remotamente para criar entradas de mapeamento de SID remoto. Usando as entradas de mapeamento aprendidas remotamente e configuradas localmente, construa a política de mapeamento ativo consistente sem sobreposição.

- A instância IGP usa a política de mapeamento ativa para (re)calcular os SIDs de prefixo de alguns ou de todos os prefixos.

Esta seção o ajuda a entender e configurar o serviço de Rede Privada Virtual (VPN - Virtual Private Network) de L3 entre a rede do Provedor com Rede com Peering de Rede com Capacidade SR/Conexão com Rede sem Capacidade SR. Nesta seção, você aprende como configurar a Opção C Definida no RFC "4364" e nos casos de uso.

Topologia - Opção C entre AS (com refletores de rota)

Breve visão geral do diagrama de topologia

Na parte superior do diagrama de topologia, temos uma rede habilitada para SR composta por refletores de rota, roteadores Provider Edge e roteadores Customer Edge.

Os roteadores de borda do cliente CE1 e CE2 têm VRF A e VRF B, respectivamente. Isso pertence ao AS 65002.

Na parte inferior do diagrama de topologia, temos uma rede habilitada para LDP composta por refletores de rota, roteadores de borda do provedor e roteadores de borda do cliente.

Os roteadores de borda do cliente CE3 e CE4 têm VRF A e VRF B, respectivamente. Isso pertence ao AS65001.

O VRF A e o VRF B em cada extremidade das redes habilitadas para SR e LDP precisam se comunicar entre si.

Esquema de endereçamento IP

Hostname

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

Configurações

As configurações dos dispositivos são descritas.

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

!

Informações Relacionadas

- Suporte Técnico e Documentação - 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