Vorige keer hebben we gezien hoe de netwerktopologie van SPB is opgebouwd en hoe we er meerdere virtuele Laag 2-netwerken op kunnen bouwen. Dus is het nu tijd om uit te leggen hoe verkeer van één eindpunt naar het andere eindpunt of een ander device gaat (zoals bij een firewall).
In het vorige artikel in deze serie hebben we vastgesteld dat een SPB-netwerk in principe is gebouwd met twee soorten switches: Backbone Edge Bridges (BEB's) en Backbone Core Bridges (BCB's). Naast het meebouwen aan de netwerktopologie zijn dit de vier meest basistaken van een BEB-node:
- Zodra een Ethernet-frame wordt ontvangen op een UNI-poort: uitzoeken bij welk virtuele netwerk het verkeer zou moeten horen.
- Bepalen waar het Ethernet-frame naartoe moet worden gestuurd. Met andere woorden, vaststellen wat de destination node is (waar de ontvanger is aangesloten) en welke interface het via het kortste pad naar die bestemming brengt.
- Het inpakken van het originele Ethernet-frame in een nieuw Ethernet-frame voordat het wordt verzonden. Dit proces wordt MAC-in-MAC encapsulation genoemd (en is, zoals eerder in de serie vermeld, gedefinieerd door de IEEE 802.1ah-standaard). Ethernet-in-Ethernet (of MAC-in-MAC) is een belangrijke eigenschap van SPB-netwerken en maakt onder andere hiërarchische Ethernet-adressering mogelijk (hierover later meer).
- Als een frame op de NNI-interface binnenkomt: het 'buitenste' Ethernet-frame verwijderen en het originele Ethernet-frame doorsturen naar de destination host (pc, server, firewall, enzovoort).
Voordat we de BEB-node verlaten en naar het volgende onderwerp doorgaan, is het handig om uit te leggen hoe de node weet waar de bestemming is aangesloten. Wel, de BEB-node leert welke end-nodes lokaal aan zich zijn verbonden (zelfs nodes die zijn verbonden met een gewone Ethernet-switch die op hun beurt verbinding maken met het BEB-node). Bovendien leert het ook over externe device van andere BEB’s die onderdeel zijn van hetzelfde virtuele Laag 2-netwerk.
Laten we de onderstaande figuur bekijken:
Aangezien de nodes BEB1, BEB2, BEB3 en BEB4 allemaal deel uitmaken van het groene virtuele netwerk, leren ze ook over de groene eindpunten die op dit virtuele netwerk zijn aangesloten. BEB1 leert bijvoorbeeld dat de stations PC11 en PC12 er rechtstreeks op zijn aangesloten. Bovendien leert hij van BEB2 ook dat PC21 en PC22 zijn aangesloten op BEB2, en van BEB3 leert hij dat PC31, PC32 en PC33 zijn aangesloten op BEB3. En tot slot leert het van BEB4 dat de server S1 is verbonden met BEB4. Dus als BEB1 verkeer ontvangt van PC11 met server S1 als bestemming, dan weet BEB1 automatisch dat het dit naar BEB4 moet sturen.
Goed, maar hoe zit het met de BCB-nodes?
Je zou kunnen denken dat een BCB-node een vrij rustig bestaan leidt. Het schakelt verkeer van de in-port waar het een frame ontvangt naar de out-port die zich op het kortste pad naar de bestemming bevindt. Dit is precies hoe Ethernet-switches werken; het enige verschil is dat SPB niet aan 'flooding and learning' doet zoals reguliere Ethernet-switches (en trouwens ook niet broadcasten). En dat is het zo'n beetje!
Toch moet er nog één dingetje geregeld worden: voorkomen dat er traffic looping plaatsvindt voor het geval er iets misgaat.
Als een BCB-node een frame ontvangt op een van zijn NNI-poorten, controleert het of het frame wordt ontvangen op de poort die zich op het kortste pad terug naar de afzender bevindt. Als dat het geval is, is alles in orde en wordt het frame gewoon doorgestuurd naar zijn bestemming. Zo niet, dan is er iets misgegaan en wordt het frame niet verder gestuurd, om een traffic loop te vermijden. Zoals je ziet zal verkeer in een SPB-netwerk dus nooit een loop vormen, en dus is de functie 'time-to-live' niet nodig in het geval dat het verkeer een bepaalde tijd in een loop terechtkomt.
Extreme Networks ExtremeSwitching VSP4900 48-port switch
Nu denk je misschien: ‘Als er geen ‘flooding and learning’ plaatsvindt in het SPB Ethernet, hoe leren de SPB-nodes dan over andere SPB-nodes in het netwerk?’ Of ‘hoe leren ze over hosts en apparaten die op het netwerk zijn aangesloten?’ Het eenvoudige antwoord is dat het de taak van IS-IS is om deze informatie te verspreiden. Natuurlijk hebben alle SPB-nodes een adres nodig (een Ethernet-adres om precies te zijn), en er zijn twee opties:
- De node gebruikt het basis MAC-adres dat tijdens de productie in de switch is geprogrammeerd, of
- je definieert je eigen adressen. Hier hebben we het voordeel dat we een adresseringsschema kunnen kiezen dat een goed beeld geeft van 'welke' en 'waar', ofwel welk type node het is en waar het zich bevindt. Dit is vooral handig als je het netwerk (om de een of andere reden) zou moeten troubleshooten. Of als je moet weten in welke richting bepaald unicast- en multicast-verkeer wordt geleid (tenminste als de leverancier het toestaat deze informatie uit de switches te halen).
Wat zijn de voordelen van Extreme Fabric Connect voor jouw organisatie? Bekijk onze Fantastic Fabric Show!
En hoe gaat verkeer van de ene host naar de andere?
Laten we het vorige netwerkdiagram opnieuw bekijken. Stel dat PC11 wil communiceren met server S1.
PC11 stuurt een IP-pakket naar S1. Als dit de eerste communicatie is (en ervan uitgaande dat PC11 het IP-adres van S1 al kent), zal PC11 een ARP-verzoek sturen om het MAC-adres van S1 te leren. Dit ARP-verzoek wordt door BEB1 gemulticast naar alle BEB-nodes die onderdeel zijn van het groene virtuele netwerk (wat inhoudt dat BEB2, BEB3 en BEB4 die zullen ontvangen). BEB2, BEB3 en BEB4 zenden het dan uit naar alle groene zenders. S1 stuurt een ARP-antwoord dat BEB4 ontvangt. Wetend dat het ARP-verzoek via BEB1 kwam, zal BEB4 dit ARP-antwoord doorsturen naar BEB1, die het op zijn beurt (nadat het buitenste Ethernet-frame is verwijderd) zal doorsturen naar PC11. PC11 kan het IP-pakket nu inpakken in een Ethernet-frame dat het MAC-adres van S1 als bestemmingsadres heeft (en zijn eigen MAC-adres als het bronadres). PC11 stuurt dit Ethernet-frame naar BEB1. En zoals we al hebben gezien, zal BEB1 dit frame inpakken in een nieuw Ethernet-frame en – nadat hij heeft vernomen dat S1 is verbonden met BEB4 – zal hij het MAC-adres van BEB4 gebruiken als bestemmingsadres, en het frame via de interface op het kortste pad verzenden naar BEB4. Alle nodes tussen BEB1 en BEB4 kijken alleen naar het MAC-adres van de bestemming (dat is het MAC-adres van BEB4) en sturen het door naar de interface die zich op het kortste pad naar BEB4 bevindt. Na ontvangst van dit frame, zal BEB4 het buitenste Ethernet-frame verwijderen en het originele Ethernet-frame doorsturen naar S1.
Klinkt het ingewikkeld? Het valt wel mee, dit diagram verduidelijkt alles:
In de bovenstaande figuur zie je dat we de term B-DA en B-SA gebruiken in de Ethernet-adresseringsvelden. Dit zijn MAC-adressen die we al kennen uit de tijd van het Ethernet; we gebruiken gewoon de notatie B-DA en B-SA om aan te geven dat dit het MAC-adres van de bestemming is en bron van de backbone (dus van het SPB-netwerk).
Nog één ding: de buitenste Ethernet-header heeft een veld dat een ‘normaal’ Ethernet-frame niet heeft: het I-SID veld.
Het I-SID veld is een service identifier, of virtual network identifier, en is cruciaal voor SPB-technologie. In het bovenstaande voorbeeld identificeert hij het groene netwerk. Het I-SID-bestand is 24-bits, waardoor we 16.777.215 virtuele netwerken kunnen definiëren. Sommige zijn gereserveerd, dus houden we het voor de goede orde op 16 miljoen (dat zou voldoende moeten zijn voor de meeste implementaties). Zoals je waarschijnlijk al door hebt: een I-SID is uniek in de wereld. En bij virtuele Laag 2-netwerken, zoals we hebben gezien aan de rand van het SPB-netwerk, zijn I-SID's gekoppeld/toegewezen aan VLAN's.
Volgende keer in ‘Shortest Path Bridging voor beginners’: