Utmaningar vid lastbalansering

Conscia-Netsafe-Lastbalansering-Daniel-DibUnder det senaste året har jag jobbat mycket med IWAN som är Ciscos SD-WAN-implementation (före Viptela-förvärvet). En av fördelarna med SD-WAN är att kunna lastbalansera trafik. Lastbalansering är dock inte alltid helt trivialt. Varför inte?

Jämn paketfördelning – ECMP

Om du har ett kontor där du har två MPLS- eller två internetförbindelser och de båda har samma bandbredd, då är lastbalansering enkelt. Eller åtminstone relativt enkelt. Låt oss säga att du har ett kontor med två 100 Mbit/s internetförbindelser. Det innebär att vi kan tillämpa equal cost multi pathing (ECMP). Om ett flöde hamnar på länk A eller länk B spelar ingen roll. Flödet kommer att ha lika stor möjlighet att utnyttja den bandbredd som det behöver på endera länken. Nu finns det fortfarande några saker vi måste överväga, även när det gäller ECMP.

Flödenas storlek – Vissa flöden kommer att vara mycket större än andra, till exempel överföring av filer via CIFS eller andra protokoll, nedladdning av något från internet, jämfört med t.ex. Citrix-trafik, som i allmänhet består av mindre paket och inte kräver mycket bandbredd.

Antal flöden – När lastbalansering utförs av ECMP, kommer någon form av hashing-algoritm att användas för att bestämma på vilken länk flödet placeras. Detta görs normalt genom att titta på sändar- och destinations-IP och kan i vissa fall lägga till mer entropi genom att också titta på portnummer. Om vi bara har ett fåtal flöden så kanske inte dessa fördelas så jämnt på länkarna.

För att få ECMP att dela lasten väl, det vill säga att länkarna har en liknande utnyttjandegrad, behöver vi ha tillräckligt många flöden för att öka sannolikheten att en balans uppnås där det finns stora flöden på bägge länkar. ECMP är förhållandevis enkelt men vi kan behöva övervaka länkutnyttjandet och ta med det i beräkningen när vi bestämmer vilken länk ett flöde skall tilldelas.

Ojämn paketfördelning – UCMP

Lastbalansering -paketfordelningTänk nu att vi har en annan situation där länk A är 100 Mbit /s och länk B är 10 Mbit/s. Det betyder att vi måste göra unequal cost multi pathing (UCMP). Nu stöddes detta inte riktigt tidigare i andra protokoll annat än i EIGRP, även om det fanns avancerad konfiguration i BGP för att göra något liknande. Det har inte varit vanligt att använda UCMP innan SD-WAN, därför har jag inte råkat ut för den situation som jag kommer att beskriva nedan.

När vi inte har samma bandbredd på alla länkar blir det hela en betydligt större utmaning. Att tilldela ett flöde till en länk görs i början av flödet, vilket exempelvis kan innebära att en TCP-session håller på att upprättas. I början av flödet vet vi inte hur stort flödet kommer att bli. Det här kan vara ett litet flöde såsom SSH eller så det kan vara en stor fil som laddas ner. Om flödet placeras på 10 Mbit s-länken, kan flödet aldrig växa över 10 Mbit/s.

Om användarna innan de flyttades till SD-WAN hade en active/standby konfiguration, kunde de alltid använda upp till 100 Mbit s, men när man gör UCMP, finns det totalt 110 Mbit/s tillgängligt och om en användare hamnar på ”fel” länk så kan flödet komma att ”straffas” eftersom det inte kan växa tillräckligt.

Alternativa lösningar vid lastbalansering

Även om vi övervakar länkutnyttjandet kan vi aldrig uppnå en perfekt balans eftersom vi inte kan förutsäga storleken på flöden. Ett alternativ för att lösa det här kan vara att flytta flöden när de växer förbi en viss storlek. Utmaningen blir då hur man flyttar flödena och att inte flytta dem för ofta vilket skulle kunna orsaka omberäkningar och eventuellt paketförluster. Flyttar du flödet tillbaka igen när det minskar i storlek? UCMP är betydligt komplexare än ECMP.

Ett annat alternativ är att göra lastbalansering per paket men det är mycket mer komplicerat och kan leda till en förändrad paketordning. För att få detta att fungera behövs ytterligare intelligens, så att en router vet när paket kommer in i routern i vilken ordning de ska skickas ut. Det finns vissa SD-WAN-implementationer idag som kan detta, men var medveten om att detta är en väldig komplex funktion.

Daniel-Dib-Conscia-Netsafe-Cisco-ChampionNär du överväger SD-WAN från olika leverantörer bör du tänka på hur allt detta fungerar. Var inte rädd för att ställa de svåra frågorna. Ovanstående situation kan lindras något genom att välja passande länkar till olika typer av applikationer. Poängen med detta inlägg är att även med mer intelligenta lösningar måste du fortfarande göra designval och överväga vad din viktigaste trafik är.

Jag och mina kollegor står gärna till tjänst om du har frågor kring bästa lastbalansering för din verksamhet, kontakta oss.

/Daniel Dib
Sr Network Architect,
CCIE #37149 CCDE #20160011
Conscia Netsafe

Ovanstående artikel publicerades ursprungligen på engelska av Daniel i bloggen Lostintransit.

Kontakta oss!
Svar inom 24h