Difference between revisions of "Cisco MPLS"
Helikopter (talk | contribs) |
Helikopter (talk | contribs) |
||
Line 4: | Line 4: | ||
===Tables=== | ===Tables=== | ||
+ | För varje VRF skapas det nya tabeller. | ||
+ | |||
RIB | RIB | ||
show ip route | show ip route | ||
Line 51: | Line 53: | ||
show mpls ldp neighbor | show mpls ldp neighbor | ||
− | === | + | ===Autentisering=== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | = | ||
Med autentisering kan man säkra LDP-kommunikationen | Med autentisering kan man säkra LDP-kommunikationen | ||
ip access-list standard <namn> | ip access-list standard <namn> | ||
Line 76: | Line 60: | ||
mpls ldp password required for <access-list> | mpls ldp password required for <access-list> | ||
mpls ldp neighbor <granne1> password <password> | mpls ldp neighbor <granne1> password <password> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=ICMP= | =ICMP= | ||
Ping | Ping | ||
− | ping mpls ipv4 | + | ping mpls ipv4 10.1.1.1/32 |
Traceroute | Traceroute | ||
+ | traceroute mpls ipv4 10.1.1.1/32 | ||
− | =MP-BGP | + | =VPN= |
− | + | MPLS VPN (RFC 4364) är en populär MPLS-applikation. PHP är på default. För PE-PE label utbyten används MP-BGP, se även [[Cisco BGP]]. | |
ip bgp-community new-format | ip bgp-community new-format | ||
+ | |||
+ | '''Route Distinguisher:''' är ett 64-bitars nummer som skickas med BGP-uppdateringarna och används för att göra routes unika mellan VRFer. Det används med adressfamiljerna vpnv4 och vpnv6. | ||
+ | |||
+ | '''Route Target:''' skickas med BGP-uppdateringarna som ett Extended Community PA. Det används för att bestämma vilken/vilka VRFer routsen ska in i. | ||
+ | |||
+ | Import och export bestämmer vad som ska redistribueras mellan VRF och BGP. | ||
===L3 VPN=== | ===L3 VPN=== | ||
− | |||
Add IBGP neighbor | Add IBGP neighbor | ||
router bgp 1.1 | router bgp 1.1 | ||
Line 101: | Line 85: | ||
''PE-CE Routing'' | ''PE-CE Routing'' | ||
+ | |||
+ | =NX-OS= | ||
+ | Förutsättningar | ||
+ | install feature-set mpls | ||
+ | feature-set mpls | ||
+ | feature mpls l3vpn | ||
+ | feature mpls ldp | ||
+ | interface loopback 1 | ||
+ | ip address 10.0.0.1/24 | ||
+ | mpls ldp configuration | ||
+ | session protection | ||
+ | router-id loopback 1 | ||
+ | Aktivera på interface | ||
+ | interface e1/1 | ||
+ | mpls ip | ||
+ | Synk med routing protokoll | ||
+ | router isis P1 | ||
+ | mpls ldp sync | ||
+ | Authentication | ||
+ | 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> | ||
[[Category:Cisco]] | [[Category:Cisco]] |
Revision as of 16:19, 21 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
För varje VRF skapas det nya tabeller.
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
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>
ICMP
Ping
ping mpls ipv4 10.1.1.1/32
Traceroute
traceroute mpls ipv4 10.1.1.1/32
VPN
MPLS VPN (RFC 4364) är en populär MPLS-applikation. PHP är på default. För PE-PE label utbyten används MP-BGP, se även Cisco BGP.
ip bgp-community new-format
Route Distinguisher: är ett 64-bitars nummer som skickas med BGP-uppdateringarna och används för att göra routes unika mellan VRFer. Det används med adressfamiljerna vpnv4 och vpnv6.
Route Target: skickas med BGP-uppdateringarna som ett Extended Community PA. Det används för att bestämma vilken/vilka VRFer routsen ska in i.
Import och export bestämmer vad som ska redistribueras mellan VRF och BGP.
L3 VPN
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
NX-OS
Förutsättningar
install feature-set mpls feature-set mpls feature mpls l3vpn feature mpls ldp interface loopback 1 ip address 10.0.0.1/24 mpls ldp configuration session protection router-id loopback 1
Aktivera på interface
interface e1/1 mpls ip
Synk med routing protokoll
router isis P1 mpls ldp sync
Authentication
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>