Difference between revisions of "Cisco MPLS"

From HackerNet
Jump to: navigation, search
Line 1: Line 1:
Multiprotocol Label Switching (RFC 3031) är protokoll som routrar kan använda för att forwardera paket baserat på labels istället för destination IP address. Dessa kallas då LSR, Label Switch Router. Genom att separera forwarding decision från destination IP address kan besluten baseras på andra faktorer såsom QoS eller Traffic Engineering. Det kan användas för vanlig unicast IP forwarding men också annat som t.ex. VPN-tjänster. En MPLS-header är 4 bytes och innehåller bl.a. ett 20-bitars fält som är den unika labeln. Bottom-of-stack bit, QoS marking och TTL finns också i headern. När en E-LSR får in ett IP-paket sänker den IP TTL med ett och sedan pushar den en label och kopierar TTLen till MPLS-headern. När sedan paketet traverserar en LSR sänks endast MPLS-TTLen men vid egress E-LSR kopieras MPLS-TTLen till IP TTL och skickas vidare. Det sista går att ändra på med '''no mpls ip propagate-ttl''', då sätts även MPLS-TTL till 255 av ingress E-LSR för att det verkligen ska vara som ett router hop.  
+
Multiprotocol Label Switching (RFC 3031) är protokoll som routrar kan använda för att forwardera paket baserat på labels istället för destination IP address. Routrarna kallas då LSR, Label Switch Router. Genom att separera forwarding decision från destination IP address kan besluten baseras på andra faktorer såsom QoS eller Traffic Engineering. Det kan användas för vanlig unicast IP forwarding men också annat som t.ex. VPN-tjänster. En MPLS-header är 4 bytes och innehåller bl.a. ett 20-bitars fält som är den unika labeln. Bottom-of-stack bit, QoS marking och TTL finns också i headern. När en E-LSR får in ett IP-paket sänker den IP TTL med ett och sedan pushar den en label och kopierar TTLen till MPLS-headern. När sedan paketet traverserar en LSR sänks endast MPLS-TTLen men vid egress E-LSR kopieras MPLS-TTLen till IP TTL och skickas vidare. Det sista går att ändra på med '''no mpls ip propagate-ttl''', då sätts även MPLS-TTL till 255 av ingress E-LSR för att hela MPLS-nätet verkligen ska vara som ett router hop. Olika protokoll kan användas för control plane, t.ex. LDP och MP-BGP.
  
 
MPLS på Cisco-enheter använder sig av [[Cisco_CEF|CEF]].
 
MPLS på Cisco-enheter använder sig av [[Cisco_CEF|CEF]].
Line 6: Line 6:
 
RIB
 
RIB
 
  show ip route
 
  show ip route
LIB, används för paket utan label
+
show ip route vrf NAME
  show mpls ip binding
+
LIB, innehåller all labels known to LSR
  show mpls ldp bindings
+
  show mpls ip binding [vrf NAME]
FIB
+
  show mpls ldp bindings [vrf NAME]
 +
FIB, används för paket utan label
 
  show ip cef
 
  show ip cef
 +
show ip cef vrf NAME
 
LFIB, används för paket med label
 
LFIB, används för paket med label
 
  show mpls forwarding-table
 
  show mpls forwarding-table
 +
show mpls forwarding-table vrf NAME
  
 
=VRF Lite=
 
=VRF Lite=
Line 19: Line 22:
  
 
=LDP=
 
=LDP=
För att veta vilka labels en LSR ska sätta på paketen används Label Distribution Protocol (TDP är legacy). Routrar utbyter labels med varandra och kan sedan bygga korrekta forwarding tables.  
+
För att veta vilka labels en LSR ska sätta på paketen som ska skickas iväg används Label Distribution Protocol (TDP är legacy). Routrar bygger LDP-grannskap och utbyter sedan dynamiskt labels med varandra för att kunna bygga korrekta forwarding tables. För unicast IP routing så utbyts en label per prefix i routingtabellen. Dyker det upp något nytt i routingtabellen skapas en ny lokal label i LIB och sedan annonseras det till alla LDP-grannarna. På så sätt kan en label-switched path (LSP) byggas. Dessa är enkelriktade och en enskild LSR känner inte till hela pathen för det behövs inte. En label går aldrig längre än till grannen utan där poppas eller byts den mot nästa routers label. MPLS låter routingtabellen och IGP stå för path selection och därmed loop-prevention och convergence.
 +
 
 +
MPLS-nätet måste använda något routingprotokoll för att lära sig routes och dra nytta av label-annonsering, vanligtvis används ett IGP för detta. När en ny lokal label skapas, pga nylärd route från IGP, annonseras det till alla LDP-grannarna (även den man fick route-uppdateringen ifrån, frame-mode MPLS har inte hört talas om split horizon :). Detta händer för alla routes på alla LSR. Router-ID väljs på exakt samma sätt som för [[Cisco_OSPF|OSPF]].
 +
 
 +
'''Packets:''' 2, Hellos (UDP), Updates (TCP)
 +
 
 +
'''Destination:''' 224.0.0.2
 +
 
 +
'''Port:''' 646
  
 
Global
 
Global
mpls label range 200-299
 
 
  mpls label protocol ldp
 
  mpls label protocol ldp
 
  mpls ldp session protection
 
  mpls ldp session protection
Line 33: Line 43:
 
  router isis 1
 
  router isis 1
 
   mpls ldp sync
 
   mpls ldp sync
 
+
Range
 +
mpls label range 200-299
 +
show mpls label range
 
Verify
 
Verify
 +
show mpls interfaces [vrf NAME]
 
  show mpls ldp discovery
 
  show mpls ldp discovery
 
  show mpls ldp neighbor
 
  show mpls ldp neighbor
Line 87: Line 100:
 
  send-community extended
 
  send-community extended
  
=Show=
+
''PE-CE Routing''
show mpls interfaces
 
 
 
PE-CE Routing
 
  
 
[[Category:Cisco]]
 
[[Category:Cisco]]

Revision as of 17:15, 19 April 2016

Multiprotocol Label Switching (RFC 3031) är protokoll som routrar kan använda för att forwardera paket baserat på labels istället för destination IP address. Routrarna kallas då LSR, Label Switch Router. Genom att separera forwarding decision från destination IP address kan besluten baseras på andra faktorer såsom QoS eller Traffic Engineering. Det kan användas för vanlig unicast IP forwarding men också annat som t.ex. VPN-tjänster. En MPLS-header är 4 bytes och innehåller bl.a. ett 20-bitars fält som är den unika labeln. Bottom-of-stack bit, QoS marking och TTL finns också i headern. När en E-LSR får in ett IP-paket sänker den IP TTL med ett och sedan pushar den en label och kopierar TTLen till MPLS-headern. När sedan paketet traverserar en LSR sänks endast MPLS-TTLen men vid egress E-LSR kopieras MPLS-TTLen till IP TTL och skickas vidare. Det sista går att ändra på med no mpls ip propagate-ttl, då sätts även MPLS-TTL till 255 av ingress E-LSR för att hela MPLS-nätet verkligen ska vara som ett router hop. Olika protokoll kan användas för control plane, t.ex. LDP och MP-BGP.

MPLS på Cisco-enheter använder sig av CEF.

Tables

RIB

show ip route
show ip route vrf NAME

LIB, innehåller all labels known to LSR

show mpls ip binding [vrf NAME]
show mpls ldp bindings [vrf NAME]

FIB, används för paket utan label

show ip cef
show ip cef vrf NAME

LFIB, används för paket med label

show mpls forwarding-table
show mpls forwarding-table vrf NAME

VRF Lite

VRF Lite är vrf:er utan mpls.

show ip vrf

LDP

För att veta vilka labels en LSR ska sätta på paketen som ska skickas iväg används Label Distribution Protocol (TDP är legacy). Routrar bygger LDP-grannskap och utbyter sedan dynamiskt labels med varandra för att kunna bygga korrekta forwarding tables. För unicast IP routing så utbyts en label per prefix i routingtabellen. Dyker det upp något nytt i routingtabellen skapas en ny lokal label i LIB och sedan annonseras det till alla LDP-grannarna. På så sätt kan en label-switched path (LSP) byggas. Dessa är enkelriktade och en enskild LSR känner inte till hela pathen för det behövs inte. En label går aldrig längre än till grannen utan där poppas eller byts den mot nästa routers label. MPLS låter routingtabellen och IGP stå för path selection och därmed loop-prevention och convergence.

MPLS-nätet måste använda något routingprotokoll för att lära sig routes och dra nytta av label-annonsering, vanligtvis används ett IGP för detta. När en ny lokal label skapas, pga nylärd route från IGP, annonseras det till alla LDP-grannarna (även den man fick route-uppdateringen ifrån, frame-mode MPLS har inte hört talas om split horizon :). Detta händer för alla routes på alla LSR. Router-ID väljs på exakt samma sätt som för OSPF.

Packets: 2, Hellos (UDP), Updates (TCP)

Destination: 224.0.0.2

Port: 646

Global

mpls label protocol ldp
mpls ldp session protection
mpls ldp router-id loopback0 [force]

Per interface

interface gi1/1
 mpls ip
 mpls mtu 1508

Synk med routing protokoll

router isis 1
 mpls ldp sync

Range

mpls label range 200-299
show mpls label range

Verify

show mpls interfaces [vrf NAME]
show mpls ldp discovery
show mpls ldp neighbor

NX-OS

Förutsättningar

install feature-set mpls
feature-set mpls
feature mpls ldp

Aktivera på interface

interface e1/1
mpls ip

LDP ID

interface loopback 1
 ip address 10.0.0.1/24
mpls ldp configuration
 session protection
 router-id loopback 1

Synk med routing protokoll

router isis P1
mpls ldp sync

Autentisering

Med autentisering kan man säkra LDP-kommunikationen

ip access-list standard <namn>
permit <granne1>
mpls ldp password required for <access-list>
mpls ldp neighbor <granne1> password <password>

NX-OS

ip prefix-list <namn> permit <granne1>/32
mpls ldp configuration
password required for <prefix-list>
password option 1 for <prefix-list> key-chain <key-chain-name>

ICMP

Ping

ping mpls ipv4 1.1.1.1/32 

Traceroute

MP-BGP

Se Cisco BGP.

ip bgp-community new-format

L3 VPN

feature mpls l3vpn

Add IBGP neighbor

router bgp 1.1
neighbor 10.0.0.10 remote-as 1.1
address-family vpnv4 unicast
send-community extended

PE-CE Routing