Spine-leaf architektúra az adatközpontban

Miért váltja ki a spine-leaf a háromrétegű adatközponti hálózatot, hogyan oszlik el a forgalom ECMP-vel, és mit ad hozzá a VXLAN és az EVPN.

Téma
Hálózat
Szerző
ARLITECH szakértői csapat
Megjelent

Az adatközponti hálózatokat sokáig úgy tervezték, mintha a forgalom zöme kívülről érkezne és oda is térne vissza: a felhasználó kérése beér, a szerver válaszol. A virtualizáció, a több rétegre bontott alkalmazások és a hálózaton át elért tárolók óta a csomagok többsége a szerverek között mozog. Egy weboldal betöltése mögött az alkalmazásszerver adatbázist kérdez le, gyorsítótárat olvas, naplót ír, közben a virtuális gépek a fizikai gazdagépek között költöznek, a tároló pedig egy másik rackbe replikál. A spine-leaf topológia erre a forgalmi képre épül.

A háromrétegű hálózat és a kelet-nyugati forgalom

A klasszikus adatközponti hálózat három rétegből áll. A szerverek a hozzáférési kapcsolókra csatlakoznak, ezek felfelé egy elosztó (aggregációs) kapcsolópárra, az elosztó blokkok pedig a maghálózatra. A második rétegbeli tartomány jellemzően az elosztó rétegig ér, ott van a VLAN-ok alapértelmezett átjárója is. A redundáns felfelé vezető kapcsolatok közül a feszítőfa-protokoll a hurkok elkerülése miatt egyet blokkol, így a kiépített kapacitás egy része tétlenül vár egy hibára.

A szakma két irányt különböztet meg. Az észak-déli forgalom az adatközpontba belépő és onnan kilépő forgalom, a kelet-nyugati a szerverek egymás közötti forgalma. A háromrétegű modell az előbbire készült, és a kelet-nyugati forgalomnál több gyenge pontja látszik:

  • Az út hossza attól függ, hol áll a két szerver. Ha ugyanazon a hozzáférési kapcsolón, egy ugrás elég, ha két különböző elosztó blokkban, a forgalom a maghálózaton át jut célba. A késleltetés és az elérhető sávszélesség így szerverpáronként más.
  • Az elosztó réteg szűk keresztmetszet. Minden blokkon belüli útválasztás és minden blokkok közötti átvitel rajta halad át, ezért bővíteni többnyire csak nagyobb eszközre cserélve lehet.
  • A virtuális gépek költöztetéséhez ugyanaz a VLAN kell több helyen, ezért a második rétegbeli tartomány idővel az egész adatközpontra kiterjed. Ezzel nő a szórásos forgalom, és egy hurok vagy egy hibás eszköz az egész tartományt megbéníthatja.

Spine és leaf: minden leaf minden spine-hoz

A spine-leaf hálózatnak két rétege van. A leaf kapcsolók a rackekben állnak, rájuk csatlakozik minden, ami a hálózatot használja: szerver, tároló, tűzfal, terheléselosztó, a külvilág felé vezető útválasztó. A spine kapcsolók csak a leafeket kötik össze. A felépítés néhány egyszerű szabályon múlik:

  • Minden leaf minden spine-hoz kapcsolódik, azonos sebességű linkkel.
  • A spine-ok nem kapcsolódnak egymáshoz, és a leafek sem egymáshoz, kivéve egy esetleges összekötő kapcsolatot két leaf között, amelyre a szerverek kettős bekötése épül.
  • A spine-ra semmi más nem csatlakozik, végpont sem, külső kapcsolat sem.

Az elv nem új. Charles Clos 1953-ban a Bell System Technical Journalban írta le a többfokozatú kapcsolóhálózatot, amelyet akkor telefonközpontokhoz terveztek. A spine-leaf ennek egy „összehajtott” változata: a bemeneti és a kimeneti fokozat ugyanaz a leaf réteg, középen a spine-ok állnak.

A szabályokból következik a topológia legfontosabb tulajdonsága. Bármely két leaf között az út leaf, spine, leaf, vagyis mindig ugyanannyi ugrás, és minden spine egy-egy egyenrangú útvonalat ad. A késleltetés kiszámítható, a két leaf közötti kapacitás pedig a leaf felfelé vezető linkjeinek összege, akárhol áll is a két rack.

Egy spine kiesése sem változtat a topológián. Ha négy spine van, egy kiesése után a leafek közötti kapacitás negyedével csökken, a forgalom a maradék hármon fut tovább, a többi eszköznek nem kell semmit újraszámolnia a megszűnt útvonalak törlésén túl. Ugyanez teszi lehetővé, hogy egy spine-t karbantartás vagy frissítés miatt üzem közben ki lehessen venni.

Különleges szerepű leafek

A harmadik szabály miatt a külvilág is leafen keresztül érkezik. A border leaf köti a hálózatot az internethez, a WAN-hoz és a campus hálózathoz, a service leafre a tűzfalak és a terheléselosztók kerülnek. Kisebb hálózatban a kettő ugyanaz a kapcsolópár.

Útválasztás a gerincben: ECMP

A leafek és a spine-ok közötti linkek harmadik rétegbeli, pont-pont útválasztott kapcsolatok. Közöttük nincs feszítőfa, nincs blokkolt port, a második rétegbeli tartomány a leafnél véget ér. Minden linknek saját kis alhálózata van (IPv4-en gyakran /31-es, amit az IETF RFC 3021 tesz lehetővé), és minden kapcsoló kap egy loopback címet, amely az azonosítója a hálózatban.

Az underlay, vagyis az alap szállítóhálózat útválasztására OSPF, IS-IS vagy BGP szolgál. Az IETF RFC 7938 (2016) részletesen leírja, hogyan lehet egy nagy adatközpontot kizárólag eBGP-vel működtetni. A protokoll megválasztásánál fontosabb, hogy minden leaf minden spine-on keresztül megtanulja a többi leaf loopback címét, mert így jön létre a fent leírt, spine-onként egy-egy egyenrangú útvonal.

Hogyan oszlik el a forgalom

Az ECMP (Equal-Cost Multi-Path) azt jelenti, hogy a kapcsoló egy célhoz az összes egyenlő költségű következő ugrást a továbbítási táblájába teszi, és a forgalmat ezek között osztja szét. Az elosztás folyamatonként történik: a kapcsoló a csomag fejlécének mezőiből, jellemzően a forrás- és célcímből, a protokollból és a portszámokból hash-értéket képez, és ez dönti el, melyik linken megy a folyamat. Így egy kapcsolat csomagjai mindig ugyanazon az úton haladnak, és nem érkeznek rossz sorrendben. A hash-alapú elosztás viselkedését az IETF RFC 2992 (2000) elemzi.

Ennek a módszernek ismert korlátai vannak:

  • Egy folyamat egy link sebességét kapja meg. Egy nagy mentés vagy tárolóreplikáció hiába fut négy spine-os hálózaton, egyetlen TCP-kapcsolatként egyetlen linket használ.
  • Kevés, de nagy folyamatnál az elosztás egyenetlen lehet. Ha két nagy folyamat ugyanarra a hash-értékre esik, az egyik link telítődik, a másik közben üres.
  • Ha a forgalom több elosztó fokozaton halad át, például a lent tárgyalt ötfokozatú felépítésben vagy két kapcsoló közötti párhuzamos linkeken, és minden fokozat ugyanazzal a hash-függvénnyel dönt, a második fokozatban a forgalom már nem oszlik szét újra. Az alap háromfokozatú hálózatban ez ritkán jelentkezik, mert a spine-ról a cél-leaf felé többnyire egyetlen link vezet. A jelenséget a hash-függvény fokozatonkénti eltérő beállítása kezeli.

Hibaészlelés

Ha egy optikai link fizikailag megszakad, a kapcsoló azonnal érzékeli, és törli az útvonalat. Van azonban olyan hiba, amelynél a port fent marad, csak a csomagok nem jutnak át, például egy csak az egyik irányban hibás optikai modulnál. Ilyenkor az útválasztó protokoll a saját időzítőire vár, ami alapértelmezett beállítással több tíz másodperc, BGP-nél másfél perc is lehet (az IETF RFC 4271 90 másodperces tartási időt javasol). A BFD (Bidirectional Forwarding Detection, IETF RFC 5880, 2010) a szomszédok között sűrűn küldött rövid üzenetekkel ennél sokkal gyorsabban jelzi a kiesést, utána a hash a megmaradt linkekre osztja a forgalmat.

Overlay: VXLAN és EVPN

Az útválasztott underlay a második rétegbeli tartományt a leafnél lezárja. Az alkalmazásoknak viszont gyakran szükségük van rá, hogy ugyanaz az alhálózat több rackben is elérhető legyen, és egy virtuális gép a költözés után megtartsa az IP-címét. A másik korlát a VLAN-azonosító mérete: az IEEE 802.1Q szerint 12 bites, ami 4094 használható VLAN-t jelent, és ez több bérlős környezetben kevés lehet.

VXLAN

A VXLAN (IETF RFC 7348, 2014) az eredeti Ethernet-keretet UDP/IP-csomagba csomagolja, és így az útválasztott underlay-en szállítja egyik leaftől a másikig. A csomagolást és a kicsomagolást a leafen futó VTEP (VXLAN Tunnel End Point) végzi. A második rétegbeli szegmenst a 24 bites VNI azonosítja, ez nagyjából 16 millió szegmenst tesz lehetővé. Az underlay ebből csak annyit lát, hogy két leaf loopback címe között UDP-csomagok mennek a 4789-es célportra.

Két részlet a tervezésnél is számít. A külső fejléc IPv4 esetén 50 bájttal növeli a csomagot, ezért az underlay MTU-ját meg kell emelni, különben a teljes méretű keretek eldobódnak vagy töredezve érkeznek. A szabvány javaslata szerint a VTEP a külső UDP forrásportot a belső keret fejlécéből képzett hash-ből választja, így a spine-ok ECMP-je a csomagolt folyamatokat is szétosztja a linkek között.

EVPN

A VXLAN önmagában csak a csomagolást írja le. Az eredeti megoldásban a VTEP-ek elárasztással és tanulással ismerték meg egymás mögött a MAC-címeket, ehhez jellemzően multicast kellett az underlay-ben, és az ismeretlen célú keretek minden leafre eljutottak. Az EVPN (IETF RFC 7432, 2015, VXLAN felett az IETF RFC 8365, 2018) ezt a vezérlősíkot BGP-re cseréli. Minden leaf BGP-üzenetben hirdeti a mögötte megtanult MAC- és IP-címeket, a többi leaf pedig ezekből előre tudja, hová kell küldenie a keretet.

  • A 2-es típusú útvonal egy MAC-címet és a hozzá tartozó IP-címet hirdeti. Ebből a leaf helyben meg tud válaszolni egy ARP-kérést, így a szórásos kérés nem megy végig a hálózaton (ARP-elnyomás).
  • A 3-as típusú útvonallal jelzik a leafek, mely VNI-kben érdekeltek, ezen az alapon jut el a szórásos és az ismeretlen célú forgalom csak oda, ahol szükség van rá.
  • Az 5-ös típusú útvonal (IETF RFC 9136, 2021) teljes IP-előtagot hirdet, például a border leaf mögötti külső hálózatokat.

Az EVPN-nel működik az elosztott átjáró is (IETF RFC 9135, 2021): minden leaf ugyanazzal az IP- és MAC-címmel játssza egy alhálózat alapértelmezett átjáróját. A szegmensek közötti útválasztás így már az első leafen megtörténik, és egy költöző virtuális gép az új helyén is ugyanazt az átjárót találja. Az RFC 7432 a szerverek két leafre kötését is szabványosan kezeli: a két leaf közös Ethernet-szegmens-azonosítót (ESI) kap, és a szerver felől egy linkaggregációs partnernek látszik.

Az overlay rugalmasságát egy újabb hibaréteg ellensúlyozza. Lehet, hogy az underlay-ben minden útvonal megvan, minden BGP-szomszédság él, az egyik VNI-ben mégsem jut át a forgalom, mert egy leafről hiányzik egy beállítás. A hibakereséshez mindkét réteget érteni kell, és a monitorozásnak is mindkettőt figyelnie kell.

Szegmentáció a gerinc szintjén

Az EVPN-alapú hálózatban két szinten lehet szegmentálni. A VNI egy második rétegbeli szegmens, a hagyományos VLAN megfelelője. A VRF (Virtual Routing and Forwarding) külön útválasztási tábla: az egyik VRF-ben lévő alhálózatok egyáltalán nem látják a másik VRF útvonalait. Két VRF között csak akkor jut át forgalom, ha valaki szándékosan átengedi.

Gyakori kiindulás, hogy a zónák mindegyike saját VRF-et kap: éles rendszerek, teszt és fejlesztés, mentés, felügyeleti hálózat, DMZ. A VRF-ek közötti forgalom a service leafen álló tűzfalon halad át, amely a szabályokat alkalmazza és naplóz. A zónán belüli finomabb elválasztásra a leafek hozzáférési listái vagy a gazdagépen, illetve a hipervizorban működő mikroszegmentálás szolgál. Hogy melyik zóna mivel kommunikálhat, azt a hálózat felépítése előtt érdemes rögzíteni; ehhez a belső hálózat szegmentálásáról szóló cikk ad kiindulópontot.

Amin a szegmentáció elcsúszhat

  • Útvonal-szivárogtatás. A VRF-ek között útvonalakat lehet átadni a tűzfal megkerülésével is. Egy kényelmi okból beállított átadás csendben megszünteti az elválasztást, ezért minden ilyet dokumentálni és rendszeresen átnézni kell.
  • Kifeszített második réteg. Ha egy VNI két telephelyre is átnyúlik, a két helyszín egy hibatartományba kerül: egy hurok vagy egy elárasztás mindkettőt érinti.
  • Elérhető vezérlősík. A bérlői VRF-ekből ne lehessen elérni az underlay címeit és a kapcsolók felügyeleti felületét. A BGP-munkameneteket hitelesíteni kell (például TCP-AO-val, IETF RFC 5925), és csak az ismert szomszédokkal szabad felépülniük.

A kapcsolók felügyelete külön, sávon kívüli hálózaton fusson. Így egy hibás konfiguráció után is be lehet lépni az eszközökre, és a felügyeleti forgalom nem keveredik az üzemi forgalommal.

Bővítés és túlfoglalási arány

A túlfoglalási arány egy leaf lefelé, a szerverek felé néző kapacitásának és a felfelé, a spine-ok felé vezető kapacitásának aránya. Ha minden szerver egyszerre teljes sebességgel küldene más rackbe, ennyiszer több forgalom érkezne a felfelé vezető linkekre, mint amennyit elvisznek. Néhány egyszerű példa:

Szerverportok a leafenFelfelé vezető linkekTúlfoglalási arány
48 × 25 Gbit/s = 1200 Gbit/s4 × 100 Gbit/s = 400 Gbit/s3:1
48 × 25 Gbit/s = 1200 Gbit/s6 × 100 Gbit/s = 600 Gbit/s2:1
32 × 100 Gbit/s = 3200 Gbit/s8 × 400 Gbit/s = 3200 Gbit/s1:1

Hogy mekkora arány elfogadható, azt a forgalom dönti el. Egy általános virtualizált környezetben a szerverek ritkán küldenek egyszerre teljes sebességgel, egy tárolóhálózat, egy replikációs fürt vagy egy AI-modellek tanítására épített gépcsoport viszont tartósan terheli a linkeket. A méretezés kiindulópontja ezért a meglévő rendszerek mért forgalma, és ha a leafek elég felfelé vezető portot tartanak szabadon, az arány később is javítható.

Hol vannak a bővítés korlátai

A spine-leaf hálózat vízszintesen bővül. Új rack esetén új leaf kerül be, és minden spine-ra bekötik, ehhez minden spine-on kell egy szabad port. A spine-ok portszáma így meghatározza, hány leaf fér a hálózatba. Új spine-nal a leafek közötti kapacitás nő, de ehhez minden leafen kell egy szabad felfelé vezető port, vagyis a leafek felfelé vezető portjainak száma szabja meg, hány spine lehet. A kapcsolók által kezelt egyenrangú útvonalak száma is felső korlát.

Ha a spine-ok portjai elfogynak, a hálózat podokra bontható: minden pod egy saját spine-leaf egység, a podok spine-jait pedig egy harmadik, super-spine réteg köti össze. Ez az ötfokozatú Clos-felépítés, amelyet az RFC 7938 is leír. A váltás tervezést igényel, ezért már az első kiépítésnél érdemes eldönteni, mekkora lehet egy pod.

A bővíthetőség a papírmunkán is múlik. A kábelezési terv minden rackből minden spine-hoz rögzített útvonalat ad, a címtervben előre ki van osztva a loopback és a pont-pont címtartomány a leendő leafeknek is, a konfigurációt pedig sablonból készítik, hogy az új leaf ugyanúgy nézzen ki, mint a többi. Az üzemeltetésnél a felfelé vezető linkek kihasználtságát érdemes linkenként figyelni: ha az egyik tartósan jóval terheltebb a többinél, az egyenetlen hash-elosztásra vagy egy hiányzó útvonalra utal.

Gyors önteszt: kérdezze le egy leaf kapcsolón, hány egyenrangú következő ugrás tartozik egy másik leaf loopback címéhez. Ha kevesebb, mint ahány spine van, valamelyik link vagy szomszédság hiányzik, vagy a többutas útválasztás nincs bekapcsolva (BGP-nél sok megvalósítás alapértelmezésben csak egy legjobb útvonalat telepít), és a hálózat kisebb kapacitással fut, mint amire tervezték.

Kapcsolódó szolgáltatás: Adatközponti és gerinchálózat →

Kapcsolat

Készen áll a kritikus rendszerei védelmére?

Szakértőink felmérik biztonsági helyzetét, és egy szervezetéhez illő útitervet dolgoznak ki.

Az ARLITECH gödöllői irodája

Látogasson meg minket

Gödöllői irodánkban személyesen is várjuk.

Cím
Centrum Irodaház, 2100 Gödöllő, Dózsa György út 13, 3. emelet 309
Helyi ügyfélfogadás
H–P 9:00–17:00
Útvonaltervezés (új lapon nyílik)