VLANy dla opornych cz. II

Po wielu tygodniach mam zaszczyt zaprezentować Państwu kolejną część artykułu traktującego o VLANach. Życzę owocnej lektury.

Wstęp II
Pierwszą część artykułu rozpoczęto próbą zidentyfikowania potrzeby powstania VLANów. Niniejsza, druga, część rozpoczyna się opisem rozwoju standardu w kontekście historycznym.

Rozwój standardu 802.1Q
Dawno dawno temu, w roku 1969, powstaje ARPANET będący kolebką Internetu. Kilkanaście lat później powstaje Ethernet, a w 1975r. Xerox zgłasza patent na Ethernet.
IEEE w odpowiedzi na potrzebę standaryzacji sieci lokalnej w 1980r. uruchamia grupę 802. Po pięciu latach (1985) Ethernet staje się standardem IEEE 802.3.
W 1990r. powstaje 10Base-T, czyli Ethernet na skrętce, a Polska uzyskuje dostęp do Internetu.
Rodzi się pomysł wirtualizacji, w tym przypadku wirtualizacji sieci, a w 1998r. IEEE publikuje standard 802.1Q, czyniąc Ethernet jednym z prekursorów wirtualizacji.
W 2005r. IEEE nowelizuje standard 802.1Q wprowadzając doń takie zmiany jak dodanie MSTP (Multiple Spaning Tree Protocol), czy przypisywanie do VLANu na podstawie protokołu i portu (np. http:80).
W 2011r. IEEE wprowadza kolejne zmiany, między innymi zastąpienie GARP (Generic Attribute Registration Protocol) przez MRP (Multiple Registration Protocol), QinQ (IEEE 802.1ad), czy definicje MIBów dla VLANów. Wszystkie zmiany znajdują się TU.

Dzięki wirtualizacji, zastosowanej w sieciach dokładnie z tych samych powodów, dla której stosuje się ją w przypadku serwerów, Ethernet stał się bardziej elastyczny. Razem ze zwiększeniem potencjalnych możliwości, Ethernet zaczął wysuwać się na pozycje lidera na rynku sieci lokalnych, królując u małych dostawców sieci. Ze względu na powszechność urządzenia Ethernetowe zaczęły tanieć.

VLANy to najdłuższa gałąź w IEEE 802.1. Faktem jest, że VLANy zostały stworzone specjalnie dla Ethernetu i znacznie zwiększyły jego możliwości. Co więcej, standard 802.1Q wchłania wiele innych standardów w całości lub w części jak np. opisany dalej GVRP.

Wszystko to nasuwa oczywisty wniosek: VLANy stymulują rozwój Ethernetu.

W poniższym tekście autor starała się przedstawić Państwu rozwój Ethernetu i istotną rolę VLANów z punktu widzenia posiadacza instalacji ethernetowej. Z punktu widzenia telekomunikacji rozwój Ethernetu wyglądał zgoła inaczej.
Na rynku telekomunikacyjnym powstanie Ethernetu było czystą ciekawostką. Ethernet, jako sieć bez gwarancji czasu dostarczenia ramki, nie mógł być brany pod uwagę jako technika wykorzystywana do przenoszenie głosu. Brak gwarancji zachowania kolejności dostarczania ramek oraz wątpliwa skalowalność to kolejne powody bagatelizowania wczesnego Ethernetu. Jednak rzeczą, którą najbardziej odpychała telekomunikantów był brak determinizmu w Ethernecie. Kolizja?? Losowy czas odczekiwany po kolizji? To rzeczy nie do pomyślenia w telekomunikacji.
Telekomunikacja była zadowolona z instalacji ATMowych (Asynchronous Transfer Mode). Porównując Ethernet i ATM, Ethernet przegrywał praktycznie na każdym polu: skalowalność, QoS, stabilność, niezawodność. Jedynie cena i prostota przemawiały na korzyść Ethernetu.
Stworzenie przełączników rozwiązało problem kolizji. VLANy i QinQ (o czym niżej), to rozwiązania, które zażegnały problem skalowalności. Niezawodność zagwarantował MSTP. Rozwój Ethernetu, następował/następuje w sposób ewolucyjny, nie zatracając prostoty i niskiej ceny technologii. Z czasem dokonano implementacji funkcjonalności pożądanych przez operatorów. Dokonało się coś niebywałego. Ethernet, mimo że był pod wieloma względami gorszy od rozwiązań opartych na ATM, zaczął odgrywać istotną rolę. Fakt, że węzły sieci opartej na Ethernecie zyskiwały funkcjonalność nie zwiększając przy tym ceny urządzeń, okazał się niezwykle interesujący dla właścicieli małych i średnich instalacji telekomunikacyjnych. Niski koszt Ethernetu sprawił, że zaczęto inwestować w zwielokrotnianie szybkości transmisji między węzłami co okazało się najtańszą metodą na zapewnienie QoS.
Od momentu wprowadzenia Ethernetu 10Gb/s ATM zaczął być wypierany przez Ethernet. Wprowadzenie Ethernetu 40 i 100Gb/s oraz fakt, iż przesył danych zaczął dominować nad przesyłem mowy, spowodowały zainteresowanie Ethernetem dużych operatorów i wypieranie takich technologii jak SDH (Synchronous Digital Hierarchy).
Dzisiaj już nie mówi się o dalszym rozwijaniu sieci opartych na SDH. Operatorzy pokrywają nadzieję w szybkim, prostym i przede wszystkim tanim Ethernecie.

Pamiętając wcześniej wyciągnięty wniosek, że VLANy stymulują rozwój Ethernetu, można przejść do omawiania kolejnych możliwości jakie stwarzają VLANy.

Dynamiczna rejestracja VLANów

Zanim przejdę do dynamicznej rejestracji VLANów (GVRP – GARP VLAN Registration Protocol), poruszę temat protokołu Generic Attribute Registration Protocol (GARP) opisanego w standardzie 802.1D.

Dawno, dawno temu, gdy przełączniki zdobywały coraz większą popularność, stwierdzono potrzebę automatyzacji konfiguracji infrastruktury. Sieci lokalne rozrastały się z biegiem czasu. VLANy jeszcze nie istniały, a zmiany w topologii były częste, z powodów wspominanych w poprzedniej części artykułu.
Operatorzy zaczęli zastanawiać się nad metodami automatycznej konfiguracji sieci. Sieć powinna reagować na zmianę topologii i dokonywać samorekonfiguracji.
W odpowiedzi na powyższe, stworzono spójną metodę propagowania, deklarowania i wycofywania informacji dla urządzeń sieciowych – GARP.

Standard 802.1D specyfikuje funkcjonowanie mostów sieciowych (dla przypomnienia przełącznik to inna nazwa wielomostu). Opracowując zasady działania przełączników, postanowiono zaprojektować metodę zarządzania ruchem multicastowym w warstwie drugiej modelu ISO/OSI. Powstał GMRP (GARP Multicast Registration Protocol) rozwiązując problem rejestracji grup mulicastowych.
Podczas tworzenia GMRP, postanowiono pójść o krok dalej i stworzono uniwersalny framework do deklarowania i wycofywania informacji dla urządzeń sieciowych – GARP.
O GARP mówi się jako o frameworku, dlatego, że na bazie GARP można zbudować dowolną aplikację i osadzić ją w oprogramowaniu przełączników. Poniższy obrazek, zaczerpnięty ze standardu, prezentuje dokładnie dlaczego mowa o GARP jako frameworku.

GVRP-architektura


GVRP-architektura


Standardodawca wstawił w miejsce „GVRP Application” GMRP, a później GVRP.

Nie zagłębiając się w szczegóły, każda aplikacja wykorzystująca GARP musi pozwalać na:
– rejestracje atrybutu (JOIN),
– wyrejestrowanie atrybutu (LEAVE),
– wyrejestrowanie wszystkich atrybutów (LEAVE ALL).
Każda aplikacja wykorzystująca framework musi posiadać zbiór dopuszczalnych atrybutów i ich wartości definiowalnych jako GARP Information Declaration (GID).

Zasady propagacji każdej wiadomości (JOIN, LEAVE [ALL]) są takie same i opisane są następującymi regułami:
– w propagacji brać udział mogą tylko porty wchodzące w skład aktywnej topologii w myśl STP (Spaning Tree Protocol),
– aplikacja wysyłająca deklarację (aplikant), przed wysłaniem wiadomości dalej, rejestruje w swojej bazie GID atrybut wraz z jego wartością, bądź usuwa wpis w przypadku wycofania deklaracji (LEAVE),
– następne urządzenie odebrawszy deklarację rejestruje w bazie atrybut, wartość i port na którym odebrano deklarację (bądź usuwa wpis w przypadku wycofania deklaracji) i staje się aplikantem przekazując wiadomość dalej,
– gdy ostatni atrybut zostanie wycofany przez wszystkich aplikantów, atrybut zostaje zapominany przez sieć.

Obrazuje to poniższy obrazek, zaczerpnięty ze standardu. Deklaracja atrybutu(D) zostaje rozpropagowana w sieci po ówczesnej rejestracji atrybutu (R).
garp

Wiadomości GARP wysyłane są na dedykowane mulicastowe adresy MAC, widniejące w poniższej tabeli zaczerpniętej ze standardu. Proszę zauważyć, że spośród wszystkich adresów wykorzystane są tylko dwa.
garp-adresacja

Po zawiłym wstępie o GARP można przejść do dynamicznej rejestracji VLANów. 🙂
GVRP jest protokołem wykorzystującym GARP. Z rzeczą, o której trzeba pamiętać, jest potrzeba konfiguracji portów przełącznika. Porty wchodzące w skład rdzenia sieci należy skonfigurować w trybie LEARN, pozwalając na rejestrację dynamicznych VLANów propagowanych przez segment sieci dołączony do tego portu. Porty dostępowe należy przełączyć w tryb BLOCK, zakazując rejestracji atrybutu na danym porcie i uniemożliwiając potencjalny atak ze strony użytkownika.
Powyższa konfiguracja powoduje to, że jeśli przypiszemy dwa porty dostępowe (każdy na innym przełączniku) do VLANu X, to informacja o istnieniu w sieci VLANu X zostanie rozpropagowana pomiędzy przełącznikami. W wyniku czego, sieć automatycznie zestawi połączenie pomiędzy w/w portami.

Jeśli zajdzie taka potrzeba, to przykład konfiguracji dynamicznych VLANów zostanie opisany w osobnym artykule.

QinQ
QinQ jest standardem opisanym przez IEEE 802.1ad włączonym w standard 802.1Q w 2011r.

W chwili, gdy VLANy stały się na tyle popularne i przestały być domeną operatorów, dostawcy sieci stanęli przed analogicznym problemem jak twórcy standardu 802.1Q. Jak przesłać przez sieć operatorską, w sposób transparentny dla abonenta, ruch z kilku VLANów z jednej lokalizacji do drugiej nie mieszając ruchu abonenta A z ruchem abonenta B. Skoro problem jest podobny, to rozwiązanie też. Postanowiono ponownie użyć znakowania ramek. W ten sposób oznakowaną ramkę (tagowaną), znakuje się jeszcze raz. Znacznik, czyli dodatkowe pole w nagłówku ramki, jest niemal identyczne ze znacznikiem VLANu. Wyjątek stanowi pierwsze pole, będące identyfikatorem protokołu Ma ono wartość nie 0×8100, ale 0×9100. Dodatkowy znacznik, wprowadzany przez QinQ, umieszczany jest między adresem MAC nadawcy ramki, a znacznikiem VLANu. Ilustruje to poniższy obrazek zaczerpnięty z Wikipedii.
qinq

Ot i cała definicja QinQ. Pozostają takie szczegóły jak to, że pierwotny VLAN (w myśl 802.1Q) nazywa się teraz CVLAN (Customer VLAN), a VLAN stworzony po dodaniu znacznika QinQ nazywa się SVLAN (Service VLAN), ale nazewnictwo to traci jakikolwiek sens w przypadku, gdy QinQ jest stosowane do zwiększenia puli dostępnych VLANów.

Pomysł wielokrotnego znakowania ramki, pojawił się jako metoda ataku na przełączniki używające VLANy. Więcej o ataku zwanym VLAN hopping przeczytać można na łamach Wikipedii. QinQ okazał się doskonałym sposobem na zablokowanie możliwości wykonania wspominanego ataku.
Ciekawostką jest to, że wielu producentów dopuszcza możliwość zmiany identyfikatora protokołu QinQ na inny, np. 0×8100. Taka możliwość najprawdopodobniej spowodowana jest tym, że producenci urządzeń nie czekali na oficjalną wersję standardu. Wyprodukowano gros urządzeń implementujących funkcjonalność zawartą we wczesnej wersji standardu, gdzie identyfikator protokołu był inny niż przyjęty w standardzie 0×9100.

Co dalej..
W następnej części zostaną poruszone tematy związane z:
– wewnętrzną organizacją przełączników w kontekście 802.1Q,
– agregacją łączy w kontekście VLANów,
– STP dla VLANów czyli MSTP.

Tagi: , , , ,