802.1ad
Q in Q
Dokumentacja seminarium przedmiotu Sieci Ethernet 2011
Łukasz Wrzesiński
Wprowadzenie
W roku 1998 zatwierdzony został standard 802.1Q (zaktualizowany 7 lat później w zbiorczym
standardzie 802.1Q-2005). Dotyczy on koncepcji, interpretacji i realizacji wirtualnych sieci LAN
(VLANów). Zatwierdzenie standardu oraz realizacja jego założeń w ogromnej ilości dostępnego na
rynku sprzętu sieciowego oraz ogólna potrzeba zarządzania sieciami komputerowymi poprzez ich
logiczną segregację spowodowały, że standard ten jest używany powszechnie i jest swoistym „must
have” w każdym zarządzanym przełączniku sieciowym powyżej klasy SOHO/entry level.
Korzystanie z VLANów ma swoistą zaletę – umożliwia w prosty sposób wydzielenie niemal całkowicie
niezależnych i odizolowanych od siebie logicznych sieci Ethernetowych w ramach istniejącej fizycznej
infrastruktury w łatwy do zarządzania i przezroczysty dla użytkowników i ich urządzeń sposób.
Ponadto zwiększa bezpieczeństwo takich logicznych sieci poprzez izolowanie ich ruchu.
Niestety, wraz z upowszechnianiem się sieci Ethernetowych w poważnych zastosowaniach (Carrier
Ethernet, w tym np. sieci metropolitalne) oraz dążeniem do realizacji koncepcji Ethernet End-to-End,
zaczęły wychodzić na jaw pewne braki standardu znacząco utrudniające wykorzystanie Ethernetu w
takiej roli. Do braków tych należą:
•
Mała (współcześnie) liczba możliwych do ponumerowania VLANów 4093 – 4094 zależnie od
implementacji,
•
Jednowarstwowa (płaska) numeracja – brak jakiejkolwiek hierarchii,
•
Problemy z separacją ruchu już podzielonego z użyciem VLANów.
Są one szczególnie uciążliwe w sieciach operatorskich świadczących usługi Ethernetowe mniejszym
podmiotom, np. firmom.
Problemy te zostały wzięte pod uwagę podczas tworzenia dodatku do standardu 802.1Q, którego
celem było dostosowanie VLANów do użytku w sieciach operatorskich. Dodatek ten został
opublikowany w 2005r. jako standard 802.1ad, i jest znany szerzej jako QinQ, Provider Bridging, VLAN
Stacking bądź Double Tagging. 802.11ad-2005 został zdefiniowany przez IEEE jako nowelizacja
(amendment) standardu 802.1Q-2005.
802.11ad
Standard ten został opracowany z myślą o dużych sieciach operatorskich i usługowych, jak np. sieci
zaliczające się do nabierającej ostatnio na znaczeniu koncepcji Metro Ethernet. Rozwiązuje on trzy
wymienione powyżej problemy standardu 802.1Q w prosty i skalowalny sposób:
•
Ponad 16,7 mln różnych VLANów przy typowej interpretacji standardu, w praktyce często
wielokrotnie więcej,
•
Druga warstwa numeracji VLANów (przy standardowych dwóch tagach),
•
Umożliwia operatorom zwiększenie bezpieczeństwa sieci poprzez izolację podsieci swoich
klientów.
Od technicznej strony QinQ realizuje swoje założenia poprzez dodanie drugiego taga,
poprzedzającego standardowy VLAN Tag zgodny ze standardem 802.1Q. Budowa taga oraz
interpretacja zawartości jest identyczna jak dotychczasowa. Rozszerzoną numerację dało by się
uzyskać rozszerzając pojemność (w bitach) dotychczasowego pola VLAN ID, ma to jednak szereg wad
– wciąż płaska hierarchia, zarówno VLANów, jak i spokrewnionej technologii – priorytetów (802.1p).
Nie rozwiązuje to także żadnego problemu poza samą ilością VLANów. Utrudnia to także
implementację standardu w sprzęcie obsługującym 802.1Q.
Zdecydowano więc, że dodany zostanie drugi, bliźniaczy tag, dla odróżnienia o innej zawartości pola
TPID, interpretowanej początkowo przez przełącznik jako pole EtherType. Wartość podana w
standardzie to 0x88a8 i taka też została zarezerwowana, jednak nie jest ona w praktyce
wykorzystywana. Większość przełączników na rynku stosuje w tym celu wartość 0x9100, 0x9200 lub
0x9300, przełączniki firmy Cisco zaś stosują wartość 0x8100 (taką samą jak standardowy tag 802.1Q).
Z implementacyjnego punktu widzenia nie ma znaczenia czy wartość ta jest taka sama czy różna od
0x8100 ponieważ cała koncepcja 802.1ad polega na potraktowaniu tagów jako stosu, ze
standardowymi, znanymi z programowania, operacjami push, pop i modify (pop+push). Wierzch
stosu znajduje się zawsze tuż za polem zawierającym adres źródłowy ramki Ethernetowej, spód zaś
zawsze przed oryginalnym polem EtherType. Przetwarzający ramkę przełącznik przetwarza zawsze
pierwszy napotkany tag i nie musi wiedzieć czy jest to standardowy tag 802.1Q (zwany w 802.1ad
tagiem wewnętrznym bądź customer tag a reprezentowany przez niego VLAN – Customer Edge
VLAN) czy też dodatkowy tag standardu 802.1ad (zwany tagiem zewnętrznym lub service tag a
reprezentowany przez niego VLAN – Service Provider VLAN lub Provider Edge VLAN; na obrazku
powyżej również MetroTag). Z tego względu przetwarzanie ramek wykorzystujących QinQ nie różni
się wydajnościowo od przetwarzania ramek 802.1Q.
Powyższa ilustracja (przedstawiająca kolejność pól w ramce Ethernetowej – proszę się nie sugerować
ich rozmiarami, ponieważ nie zostały ujęte na obrazku) przedstawia użycie potrójnego tagowania.
Jest to największa zaleta stosowej konstrukcji tagów – choć dotychczas nie ujęte w standardzie
potrójne tagowanie nie zostało wprost zdefiniowane, to wyraźnie taki jest kierunek tego standardu,
skonstruowanego tak by można go było w przyszłości rozszerzać w prosty sposób. Co więcej, pomimo
niezdefiniowania trzeciego taga w standardzie, stosowa implementacja tagowania ramek umożliwia
już teraz (w wielu urządzeniach klasy operatorskiej) wykorzystanie tagowania wielokrotnego
(nieograniczonego do dwóch ani nawet do trzech tagów).
Zastosowania
QinQ został opracowany z myślą o sieciach operatorskich świadczących usługi klientom posiadającym
swoja własne rozbudowane sieci, o czym świadczy choćby użyte nazewnictwo – service tag i
customer tag. Jego podstawowym zastosowaniem zatem jest izolacja ruchu sieciowego różnych
klientów operatora w przezroczysty sposób umożliwiający tym klientom również pełne wykorzystanie
swojej sieci, w tym właśnie dowolne definiowanie ich własnych VLANów. Scenariusz wygląda zatem
tak (nazewnictwo tagów z ilustracji powyżej):
•
QinQ (tag wewnętrzny) – do wykorzystania przez klienta operatora, np. korzystającą z jego
usług firmę,
•
Q (tag zewnętrzny) – do separacji ruchu różnych klientów.
Dzięki możliwości użycia wielokrotnego tagowania nic nie stoi na przeszkodzie by podzielić ruch
sieciowy w bardzie skomplikowany sposób:
•
QinQinQ – izolacja ruchu każdej stacji w sieci klienckiej (np. stacja w sieci bezprzewodowej
lub przyłącze w mieszkaniu klienta sieci osiedlowej),
•
QinQ – do rozdzielania segmentów sieci osiedlowej,
•
Q – do wykorzystania przez nadrzędnego operatora (np. sieci metropolitalnej) do
rozdzielenia ruchu klientów (klientem jest tu sieć osiedlowa).
Pierwszy scenariusz, z udziałem firm A oraz D został zaprezentowany na poniższym schemacie
(testery sieciowe należy potraktować jako chmurkę z dowolnym segmentem sieci danej firmy,
złożonym z wielu komputerów):
QinQ – problemy
QinQ, choć przydatny i bardzo szeroko wykorzystywany, nie ustrzegł się kilku problemów, których
administrator sieci operatorskiej musi być świadomy:
•
VLANy, w szczególności QinQ, choć nie pogarszają wydajności sieci, zwykle niestety również
jej nie poprawiają, pomimo podzielenia jej na mniejsze segmenty. Spowodowane jest to tym,
że przełączniki przeważnie nie przechowują oddzielnych tablic odwzorowań MAC-port dla
każdego VLANu, tylko stosują tradycyjną pojedynczą tablicę i dopiero po odnalezieniu
wyników w tej tablicy odfiltrowują je z użyciem ID VLANu,
•
A tablica ta nie jest mała ponieważ przełączniki operatora muszą się uczyć wszystkich
adresów MAC sieci zarówno operatora jak i jego klientów – co prowadzi do powstawania
ogromnych tablic MAC-port w takich urządzeniach – cierpi na tym skalowalność takich
rozwiązań i wpływ na opóźnienia,
•
Należy pamiętać, że VLANy nie stanowią izolacji absolutnej pomiędzy sieciami – urządzenia
operatora mogą być wciąż podatne na takie problemy jak powtórzony adres MAC w sieciach
jego klientów, i tagowanie QinQ może nie zapewnić przed tym ochrony,
•
Tagowanie wielokrotne nie zostało zdefiniowane w standardzie, zatem urządzenia mogą je
wspierać (przyszłościowo i elastycznie) lub nie (stricte jak w standardzie), ponadto
stwierdzono już problemy z wzajemną łącznością urządzeń różnych producentów (przede
wszystkim Cisco vs. Reszta Świata) z powodu niezgodnych ze standardem identyfikatorów w
polu TPID.
Część z tych problemów (pierwsze 3) jest możliwa do wyeliminowania z pomocą innych technologii
(802.1ah-2008 czyli „MAC in MAC” bądź Provider Backbone Bridges), część (ostatni) zapewne
zostanie wyeliminowana wraz z rozwojem standardu i jego dostosowywaniem do potrzeb rynku.
Niemniej rozwiązania tego typu są potrzebne dla dalszego rozwoju Ethernetu i mają przed sobą
świetlaną przyszłość.