Cisco L2VPN

From HackerNet
Revision as of 10:11, 25 June 2019 by Helikopter (talk | contribs)
Jump to: navigation, search

Virtual Private LAN Service (VPLS) är ett sätt att tillhandahålla Ethernet-baserad multipoint-to-multipoint-kommunikation över IP eller MPLS. Multipla siter kopplas ihop med hjälp av pseudowires. De underliggande tekniker som kan användas som pseudowire är Ethernet over MPLS, L2TPv3 eller GRE. Den vanligaste bäraren är MPLS och för control plane (Auto-Discovery/Signaling) kan LDP eller BGP användas. Det finns inbyggd loop prevention i form av att frames som kommer ifrån en VPLS aldrig får skickas vidare inom VPLS. VPLS skalar inte superbra eftersom det kräver full-mesh, detta går att bygga ut med Hierarchical VPLS. Det man gör då är att koppla ihop flera VPLS och stänga av split horizon vid intersektionerna. En annan begränsande faktor är minnesmängden på VPLS Edge devices eftersom de måste lära sig kundens MAC-adresser. Att sträcka L2 är aldrig häftigt men man får göra så gott man kan med STP alternativt ha routrar direkt på andra sidan. Se även Cisco MPLS.

Ethernet Virtual Circuit

Att binda en kund eller tjänst till en port eller VLAN var en begränsande faktor i access-lagret. Därför togs EVC framework fram för att komma förbi det. Det är en unified software infrastructure för att konfigurera Ethernet services. Tanken är att låta access circuits mappas till flera olika typer av Ethernet-tjänster så som L2 point-to-point local connects, L2 point-to-point xconnects, L2 multipoint-to-multipoint VPLS och andra tjänster. Man kan genom att välja encapsulation även vlan-tagga, dubbel-tagga eller skriva om vlan-tag.

interface GigabitEthernet2
 no ip address
 service instance 10 ethernet
  encapsulation default
  xconnect 19.19.19.19 219 encapsulation mpls

Verification

show ethernet service instance summary
show ethernet service instance id 10 interface gig2 detail

Konfiguration

Manual VPLS, legacy syntax. Bridge domain används för mac learning samt att binda ihop Ethernet UNI med LSP. Man kan ej blanda gammal och ny syntax pga att bridge-domain betyder olika beroende på config context.

l2 vfi VPLS manual
 vpn id 100
 bridge-domain 1
 neighbor 10.0.0.2 encapsulation mpls
 neighbor 10.0.0.3 encapsulation mpls

interface gi2
 service instance 10 ethernet
  encapsulation default
  bridge-domain 1

Manual VPLS, preferred syntax. Full mesh scaling är ett administrativt problem oavsett syntax.

l2vpn vfi context VPLS
 vpn id 100
 member 10.0.0.2 encapsulation mpls
 member 10.0.0.3 encapsulation mpls
 member 10.0.0.4 encapsulation mpls

interface gi2
 service instance 10 ethernet
  encapsulation default

bridge-domain 1
 mac limit maximum addresses 50
 member gi2 service-instance 10
 member vfi VPLS 

Verify

show l2vpn vfi
show bridge-domain
show mpls l2transport vc
show mpls forwarding-table | i l2ckt

Man kan även koppla in L3-interface på sin bridge-domain.

interface BDI1
 ip address 172.20.0.10 255.255.255.0

BGP Autodiscovery

LDP based VPLS med BGP Autodiscovery (RFC 4762). BGP används för att upptäcka VPLS-endpoints automatiskt för varje VPN och VC-grannar konfigureras ej maneullt. Varje VPLS får en egen rd och detta går att använda i kombination med route reflector.

l2vpn vfi context VPLS
 vpn id 100
 autodiscovery bgp signaling ldp
  auto-route-target  #på default

router bgp 100
 address-family l2vpn vpls
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-comunity extended

Verify

show bgp l2vpn vpls all summary

BGP based VPLS med BGP Autodiscovery (RFC 4761). BGP används för att upptäcka VPLS-endpoints men också för att signalera labels. Man måste suppress ldp signaling för att slå på bgp signaling.

l2vpn vfi context VPLS
 vpn id 100
 autodiscovery bgp signaling bgp
  ve id 11  #unik per VPLS Edge device 

router bgp 100
 address-family l2vpn vpls
  neighbor 1.1.1.1 suppress-signaling-protocol ldp

Verify

show bgp l2vpn vpls all

L2 Tunneling

För CDP, LACP, STP frames etc krävs l2 tunneling protocol. Detta finns det inte stöd för på alla plattformar, l2protocol action not supported.

interface gi2
 service instance 100 ethernet
  l2protocol tunnel

show ethernet service instance detail | i L2protocol

AToM

Any Transport over MPLS (RFC 4448). Requires end-to-end MPLS LSP och att targeted LDP tillåts.

xconnect logging pseudowire status 
mpls ldp discovery targeted-hello accept

PE1

interface gi2
 xconnect 2.2.2.2 102 encapsulation mpls

PE2, VCID måste matcha på båda sidor

interface gi2
 xconnect 1.1.1.1 102 encapsulation mpls

Verify

show xconnect all
show xconnect peer 2.2.2.2 vcid 102
show mpls l2transport vc 102 detail
ping mpls pseudowire 10.0.0.10 102

Segment 1 är de interface som kunden sitter på, segment 2 är core.

Inter AS
Inter AS pseudowire går att bygga PE <-> ASBR <-> ASBR <-> PE.

AS1-BR

pseudowire-class PW
 encapsulation mpls

l2 vfi PW-SWITCH point-to-point
 neighbor <AS2-BR IP> 100 pw-class PW
 neighbor <PE IP> 16 pw-class PW

L2TPv3

Layer 2 Tunneling Protocol (RFC 3931, RFC 4719) kräver CEF och IP-konnektivitet end-to-end. Det är endast point-to-point. IP protocol: 115.

pseudowire-class L2TP-PWCLASS
 encapsulation l2tpv3
 ip local interface Loopback0

interface gi2
 xconnect 2.2.2.2 102 pw-class L2TP-PWCLASS

Verify

show l2tp session all
show l2tun tunnel all

IOS-XR

Loggning

l2vpn
 logging
  bridge-domain
  pseudowire
  vfi

Static VPLS

l2vpn
 bridge group PROD
  bridge-domain 101
   mtu 9000
   interface Bundle-Ether1.101
   !
   vfi 101
    neighbor 10.0.10.15 pw-id 101
    neighbor 10.0.10.16 pw-id 101

Verify

show l2vpn bridge-domain brief