quarta-feira, 26 de outubro de 2011

MVPN - Inter-AS Opção A

1      Multicast VPN

The Multicast VPN Inter-AS Support feature was implemented in the Cisco IOS software in accordance to the following requirements:
•To achieve parity with unicast inter-AS support, the Cisco IOS software must support the following inter-AS options for MVPN (as defined in RFC 4364):
–Option A—Back-to-back VPN routing and forwarding (VRF) instances at the Autonomous System Border Router (ASBR) provider edge (PE) routers
The Option A model assumes direct connectivity between PE routers of different autonomous systems. The PE routers are attached by multiple physical or logical interfaces, each of which is associated with a given VPN (through a VRF instance). Each PE router, therefore, treats the adjacent PE router like a customer edge (CE) router, and the standard Layer 3 MPLS VPN mechanisms are used for route redistribution with each autonomous system; that is, the PEs use exterior BGP (eBGP) to distribute unlabeled IPv4 addresses to each other.
Note Option A allows service providers to isolate each autonomous system from the other, which provides better control over routing exchanges and security between the two networks. Option A, however, is considered the least scalable of all the inter-AS connectivity options.
MVPN Inter-AS Support for Option A
The limitations that prevented support for MVPN inter-AS support Options B and C have never applied to Option A for the following reasons:
•For Option A, native IP forwarding is used by the PE routers between autonomous systems; therefore, Option A does not require support for inter-AS MDTs.
•For Option A, the MDT is limited to one autonomous system; therefore, the issues associated with managing MDT group addresses between autonomous systems and RPF for inter-AS sources never applied to Option A.
Note Because Option A requires that one physical or logical interface be configured for each VRF, Option A is considered the least scalable MVPN inter-AS solution.

2      Cenário

2.1       Objetivo

Oito roteadores (CE1, PE11, P11, PE12, PE22, P21, PE21 e CE2) são conectados formando dois backbones com 3 roteadores e um CE conectado. Pede-se:
      O protocolo de roteamento de backbone PE11-P11-PE12 e do backbone PE21-P21-PE22 deverá ser o OSPF na área 0 com todas as interfaces divulgadas, com mBGP entre os PE’s e LDP no AS 1 para tráfego das vpns VRFs;
      O CE1 deverá pertencer a VRF BLUE e o CE2 deverá pertencer a VRF RED. Deverá existir conectividade entre esses CEs usando a conexão entre os PEs PE2 e PE3 com Inter-AS Opção A;
      Deverá ser habilitado o multicast dentro da VRF BLUE com conectividade entre os CEs.
      O MDT do AS 1 deverá ser 224.1.1.1 e do AS 2 deverá ser 224.2.2.2;
      Deverá ser usado o SSM para envio de tráfego Multicast dentro dos backbones;
      O RP da VRF deverá ser o CE1 estaticamente;
      O CE1 é source de 224.3.3.3 e o CE2 é cliente deste grupo.

2.2       Topologia

2.3       IOS utilizados

      CE1, PE1, P1, PE2, PE3, P2, PE4 e CE2 – c7200-k91p-mz.122-25.S15.bin

2.4       Configuração dos Roteadores

2.4.1        Configurações do ISIS do Backbone

Em todos os roteadores configura-se o roteamento ISIS adicionando o endereçamento NET de acordo com a área designada e endereçamento de loopback. Dentro das interfaces que farão parte do ISIS, adiciona-se o comando “ip router isis” para habilitar o ISIS na interface. Por padrão, todos os roteadores farão vizinhança L1/L2.
A configuração da métrica wide, maior que 63, é feita dentro do processo de roteamento pelo comando “default metric-style wide”.

2.4.2        Configurações do OSPF do Backbone

Em todos os roteadores configura-se o roteamento OSPF pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. O roteador também possui um router ID único que geralmente é a interface loopback ou então o maior endereço IP do roteador.
Para adicionar interfaces deve-se usar o comando “network
área ”. Um roteador pode ter interfaces em áreas distintas, define-se cada área pelo comando network.
Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.

2.4.3        Configurações do MPLS

Antes de qualquer configuração, o Cisco Express forwarding deve ser habilitado com o comando “ip cef”. Para habilitar o MPLS no modo LDP, usa-se o comando global “mpls label protocol ldp”.

2.4.4        Configuração do MBGP

Para estabelecer uma VPN é necessário configurar o MBGP para a troca de informações de prefixos de VPN. Pode-se somente configurar o MBGP nos roteadores PEs da rede que possuem conexão com os CEs, ou seja, conectados diretamente aos sites.
O MBGP funciona como o BGP, configura-se em todos os roteadores pelo comando “router bgp onde o “AS” é o Autonomous System do backbone. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as .
Adiciona-se o IP da interface loopback como Router-ID pelo comando “bgp router-id .
Como os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, faz-se o full-mesh de conexão MBGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
O MBGP é configurado dentro do protocolo BGP, porém deve-se separar a família de roteamento com o comando “address-family vpnv4”. Para o envio de prefixos das VPNs, deve-se habilitar o envio de community extendida com o comando “neighbor send-community extended”.
Todos os recursos como route-map, next-hop-self, router-reflector, etc. podem ser configurados dentro da família VPNv4 para manipular ou resolver problemas de roteamento.

2.4.5        Criando uma VPN VRF no BGP

Após todos os roteadores PEs da rede possuem conectividade MBGP, ou diretamente ou por router-reflector, cria-se a VPN com o comando “ip vrf ”, dentro desse comando ficam os parâmentros de marcação da VPN e das communities associadas aos prefixos daquela VPN. Configura-se o Route-Distinguisher da VPN, que deve ser único na rede, com comando “rd :”, e também cria-se a  community que será exportada para aqueles prefixos de rede com o comando “route-target :”, onde “import” significa importar as rotas e “export” exportar as rotas.
Cria-se então uma address-family dentro do BGP com o comando “address-family ipv4 vrf ” com o mesmo nome da VPN criada no “ip vrf” fora do roteamento BGP. Dentro dessa address-family são configuradas as redes que serão redistribuídas para os outros sites. Para divulgar as redes é necessário que a rede exista na tabela de roteamento interna e, ou adicionar o comando “network mask ou redistribuindo rotas para o MBGP com o comando “redistribute , que pode ser vinculado à um route-map para definir exatamente as rotas que serão divulgadas de um protocolo para outros sites.
Enfim, para que uma interface conectada ao CE faça parte da VPN BGP, usa-se o comando “ip vrf forwarding ” dentro da interface.

2.4.6        Configuração do Inter-AS Opção A

A opção A do Inter-AS usa uma conexão com o backbone do outro AS como se fosse uma conexão com outro CE. O backbone não percebe a existência de um outro AS, tudo fica transparente. Caso seja usada mais de uma VPN, usa-se interfaces lógicas para a conexão.

2.4.7        Configuração do Multicast no Backbone para suporte à VPN SSM

É necessário configurar o roteamento multicast no roteador com o comando “ip multicast-routing” e também dentro das VPNs com o comando “ip multicast-routing vrf ” aplicado nos PEs.
Deve-se criar o RP da VRF que deve ser configurado nos PEs com o comando “ip pim vrf rp-address ”.
Para definir o escopo do Souce Specific Multicast usa-se uma ACL definindo o escopo e aplica-a no comando “ip pim ssm range ”. O escopo padrão é 232/8

2.4.8        Configuração do Multicast na VPN

Antes de configurar o PIM é necessário configurar o roteamento multicast no roteador com o comando “ip multicast-routing”. No PIM a configuração para o sparse mode é feita a configuração “ip pim sparse-mode” nas interfaces com os roteadores que trafegam multicast. O Sparse mode necessita de um Rendevouz Point.
 A configuração de Rendevouz Point estático é feita pelo comando “ip pim rp-address ”.

2.4.9        Configurações do IGMP

O IGMP é configurado em todas as interfaces que estão com o multicast PIM configurado. Caso algum host conectado ao roteador enviar um trafego de “join multicast” o roteador automaticamente passará para o Source daquele grupo, caso exista.
Nesse exemplo pode-se utilizar o comando “ip igmp join-group ” para enviar uma solicitação de join no grupo multicast.

2.5       Observações e Bugs

3      Configuração

3.1       CE1

!
ip cef
!
ip multicast-routing
!
interface FastEthernet1/0
 description PE1
 ip address 10.10.10.1 255.255.255.0
 ip pim sparse-mode
!
router rip
 version 2
 network 10.0.0.0
!
ip pim rp-address 10.10.10.1
!

3.2       PE1

!
ip cef
!
ip multicast-routing
!
ip multicast-routing vrf BLUE
!
ip vrf BLUE
 rd 1:1
 route-target export 1:1
 route-target import 1:1
 mdt default 224.1.1.1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip pim sparse-mode
!
interface FastEthernet0/0
 description P11
 ip address 12.12.12.1 255.255.255.0
 ip pim sparse-mode
 mpls ip
!
interface FastEthernet1/0
 description CE1 vrf BLUE
 ip vrf forwarding BLUE
 ip address 10.10.10.2 255.255.255.0
 ip pim sparse-mode
!
router ospf 1
 router-id 1.1.1.1
 network 1.1.1.1 0.0.0.0 area 0
 network 12.12.12.1 0.0.0.0 area 0
!
router rip
 address-family ipv4 vrf BLUE
 redistribute bgp 1 metric 1
 network 10.0.0.0
 no auto-summary
 version 2
!
router bgp 1
 bgp router-id 1.1.1.1
 bgp log-neighbor-changes
 neighbor 2.2.2.2 remote-as 1
 neighbor 2.2.2.2 update-source Loopback0
!
 address-family vpnv4
 neighbor 2.2.2.2 activate
 neighbor 2.2.2.2 send-community both
 exit-address-family
 !
 address-family ipv4 vrf BLUE
 redistribute rip
!
ip bgp-community new-format
ip pim ssm range 1
ip pim vrf BLUE rp-address 10.10.10.1
!
!
access-list 1 permit 224.1.1.1
!
ip pim ssm range 1
ip pim vrf BLUE rp-address 10.10.10.1
!
access-list 1 permit 224.1.1.1
!

3.3       P1

!
ip cef
!
ip multicast-routing
!
mpls label protocol ldp
!
!
!
interface Loopback0
 ip address 100.100.100.100 255.255.255.255
 ip pim sparse-mode
!
interface FastEthernet0/0
 description PE12
 ip address 23.23.23.2 255.255.255.0
 ip pim sparse-mode
 mpls ip
!
interface FastEthernet1/0
 description PE11
 ip address 12.12.12.2 255.255.255.0
 ip pim sparse-mode
 mpls ip
!
router ospf 1
 router-id 100.100.100.100
 network 12.12.12.2 0.0.0.0 area 0
 network 23.23.23.2 0.0.0.0 area 0
 network 100.100.100.100 0.0.0.0 area 0
!
!
ip pim ssm range 1
!
access-list 1 permit 224.1.1.1
!

3.4       PE2

!
ip cef
!
ip multicast-routing
!
ip multicast-routing vrf BLUE
!
ip vrf BLUE
 rd 1:1
 route-target export 1:1
 route-target import 1:1
 mdt default 224.1.1.1
!

interface Loopback0
 ip address 2.2.2.2 255.255.255.255
 ip pim sparse-mode
!
interface FastEthernet0/0
 description PE22
 ip vrf forwarding BLUE
 ip address 30.30.30.3 255.255.255.0
 ip pim sparse-mode
!
interface FastEthernet1/0
 description P11
 ip address 23.23.23.3 255.255.255.0
 ip pim sparse-mode
 mpls label protocol ldp
 mpls ip
!
router ospf 1
 router-id 2.2.2.2
 network 2.2.2.2 0.0.0.0 area 0
 network 23.23.23.3 0.0.0.0 area 0
!
router rip
 address-family ipv4 vrf BLUE
 redistribute bgp 1 metric 1
 network 30.0.0.0
 no auto-summary
 version 2
!
router bgp 1
 no synchronization
 bgp router-id 2.2.2.2
 neighbor 1.1.1.1 remote-as 1
 neighbor 1.1.1.1 update-source Loopback0
!
 address-family vpnv4
 neighbor 1.1.1.1 activate
 neighbor 1.1.1.1 send-community both
!
 address-family ipv4 vrf BLUE
 redistribute rip
!
ip pim ssm range 1
ip pim vrf BLUE rp-address 10.10.10.1
!
!
access-list 1 permit 224.1.1.1
!

segunda-feira, 24 de outubro de 2011

MVPN - SSM no Backbone

1      Multicast VPN

A solução da Cisco de Multicast dentro de VPN Multicast é simples e bastante escalável. A arquitetura MVPN introduz protocolos e processos que ajuda a permitir que um ISP suporte multicast dentro de VPNs. O transporte de multicast através do backbone do ISP é transparente e é integrado de forma transparente a solução MPLS VPN.
A solução MVPN é baseado no Draft IETF draft-rosen-vpn-mcast-08.txt. A solução MVPN usa o GRE com uma arvore de encaminhamento chamada multicast distribution tree (MDT) para realizar a escalabilidade do multicast dentro do core network. O Cisco MVPN é Baseado em uma solução de domínio Multicast com os recursos default MDT e data MDT. O MVPN introduz informações de roteamento multicast na tabela de roteamento da VRF criando uma Multicast VRF.
É importante notar que o uso de MVPN não modifica o jeito que a rede do cliente é administrada em relação a Endereçamento, politicas de roteamento, topologia, etc. Também é importante lembrar que as redes multicast dos clientes não possuem nenhuma relação com a rede multicast do provedor. Da visão do provedor, os pacotes multicast dos clientes são meramente dados.

2      Cenário

2.1       Objetivo

 Nove roteadores (CE1, PE1, CE2, PE2, CE3, PE3, CE4, PE4 e P) são conectados formando uma rede onde os roteadores PE1, PE2, PE3, PE4 e P formam um backbone que provê serviço de transporte para 4 CEs. Pede-se:
      O protocolo de roteamento de backbone PE1, PE2, PE3, PE4 e P deverá ser o OSPF na área 0 com todas as interfaces divulgadas e com mBGP no AS 1 entre os PEs e LDP para tráfego das VRFs;
      Os CEs CE1, CE2, CE3 e CE4 deverão pertencer a mesma VPN VRF CustA com RD/RT 1:1 e roteamento estático;
      Deve ser habilitado o tráfego multicast entre os CEs. Os CEs CE1, CE2 e CE3 devem enviar join para o grupo 224.7.7.7;
      Deve ser habilitado o MDT pelo grupo 233.3.3.3 habilitado o range 233.0.0.0/8 para SSM.

2.2       Topologia

2.3       IOS utilizados

      CE1, PE1, CE2, PE2, CE3, PE3, CE4, PE4 e P – c7200-k91p-mz.122-25.S15.bin

2.4       Configuração dos Roteadores

2.4.1    Configurações do OSPF do Backbone

Em todos os roteadores configura-se o roteamento OSPF pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. O roteador também possui um router ID único que geralmente é a interface loopback ou então o maior endereço IP do roteador.
Para adicionar interfaces deve-se usar o comando “network
área ”. Um roteador pode ter interfaces em áreas distintas, define-se cada área pelo comando network.
Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.

2.4.2    Configurações do MPLS

Antes de qualquer configuração, o Cisco Express forwarding deve ser habilitado com o comando “ip cef”. Para habilitar o MPLS no modo LDP, usa-se o comando global “mpls label protocol ldp”.

2.4.3    Configuração do MBGP

Para estabelecer uma VPN é necessário configurar o MBGP para a troca de informações de prefixos de VPN. Pode-se somente configurar o MBGP nos roteadores PEs da rede que possuem conexão com os CEs, ou seja, conectados diretamente aos sites.
O MBGP funciona como o BGP, configura-se em todos os roteadores pelo comando “router bgp onde o “AS” é o Autonomous System do backbone. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as .
Adiciona-se o IP da interface loopback como Router-ID pelo comando “bgp router-id .
Como os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, faz-se o full-mesh de conexão MBGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
O MBGP é configurado dentro do protocolo BGP, porém deve-se separar a família de roteamento com o comando “address-family vpnv4”. Para o envio de prefixos das VPNs, deve-se habilitar o envio de community extendida com o comando “neighbor send-community extended”.
Todos os recursos como route-map, next-hop-self, router-reflector, etc. podem ser configurados dentro da família VPNv4 para manipular ou resolver problemas de roteamento.

2.4.4    Criando uma VPN VRF no BGP

Após todos os roteadores PEs da rede possuem conectividade MBGP, ou diretamente ou por router-reflector, cria-se a VPN com o comando “ip vrf ”, dentro desse comando ficam os parâmentros de marcação da VPN e das communities associadas aos prefixos daquela VPN. Configura-se o Route-Distinguisher da VPN, que deve ser único na rede, com comando “rd :”, e também cria-se a  community que será exportada para aqueles prefixos de rede com o comando “route-target :”, onde “import” significa importar as rotas e “export” exportar as rotas.
Cria-se então uma address-family dentro do BGP com o comando “address-family ipv4 vrf ” com o mesmo nome da VPN criada no “ip vrf” fora do roteamento BGP. Dentro dessa address-family são configuradas as redes que serão redistribuídas para os outros sites. Para divulgar as redes é necessário que a rede exista na tabela de roteamento interna e, ou adicionar o comando “network mask ou redistribuindo rotas para o MBGP com o comando “redistribute , que pode ser vinculado à um route-map para definir exatamente as rotas que serão divulgadas de um protocolo para outros sites.
Enfim, para que uma interface conectada ao CE faça parte da VPN BGP, usa-se o comando “ip vrf forwarding ” dentro da interface.

2.4.5    Configuração do Multicast no Backbone com SSM

É necessário configurar o roteamento multicast no roteador com o comando “ip multicast-routing” e também dentro das VPNs com o comando “ip multicast-routing vrf ” aplicado nos PEs.
Para definir o escopo do Souce Specific Multicast usa-se uma ACL definindo o escopo e aplica-a no comando “ip pim ssm range

2.4.6    Configuração do Multicast na VPN

Antes de configurar o PIM é necessário configurar o roteamento multicast no roteador com o comando “ip multicast-routing”. No PIM a configuração para o sparse mode é feita a configuração “ip pim sparse-mode” nas interfaces com os roteadores que trafegam multicast. O Sparse mode necessita de um Rendevouz Point.
 A configuração de Rendevouz Point estático é feita pelo comando “ip pim rp-address ”.

2.4.7    Configurações do IGMP

O IGMP é configurado em todas as interfaces que estão com o multicast PIM configurado. Caso algum host conectado ao roteador enviar um trafego de “join multicast” o roteador automaticamente passará para o Source daquele grupo, caso exista.
Nesse exemplo pode-se utilizar o comando “ip igmp join-group ” para enviar uma solicitação de join no grupo multicast.

2.5       Observações e Bugs

3      Configuração

3.1       CE1

!
ip cef
!
!
ip multicast-routing
!
interface Loopback0
 ip address 172.16.100.1 255.255.255.255
 ip pim sparse-mode
 ip igmp join-group 224.7.7.7
!
interface Serial3/1
 ip address 172.16.1.2 255.255.255.252
 ip pim sparse-mode
!
ip route 0.0.0.0 0.0.0.0 172.16.1.1
!
!
ip pim rp-address 172.16.100.1
!

3.2       PE1

!
ip cef
!
!
ip vrf CustA
 rd 100:1
 route-target export 100:1
 route-target import 100:1
 mdt default 233.3.3.3

!
ip multicast-routing
ip multicast-routing vrf CustA
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.10.10.101 255.255.255.255
 ip pim sparse-mode
!
interface Serial3/0
 ip address 10.10.10.1 255.255.255.252
 ip pim sparse-mode
!
interface Serial3/1
 ip vrf forwarding CustA
 ip address 172.16.1.1 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 router-id 10.10.10.101
 network 10.10.10.1 0.0.0.0 area 0
 network 10.10.10.101 0.0.0.0 area 0
!
router bgp 1
 bgp router-id 10.10.10.101
 neighbor 10.10.10.102 remote-as 1
 neighbor 10.10.10.102 update-source Loopback0
 neighbor 10.10.10.103 remote-as 1
 neighbor 10.10.10.103 update-source Loopback0
 neighbor 10.10.10.104 remote-as 1
 neighbor 10.10.10.104 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.10.10.102 activate
 neighbor 10.10.10.102 send-community extended
 neighbor 10.10.10.103 activate
 neighbor 10.10.10.103 send-community extended
 neighbor 10.10.10.104 activate
 neighbor 10.10.10.104 send-community extended
 !
 address-family ipv4 vrf CustA
 redistribute connected
 redistribute static
!
ip classless
ip route vrf CustA 172.16.100.1 255.255.255.255 172.16.1.2
!
ip pim ssm range 1
!
!
access-list 1 permit 233.0.0.0 0.255.255.255
!

3.3       CE2

!
ip cef
!
!
ip multicast-routing
!
!
interface Loopback0
 ip address 172.16.100.2 255.255.255.255
 ip igmp join-group 224.7.7.7
 ip pim sparse-mode
!
interface Serial3/1
 ip address 172.16.2.2 255.255.255.252
 ip pim sparse-mode
!
ip route 0.0.0.0 0.0.0.0 172.16.2.1
!
ip pim rp-address 172.16.100.1
!

3.4       PE2

!
ip cef
!
!
ip vrf CustA
 rd 100:1
 route-target export 100:1
 route-target import 100:1
 mdt default 233.3.3.3

!
ip multicast-routing
ip multicast-routing vrf CustA
mpls label protocol ldp
!
!
!
interface Loopback0
 ip address 10.10.10.102 255.255.255.255
 ip pim sparse-mode
!
interface Serial3/0
 ip address 10.10.10.5 255.255.255.252
 ip pim sparse-mode
!
interface Serial3/1
 ip vrf forwarding CustA
 ip address 172.16.2.1 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 router-id 10.10.10.102
 network 10.10.10.5 0.0.0.0 area 0
 network 10.10.10.102 0.0.0.0 area 0
!
router bgp 1
 bgp router-id 10.10.10.102
 neighbor 10.10.10.101 remote-as 1
 neighbor 10.10.10.101 update-source Loopback0
 neighbor 10.10.10.103 remote-as 1
 neighbor 10.10.10.103 update-source Loopback0
 neighbor 10.10.10.104 remote-as 1
 neighbor 10.10.10.104 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.10.10.101 activate
 neighbor 10.10.10.101 send-community extended
 neighbor 10.10.10.103 activate
 neighbor 10.10.10.103 send-community extended
 neighbor 10.10.10.104 activate
 neighbor 10.10.10.104 send-community extended
!
 address-family ipv4 vrf CustA
 redistribute connected
 redistribute static
!
ip route vrf CustA 172.16.100.2 255.255.255.255 172.16.2.2
!
!
ip pim ssm range 1
!
!
access-list 1 permit 233.0.0.0 0.255.255.255
!

3.5       CE3

!
ip cef
!
!
ip multicast-routing
!
!
interface Loopback0
 ip address 172.16.100.3 255.255.255.255
 ip igmp join-group 224.7.7.7
 ip pim sparse-mode
!
interface Serial3/1
 ip address 172.16.3.2 255.255.255.252
 ip pim sparse-mode
!
ip route 0.0.0.0 0.0.0.0 172.16.3.1
!
!
ip pim rp-address 172.16.100.1
!

3.6       PE3

!
ip cef
!
!
ip vrf CustA
 rd 100:1
 route-target export 100:1
 route-target import 100:1
 mdt default 233.3.3.3

!
ip multicast-routing
ip multicast-routing vrf CustA
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.10.10.103 255.255.255.255
 ip pim sparse-mode
!
interface Serial3/0
 ip address 10.10.10.9 255.255.255.252
 ip pim sparse-mode
 mpls ip
!
interface Serial3/1
 ip vrf forwarding CustA
 ip address 172.16.3.1 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 router-id 10.10.10.103
 network 10.10.10.9 0.0.0.0 area 0
 network 10.10.10.103 0.0.0.0 area 0
!
router bgp 1
 bgp router-id 10.10.10.103
 neighbor 10.10.10.101 remote-as 1
 neighbor 10.10.10.101 update-source Loopback0
 neighbor 10.10.10.102 remote-as 1
 neighbor 10.10.10.102 update-source Loopback0
 neighbor 10.10.10.104 remote-as 1
 neighbor 10.10.10.104 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.10.10.101 activate
 neighbor 10.10.10.101 send-community extended
 neighbor 10.10.10.102 activate
 neighbor 10.10.10.102 send-community extended
 neighbor 10.10.10.104 activate
 neighbor 10.10.10.104 send-community extended
 !
 address-family ipv4 vrf CustA
 redistribute connected
 redistribute static
!
ip route vrf CustA 172.16.100.3 255.255.255.255 172.16.3.2
!
ip pim ssm range 1
!
!
access-list 1 permit 233.0.0.0 0.255.255.255
!

3.7       CE4

!
ip cef
!
ip multicast-routing
!
!
interface Loopback0
 ip address 172.16.100.4 255.255.255.255
 ip pim sparse-mode
!
interface Serial3/1
 ip address 172.16.4.2 255.255.255.252
 ip pim sparse-mode
!
ip classless
ip route 0.0.0.0 0.0.0.0 172.16.4.1
!
!
ip pim rp-address 172.16.100.1
!

3.8       PE4

!
ip cef
!
!
ip vrf CustA
 rd 100:1
 route-target export 100:1
 route-target import 100:1
 mdt default 233.3.3.3

!
ip multicast-routing
ip multicast-routing vrf CustA
mpls label protocol ldp
!
!
interface Loopback0
 ip address 10.10.10.104 255.255.255.255
 ip pim sparse-mode
!
interface Serial3/0
 ip address 10.10.10.13 255.255.255.252
 ip pim sparse-mode
 mpls ip
!
interface Serial3/1
 ip vrf forwarding CustA
 ip address 172.16.4.1 255.255.255.252
 ip pim sparse-mode
!
router ospf 1
 router-id 10.10.10.104
 log-adjacency-changes
 network 10.10.10.13 0.0.0.0 area 0
 network 10.10.10.104 0.0.0.0 area 0
!
router bgp 1
 bgp router-id 10.10.10.104
 neighbor 10.10.10.101 remote-as 1
 neighbor 10.10.10.101 update-source Loopback0
 neighbor 10.10.10.102 remote-as 1
 neighbor 10.10.10.102 update-source Loopback0
 neighbor 10.10.10.103 remote-as 1
 neighbor 10.10.10.103 update-source Loopback0
 !
 address-family vpnv4
 neighbor 10.10.10.101 activate
 neighbor 10.10.10.101 send-community extended
 neighbor 10.10.10.102 activate
 neighbor 10.10.10.102 send-community extended
 neighbor 10.10.10.103 activate
 neighbor 10.10.10.103 send-community extended
!
 address-family ipv4 vrf CustA
 redistribute connected
 redistribute static
!
ip route vrf CustA 172.16.100.4 255.255.255.255 172.16.4.2
!
no ip http server
!
ip pim ssm range 1
!
!
access-list 1 permit 233.0.0.0 0.255.255.255
!

3.9       P

!
ip cef
!
!
ip multicast-routing
mpls label protocol ldp
!
!
!
interface Loopback0
 ip address 10.10.10.100 255.255.255.255
!
interface Serial3/0
 ip address 10.10.10.2 255.255.255.252
 ip pim sparse-mode
 mpls ip
!
interface Serial3/1
 ip address 10.10.10.6 255.255.255.252
 ip pim sparse-mode
 mpls ip
!
interface Serial3/2
 ip address 10.10.10.10 255.255.255.252
 ip pim sparse-mode
 mpls ip
!
interface Serial3/3
 ip address 10.10.10.14 255.255.255.252
 ip pim sparse-mode
 mpls ip
!
router ospf 1
 router-id 10.10.10.100
 network 10.10.10.2 0.0.0.0 area 0
 network 10.10.10.6 0.0.0.0 area 0
 network 10.10.10.10 0.0.0.0 area 0
 network 10.10.10.14 0.0.0.0 area 0
 network 10.10.10.100 0.0.0.0 area 0
!
!
ip pim ssm range 1
!
!
access-list 1 permit 233.0.0.0 0.255.255.255
!