BGP in de praktijk SNE master 19-03-2009 19 maart 2009, SURFnet <[email protected]> 40 minuten voor: Routering in sneltreinvaart protocollen de termen principes op Internet Implementatie in SURFnet netwerk routering met klanten routering met “buitenwereld” Optimalisaties Convergentie tijden SURFnet – SNE masters BGP in de praktijk Routering IP pakketje Van source naar destination Via “beste” pad Moet heel en op tijd aankomen! SURFnet – SNE masters BGP in de praktijk Routering Network f Int 0 Int 2 int0 Route i: directely connected Router … i RouteNetwork j: via interface3 Int 0 Int 3 Route g: directly connected int0 Route f: via interface1 Route h: via interface2 Int 1 A Route i: via interface 2 [1] Via interface1 [2] Route j: via interface2 [1] Via interface1 [2] Int 1 Int 1 Router C Int 2 Router B Route h: directely connected int0 Route j: via interface2 [1] via interface1 [2] … Int 2 Int 1 Int 2 Router E Int 0 Network j SURFnet – SNE masters BGP in de praktijk Router D Int 0 network h Int 1 Int 2 network g Int 0 Routering basics Routering heeft als doel forwarding packets Route = info volgende hop naar destination Statische routering direct gekoppelde netwerken met de hand Routeringsprotocollen (dynamisch) IGP’s (RIPng, OSPF, IS-IS) EGP (BGP) Netwerk = prefix + mask (CIDR block) 192.87.106.0/23 2001:610:580:109::/64 Routing table SURFnet – SNE masters BGP in de praktijk forwarding table Routering AS-en Autonomous Systems “Connected group of one of more IP prefixes run by one or more network operators which has a single and clearly defined routing policy” [RFC1930] Routing policy Bepaalt routeringbeslissingen Uitwisseling van routeringsinformatie AS nummer 1-65535 (2-bytes) bijv. AS1103 Uitgebreid tot 4-bytes [RFC4893] bijv. AS3.5 of AS196613 Routeringsprotocol tussen AS-en: BGPv4 [RFC4271] SURFnet – SNE masters BGP in de praktijk Inter AS routering UPDATE message UPDATE message prefix prefix AS1 prefix iBGP Int 1 prefix prefix prefix prefix AS4 prefix AS2 prefix prefix Int 2 prefix prefix Int 1 AS5 AS3 prefix prefix = AS-path AS4 AS3 AS2 = AS-path AS4 AS1 AS2 SURFnet – SNE masters BGP in de praktijk prefix UPDATE UPDATE message message eBGP BGP BGP connectie is TCP sessie (port 179) Uitgewisselde informatie (NLRI) Algoritme om “beste” pad te kiezen komt in routing table doorgestuurd naar andere peers Prefix heeft aantal attributen voor beslissing beste pad Elke prefix “leeft” in 1 AS (Origin) SURFnet – SNE masters BGP in de praktijk BGP Best Path Selection 1. Select a path with a reachable next hop. 2. Select the path with the highest weight. 3. If path weights are the same, select the path with the highest local preference value. 4. Prefer locally originated routes (network routes, redistributed routes, or aggregated routes) over received routes. 5. Select the route with the shortest AS-path length. 6. If all paths have the same AS-path length, select the path based on origin: IGP is preferred over EGP; EGP is preferred over Incomplete. 7. If the origins are the same, select the path with lowest MED value. 8. If the paths have the same MED values, select the path learned via EBGP over one learned via IBGP. 9. Select the route with the lowest IGP cost to the next hop. 10. Select the route received from the peer with the lowest BGP router ID. Zelfde prefix, meerdere paden Attributen aanpassen bij adverteren naar peers beïnvloeden keuze in peer AS-en SURFnet – SNE masters BGP in de praktijk SURFnet setup Border Routers BGP routering SURFnet Default route 0.0.0.0/0 AS1103 Statische Routering (VRRP) klant netwerk Core Routers Klant Prefix(en) klant netwerk klant netwerk klant netwerk SURFnet – SNE masters BGP in de praktijk klant netwerk klant netwerk SURFnet BGP klant Border Routers SURFnet AS1103 Klant Prefixen SURFnet – SNE masters BGP in de praktijk policy-statement UNIMAAS_Mt001A_1-v4-in { term klantprefixen { from { route-filter 137.120.0.0/16 exact; route-filter 145.29.0.0/16 exact; } then next policy; } then reject; } klant netwerk Routing policy naar klant LP = localpref (Higher is better) Klant netwerk Tertiary Quaternary Primary M=30 LP=500 M=10 Secondary M=20 LP=460 LP=400 M=40 M = Metric or MED=Multi-ExitDiscriminator (lower is better) policy-statement customers-primary-in { then { local-preference 500 LP=420 } } policy-statement customers-primary-out { then { metric 10; } AS1103 } SURFnet – SNE masters BGP in de praktijk SURFnet routing policy Customer with default Customer with ASSURFnet Tertiary LP=420 M=30 Customer with Full routing Customers Secondary LP=460 M=20 Primary LP=500 M=10 Transit via AMS-IX Quaternary LP=400 M=40 Research Networks (SINET/ NLR) LP=300 LP=300 LP=360 AS1103 SURFnet6 Backbone LP=130 IP Upstream Prim GÉANT2 M=10 M=20 LP=200 Load balancer LP=140 Sec LP=200 LP=160 M=20 AS Prepend 1103 1103 Internet2 LP=160 M=10 AMS-IX Peerings Private Peerings LP = localpref M = Metric SURFnet – SNE masters BGP in de praktijk BGP world around SURFnet AS286 AS3303 AS1140 AS3246 AS20507AS15542 AS1257 AS1901 AS1102AS24646 AS1273AS6453 AS9132 AS174 AS6830 AS1161 AS15670 AS8951 AS5413 AS2818 AS1890 AS16237 The Internet AS34106 AS3291 AS1200 AS1888 AS10764 SURFnet AS1103 AS702 AS1124 AS6509 AS5506 AS8840 AS112 AS1128 AS6200 AS6461 AS1139 AS20847AS5669 AS2907 AS8209 AS4513 SURFnet – SNE masters BGP in de praktijk AS28836 AS8642 AS293 AS2611 AS2529 AS6774 AS8918 AS1104 Optimalisaties BGP - Router stuurt (met standaard Juniper timers) elke 30 seconden keepalive berichten - Verklaart BGP sessie onbruikbaar als na 3x keepalive-time (90 seconden hold-time) geen keepalive, update of notification is ontvangen - Met name probleem als interfaces aan beide uiteinden verbinding niet down gaan. SURFnet – SNE masters BGP in de praktijk Optimalisaties - Aanpassen BGP timers - Minimale timers in Junos 6 seconden keepalives, 18 seconden hold-timer - Huidige timers in SURFnet 10 seconden keepalives, 30 seconden holdtimer Reductie van 90 seconden naar 30 seconden onderbreking SURFnet – SNE masters BGP in de praktijk Optimalisaties - VRRP nog steeds sneller! - VRRP verstuurd elke seconde (met standaard Juniper timers) een master advertisement - Verklaart master onbereikbaar na 3 x advertisement interval + skew time - Outage maximaal tussen 3-4 seconden SURFnet – SNE masters BGP in de praktijk Optimalisaties - BFD - BFD voor BGP BFD opnieuw een hello protocol - pakketten verzonden met regelmatige interval - buurman onbereikbaar verklaard als er geen BFD pakketten meer ontvangen worden. Twee varianten in de huidige versie (1.0) - Normal mode - Echo mode SURFnet – SNE masters BGP in de praktijk BFD Async Mode - Control packets flow in each direction BFD Echo Mode - Control packets flow in each direction - Echo packets loop through remote system - Control packet flow is slower 20 BFD configuratie - Op Bor.surf.net (Core router@SARA) Show bfd session detail Show configuration protocol bgp group customersprimary neighbor 145.145.16.10 SURFnet – SNE masters BGP in de praktijk Vragen? SURFnet – SNE masters BGP in de praktijk