Difference between revisions of "Cisco MPLS-TE"
Helikopter (talk | contribs) m |
Helikopter (talk | contribs) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | + | Det finns olika tekniker för att göra TE i ett MPLS-nät. Det mest flexibla och skalbara är Segment Routing, se [[Cisco_SR|egen artikel]]. | |
− | ==Konfiguration== | + | ==RSVP== |
+ | Resource Reservation Protocol (RFC 2205) är ett kontrollplansprotokoll (IP protokoll #46) designat för att reservera resurser genom ett nätverk. Hostar/routrar kan begära att få vissa QoS-nivåer av nätverket. RSVP reserverar resurser men det är upp till varje enhet att ha en QoS-teknik för att leverera bandbredden. Till skillnad från vanlig QoS som är per frame/paket är detta per flöde, se även [[Cisco_QoS|Cisco QoS]]. | ||
+ | |||
+ | Resource Reservation Protocol - Traffic Engineering (RFC 3209) är en extension till [[Cisco_RSVP|RSVP]] som används för Traffic Engineering i MPLS-nät. Det fungerar både som MPLS label distribution protocol och MPLS signaling protocol. En ingress LSR kan använda RSVP-TE för att notifiera alla LSR:er längs pathen till egress att den vill sätta upp en LSP. Bandbredd kan då allokeras genom hela MPLS-nätverket. RSVP är unidirectional och det sätts upp en LSP per riktning. Det fungerar både med IPv4 och IPv6. Default kommer MPLS-TE tunnlar att föredra TE metric value över IGP metric för deras dynamiska path selection. Dock är TE metrics tagna ifrån IGP metric default. | ||
+ | |||
+ | Paket | ||
+ | * Path messages: används av ingress LSR för att begära LSP setup hop-by-hop längs hela pathen. | ||
+ | * Resv messages: används av egress LSR för att svara på Path message från ingress. | ||
+ | För att hålla LSP aktuell skickas periodvis PATH refresh och RESV refresh meddelanden. Om det inte finns tillräckliga resurser att tillgå någonstans längs vägen kommer den LSR:en att besvara ingress LSR som då får hitta en annan väg eller misslyckas med LSP-uppsättningen. | ||
+ | |||
+ | ===Konfiguration=== | ||
RSVP konfigureras på alla enheter genom nätverket och enableas på alla interface flödena ska traversera. Det behöver inte köras på alla enheter för att det ska funka men då kan man inte reservera bandbredd på dem heller. | RSVP konfigureras på alla enheter genom nätverket och enableas på alla interface flödena ska traversera. Det behöver inte köras på alla enheter för att det ska funka men då kan man inte reservera bandbredd på dem heller. | ||
Line 12: | Line 22: | ||
show ip rsvp interface | show ip rsvp interface | ||
show ip rsvp reservation | show ip rsvp reservation | ||
− | |||
− | |||
− | |||
− | |||
Om man kör LLQ/CBWFQ bör man stänga av RSVPs WFQ och klassificering. | Om man kör LLQ/CBWFQ bör man stänga av RSVPs WFQ och klassificering. | ||
Line 21: | Line 27: | ||
ip rsvp data-packet classification none | ip rsvp data-packet classification none | ||
− | = | + | ==Traffic Engineering== |
− | + | MPLS TE är unidirectional tunnels från source (head-end) till destination (tail-end) i form av LSP:er som används för att forwardera trafik. RSVP-TE Explicit Route Object (ERO) är pathen för MPLS LSP som inkluderar en sekvenserad lista av LSR:er som LSP:n måste passera igenom mellan ingress och egress LSR. RSVP-TE använder pathen som beskrivs i ERO för att signalera och sätta upp LSP:n. Pathen kan vara admin specified eller automatiskt uträknad på headend utifrån en algoritm som constrained shortest path first (CSPF). Det finns strict path och loose path. Ingen LDP behövs. | |
+ | |||
+ | Traffic Parameter Attributes: <br/> | ||
+ | TE metric, Maximum bandwidth, Maximum reservable bandwidth, Unreserved bandwidth, Administrative group. | ||
− | + | En sak som är bra att känna till med RSVP-TE är att om den primära vägen går ner (oavsett om det finns FRR eller inte) så kommer inte trafiken att skifta tillbaka till den ursprungliga vägen direkt efter att felet är åtgärdat. Det krävs att head-end signalerar berörd LSP igen (kollar om det finns en mer optimal väg). På både IOS och IOS XR sker detta periodiskt varje timme som standard. Det går även att signalera om en LSP manuellt. Om det finns en bättre väg kommer trafiken att skiftas över till den med MBB (make before break). | |
− | |||
− | |||
− | |||
'''Konfiguration''' | '''Konfiguration''' | ||
mpls traffic-eng tunnels | mpls traffic-eng tunnels | ||
− | |||
− | Per interface | + | Per interface, detta måste konfas på alla core-interface. |
interface gi2 | interface gi2 | ||
mpls traffic-eng tunnels | mpls traffic-eng tunnels | ||
ip rsvp bandwidth | ip rsvp bandwidth | ||
− | |||
− | IGP | + | IGP, OSPF använder opaque LSA:er och IS-IS använder nya TLV:er för att skicka TE attribut. |
router ospf 1 | router ospf 1 | ||
mpls traffic-eng router-id Loopback0 | mpls traffic-eng router-id Loopback0 | ||
mpls traffic-eng area 0 | mpls traffic-eng area 0 | ||
+ | |||
+ | router isis 1 | ||
+ | mpls traffic-eng router-id Loopback0 | ||
+ | mpls traffic-eng level-2 | ||
− | Tunnel | + | Tunnel. För att tunneln ska användas måste man routa över den, detta kan t.ex. göras med statisk routing eller autoroute. Eftersom det inte är en vanlig GRE-tunnel uppstår ingen recursive routing. Record route används för loop detection. |
interface Tunnel0 | interface Tunnel0 | ||
ip unnumbered Loopback0 | ip unnumbered Loopback0 | ||
Line 50: | Line 58: | ||
tunnel destination x.x.x.x | tunnel destination x.x.x.x | ||
tunnel mpls traffic-eng path-option 1 dynamic | tunnel mpls traffic-eng path-option 1 dynamic | ||
+ | tunnel mpls traffic-eng autoroute destination | ||
+ | tunnel mpls traffic-eng record-route | ||
+ | |||
Verify | Verify | ||
show mpls traffic-eng tunnel | show mpls traffic-eng tunnel | ||
+ | show ip rsvp interface | ||
+ | show ip route | ||
+ | show ip rsvp reservation detail | ||
+ | |||
traceroute mpls traffic-eng tunnel 0 | traceroute mpls traffic-eng tunnel 0 | ||
− | Logging | + | Dry run |
+ | show mpls traffic-eng topology path destination 10.10.10.10 bandwidth 50000 | ||
+ | show mpls traffic-eng link-management admission-control | ||
+ | |||
+ | Logging, detta är för att skicka traps. | ||
mpls traffic-eng logging lsp | mpls traffic-eng logging lsp | ||
mpls traffic-eng logging tunnel | mpls traffic-eng logging tunnel | ||
− | ''' | + | '''Auto-Bandwidth'''<br/> |
− | RSVP-TE kan använda sig av backup LSPer för snabbare konvergens. | + | Med auto-bw mäter routern själv trafikmängden på tunneln periodiskt. Sedan kan olika bw-reservationer signaleras allt eftersom utifrån tunnels behov. Med statistics interval kan man t.ex. mäta LSP:n i 60 sekunder och sedan fatta ett beslut. Man bör känna till att auto-bw inte funkar klockrent med burstig trafik eftersom det inte alltid är så snabbt i förändring. Underflow och Overflow är tröskelvärden för event-baserad statistikinsamling. Detta är inte heller alltid supersnabbt vid förändring. Det är rekommenderat att köra: tunnel load-interval < global sampling frequency < tunnel adjust frequency. |
+ | int tun0 | ||
+ | tunnel mpls traffic-eng auto-bw | ||
+ | Notera att senaste requested/signaled bandwidth sparas i running config. | ||
+ | |||
+ | '''TE - inter-area/multi-level'''<br/> | ||
+ | IOS implementerar Inter-Area MPLS TE genom att definiera ett Explicit Route Object (ERO), dvs en explicit-path som innehåller adresser till ABR eller L1/L2-router som ett loose hop i path:en. Detta resulterar i en pseudo-dynamic path calculation där Head End dynamiskt kalkylerar cSPF till sin exit ABR. Den kommer sedan dynamiskt kalkylera exit path till nästa ABR och så vidare tills man har nått tail end. Detta uppnås genom en loose hop expanderas i den fullt definierade explicita path:en, dvs Head End och ABRs definierar de hop som finns i den egna lokala flooding domain. | ||
+ | |||
+ | ip explicit-path name INTER_AREA_TE enable | ||
+ | next-address loose <ABR1> | ||
+ | next-address loose <ABR2> | ||
+ | |||
+ | ===Autotunnel - Fast Reroute=== | ||
+ | RSVP-TE kan använda sig av backup LSPer för snabbare konvergens. Med hjälp av autotunnel backup kan dessa autoskapas efter behov och man behöver därmed inte assigna något till protected interfaces. Dynamiska backup NHOP/NNHOP tunnels skapas när en LSP requestar FRR protection, dvs tunnel signaleras när det finns något aktivt flöde som ska skyddas och det finns alternativa vägar. FRR föredrar NNHOP över NHOP backup tunnels om båda finns tillgängliga. För NNHOP FRR måste man ha record route. | ||
+ | |||
+ | PLR | ||
+ | mpls traffic-eng auto-tunnel backup | ||
+ | |||
+ | Head-end | ||
+ | interface Tunnel0 | ||
+ | tunnel mpls traffic-eng fast-reroute | ||
+ | |||
+ | '''SRLG'''<br/> | ||
+ | SRLG-information distribueras med IGP och funkar endast för backup tunnels som är skapade av Autotunnel backup. | ||
+ | interface Gi0/1 | ||
+ | mpls traffic-eng srlg 1 | ||
+ | mpls traffic-eng srlg 2 | ||
+ | ! | ||
+ | interface Gi0/2 | ||
+ | mpls traffic-eng srlg 2 | ||
+ | mpls traffic-eng srlg 3 | ||
+ | ! | ||
+ | mpls traffic-eng auto-tunnel backup | ||
+ | mpls traffic-eng auto-tunnel backup srlg exclude force | ||
+ | |||
+ | ===Autotunnel - Mesh=== | ||
+ | Autoskapa tunnlar till alla PE:s som finns med i en acl. | ||
+ | mpls traffic-eng auto-tunnel mesh | ||
+ | |||
+ | interface Auto-Template1 | ||
+ | ip unnumbered Loopback0 | ||
+ | tunnel mode mpls traffic-eng | ||
+ | tunnel destination access-list 1 | ||
+ | |||
+ | access-list 1 permit 1.1.1.1 | ||
+ | access-list 1 permit 1.1.1.2 | ||
+ | |||
+ | Primary, configure tunnels to directly connected neighbors. | ||
+ | mpls traffic-eng auto-tunnel primary onehop | ||
+ | |||
+ | ===Inter-AS TE=== | ||
+ | Med ASBR Forced Link Flooding kan man låta länkar som inte är med i IGP att installeras i TE database som point-to-point. Man konfigurerar länken som passiv för MPLS TE och anger neighbor TE-ID och ip-adress. | ||
+ | mpls traffic-eng passive-interface nbr-te-id 1.1.1.2 nbr-if-addr 10.0.0.2 nbr-igp-id isis 49.0000.0000.0002.00 | ||
+ | |||
+ | ===Multicast=== | ||
+ | Om man routar multicast i sitt core samtidigt som man kör MPLE-TE med autoroute announce kommer RPF att titta på fel best path. Workaround är att slå på att IGP håller två set med best paths under SPF calculation, en för unicast (TE tunnels och physical interfaces) och en för multicast (endast physical interfaces). | ||
+ | router ospf 1 | ||
+ | mpls traffic-eng multicast-intact | ||
+ | |||
+ | =IOS-XR= | ||
+ | ===Auto-Tunnel Backup=== | ||
+ | ipv4 unnumbered mpls traffic-eng lo0 | ||
+ | mpls traffic-eng | ||
+ | auto-tunnel backup | ||
+ | tunnel-id min 6000 max 6500 | ||
+ | ! | ||
+ | interface GigabitEthernet0/0/0/0 | ||
+ | auto-tunnel backup | ||
+ | |||
+ | Verify | ||
+ | show mpls traffic-eng auto-tunnel backup summary | ||
+ | |||
+ | ===Mesh=== | ||
+ | ipv4 unnumbered mpls traffic-eng Loopback0 | ||
+ | ipv4 prefix-list PE | ||
+ | 10 permit 10.0.0.1/32 | ||
+ | 20 permit 10.0.0.2/32 | ||
+ | ! | ||
+ | mpls traffic-eng | ||
+ | auto-tunnel mesh | ||
+ | group 1 | ||
+ | attribute-set PE | ||
+ | destination-list PE | ||
+ | ! | ||
+ | tunnel-id min 1000 max 1499 | ||
+ | ! | ||
+ | attribute-set auto-mesh PE | ||
+ | logging events lsp-status state | ||
+ | signalled-bandwidth 100 class-type 0 | ||
+ | autoroute announce | ||
+ | fast-reroute | ||
+ | record-route | ||
[[Category:Cisco]] | [[Category:Cisco]] |
Latest revision as of 10:45, 3 January 2020
Det finns olika tekniker för att göra TE i ett MPLS-nät. Det mest flexibla och skalbara är Segment Routing, se egen artikel.
Contents
RSVP
Resource Reservation Protocol (RFC 2205) är ett kontrollplansprotokoll (IP protokoll #46) designat för att reservera resurser genom ett nätverk. Hostar/routrar kan begära att få vissa QoS-nivåer av nätverket. RSVP reserverar resurser men det är upp till varje enhet att ha en QoS-teknik för att leverera bandbredden. Till skillnad från vanlig QoS som är per frame/paket är detta per flöde, se även Cisco QoS.
Resource Reservation Protocol - Traffic Engineering (RFC 3209) är en extension till RSVP som används för Traffic Engineering i MPLS-nät. Det fungerar både som MPLS label distribution protocol och MPLS signaling protocol. En ingress LSR kan använda RSVP-TE för att notifiera alla LSR:er längs pathen till egress att den vill sätta upp en LSP. Bandbredd kan då allokeras genom hela MPLS-nätverket. RSVP är unidirectional och det sätts upp en LSP per riktning. Det fungerar både med IPv4 och IPv6. Default kommer MPLS-TE tunnlar att föredra TE metric value över IGP metric för deras dynamiska path selection. Dock är TE metrics tagna ifrån IGP metric default.
Paket
- Path messages: används av ingress LSR för att begära LSP setup hop-by-hop längs hela pathen.
- Resv messages: används av egress LSR för att svara på Path message från ingress.
För att hålla LSP aktuell skickas periodvis PATH refresh och RESV refresh meddelanden. Om det inte finns tillräckliga resurser att tillgå någonstans längs vägen kommer den LSR:en att besvara ingress LSR som då får hitta en annan väg eller misslyckas med LSP-uppsättningen.
Konfiguration
RSVP konfigureras på alla enheter genom nätverket och enableas på alla interface flödena ska traversera. Det behöver inte köras på alla enheter för att det ska funka men då kan man inte reservera bandbredd på dem heller.
interface Gi2 ip rsvp bandwidth 1000 100 #kbps
Om man inte specificerar total bandbredd och per-flow bandbredd kommer 75% av interfacets bandbredd kunna reserveras av ett enskilt flöde.
Verify
show ip rsvp show ip rsvp interface show ip rsvp reservation
Om man kör LLQ/CBWFQ bör man stänga av RSVPs WFQ och klassificering.
ip rsvp resource-provider none ip rsvp data-packet classification none
Traffic Engineering
MPLS TE är unidirectional tunnels från source (head-end) till destination (tail-end) i form av LSP:er som används för att forwardera trafik. RSVP-TE Explicit Route Object (ERO) är pathen för MPLS LSP som inkluderar en sekvenserad lista av LSR:er som LSP:n måste passera igenom mellan ingress och egress LSR. RSVP-TE använder pathen som beskrivs i ERO för att signalera och sätta upp LSP:n. Pathen kan vara admin specified eller automatiskt uträknad på headend utifrån en algoritm som constrained shortest path first (CSPF). Det finns strict path och loose path. Ingen LDP behövs.
Traffic Parameter Attributes:
TE metric, Maximum bandwidth, Maximum reservable bandwidth, Unreserved bandwidth, Administrative group.
En sak som är bra att känna till med RSVP-TE är att om den primära vägen går ner (oavsett om det finns FRR eller inte) så kommer inte trafiken att skifta tillbaka till den ursprungliga vägen direkt efter att felet är åtgärdat. Det krävs att head-end signalerar berörd LSP igen (kollar om det finns en mer optimal väg). På både IOS och IOS XR sker detta periodiskt varje timme som standard. Det går även att signalera om en LSP manuellt. Om det finns en bättre väg kommer trafiken att skiftas över till den med MBB (make before break).
Konfiguration
mpls traffic-eng tunnels
Per interface, detta måste konfas på alla core-interface.
interface gi2 mpls traffic-eng tunnels ip rsvp bandwidth
IGP, OSPF använder opaque LSA:er och IS-IS använder nya TLV:er för att skicka TE attribut.
router ospf 1 mpls traffic-eng router-id Loopback0 mpls traffic-eng area 0 router isis 1 mpls traffic-eng router-id Loopback0 mpls traffic-eng level-2
Tunnel. För att tunneln ska användas måste man routa över den, detta kan t.ex. göras med statisk routing eller autoroute. Eftersom det inte är en vanlig GRE-tunnel uppstår ingen recursive routing. Record route används för loop detection.
interface Tunnel0 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination x.x.x.x tunnel mpls traffic-eng path-option 1 dynamic tunnel mpls traffic-eng autoroute destination tunnel mpls traffic-eng record-route
Verify
show mpls traffic-eng tunnel show ip rsvp interface show ip route show ip rsvp reservation detail traceroute mpls traffic-eng tunnel 0
Dry run
show mpls traffic-eng topology path destination 10.10.10.10 bandwidth 50000 show mpls traffic-eng link-management admission-control
Logging, detta är för att skicka traps.
mpls traffic-eng logging lsp mpls traffic-eng logging tunnel
Auto-Bandwidth
Med auto-bw mäter routern själv trafikmängden på tunneln periodiskt. Sedan kan olika bw-reservationer signaleras allt eftersom utifrån tunnels behov. Med statistics interval kan man t.ex. mäta LSP:n i 60 sekunder och sedan fatta ett beslut. Man bör känna till att auto-bw inte funkar klockrent med burstig trafik eftersom det inte alltid är så snabbt i förändring. Underflow och Overflow är tröskelvärden för event-baserad statistikinsamling. Detta är inte heller alltid supersnabbt vid förändring. Det är rekommenderat att köra: tunnel load-interval < global sampling frequency < tunnel adjust frequency.
int tun0 tunnel mpls traffic-eng auto-bw
Notera att senaste requested/signaled bandwidth sparas i running config.
TE - inter-area/multi-level
IOS implementerar Inter-Area MPLS TE genom att definiera ett Explicit Route Object (ERO), dvs en explicit-path som innehåller adresser till ABR eller L1/L2-router som ett loose hop i path:en. Detta resulterar i en pseudo-dynamic path calculation där Head End dynamiskt kalkylerar cSPF till sin exit ABR. Den kommer sedan dynamiskt kalkylera exit path till nästa ABR och så vidare tills man har nått tail end. Detta uppnås genom en loose hop expanderas i den fullt definierade explicita path:en, dvs Head End och ABRs definierar de hop som finns i den egna lokala flooding domain.
ip explicit-path name INTER_AREA_TE enable next-address loose <ABR1> next-address loose <ABR2>
Autotunnel - Fast Reroute
RSVP-TE kan använda sig av backup LSPer för snabbare konvergens. Med hjälp av autotunnel backup kan dessa autoskapas efter behov och man behöver därmed inte assigna något till protected interfaces. Dynamiska backup NHOP/NNHOP tunnels skapas när en LSP requestar FRR protection, dvs tunnel signaleras när det finns något aktivt flöde som ska skyddas och det finns alternativa vägar. FRR föredrar NNHOP över NHOP backup tunnels om båda finns tillgängliga. För NNHOP FRR måste man ha record route.
PLR
mpls traffic-eng auto-tunnel backup
Head-end
interface Tunnel0 tunnel mpls traffic-eng fast-reroute
SRLG
SRLG-information distribueras med IGP och funkar endast för backup tunnels som är skapade av Autotunnel backup.
interface Gi0/1 mpls traffic-eng srlg 1 mpls traffic-eng srlg 2 ! interface Gi0/2 mpls traffic-eng srlg 2 mpls traffic-eng srlg 3 ! mpls traffic-eng auto-tunnel backup mpls traffic-eng auto-tunnel backup srlg exclude force
Autotunnel - Mesh
Autoskapa tunnlar till alla PE:s som finns med i en acl.
mpls traffic-eng auto-tunnel mesh interface Auto-Template1 ip unnumbered Loopback0 tunnel mode mpls traffic-eng tunnel destination access-list 1 access-list 1 permit 1.1.1.1 access-list 1 permit 1.1.1.2
Primary, configure tunnels to directly connected neighbors.
mpls traffic-eng auto-tunnel primary onehop
Inter-AS TE
Med ASBR Forced Link Flooding kan man låta länkar som inte är med i IGP att installeras i TE database som point-to-point. Man konfigurerar länken som passiv för MPLS TE och anger neighbor TE-ID och ip-adress.
mpls traffic-eng passive-interface nbr-te-id 1.1.1.2 nbr-if-addr 10.0.0.2 nbr-igp-id isis 49.0000.0000.0002.00
Multicast
Om man routar multicast i sitt core samtidigt som man kör MPLE-TE med autoroute announce kommer RPF att titta på fel best path. Workaround är att slå på att IGP håller två set med best paths under SPF calculation, en för unicast (TE tunnels och physical interfaces) och en för multicast (endast physical interfaces).
router ospf 1 mpls traffic-eng multicast-intact
IOS-XR
Auto-Tunnel Backup
ipv4 unnumbered mpls traffic-eng lo0 mpls traffic-eng auto-tunnel backup tunnel-id min 6000 max 6500 ! interface GigabitEthernet0/0/0/0 auto-tunnel backup
Verify
show mpls traffic-eng auto-tunnel backup summary
Mesh
ipv4 unnumbered mpls traffic-eng Loopback0 ipv4 prefix-list PE 10 permit 10.0.0.1/32 20 permit 10.0.0.2/32 ! mpls traffic-eng auto-tunnel mesh group 1 attribute-set PE destination-list PE ! tunnel-id min 1000 max 1499 ! attribute-set auto-mesh PE logging events lsp-status state signalled-bandwidth 100 class-type 0 autoroute announce fast-reroute record-route