Prywatne VLANy (PVLAN) od A do Z

Komentarze: 2 | , autor: Damian Michalak

PODAJ TO
Praca z VLANami to niewątpliwie chleb powszedni każdego sieciowca. Wiedza na temat działania prywatnych VLANów nie jest już jednak tak powszechna – temat ten pojawia się w ścieżce certyfikacyjnej dopiero na poziomie Professional. I szczerze mówiąc trochę się temu dziwię. Zagadnienie, które na pierwszy rzut oka wydaje się być skomplikowane, okazuje się być proste i zrozumiałe jeśli tylko dobrze mu się przyjrzeć. Jeśli nie wiesz czym są prywatne VLANy lub chcesz po prostu przypomnieć sobie jak się je konfiguruje to ten artykuł jest dla Ciebie!

1. Teoria

Jak zapewne dobrze wiesz głównym powodem istnienia VLANów jest chęć zapanowania nad rozmiarem domen rozgłoszeniowych. Pomimo to obecnie VLANy używa się bardziej z myślą o segmentacji ruchu sieciowego – i nie ma w tym nic złego (jest bezpieczniej, a domeny rozgłoszeniowe są i tak przy okazji pod kontrolą). Wydawałoby się więc, że skoro wrzuciliśmy dane urządzenia do wspólnego kubełka (VLANu) to jak najbardziej powinny się one między sobą komunikować. Tak w istocie jest w większości przypadków. Problematyczna staje się natomiast sytuacja, w której chcielibyśmy dokonać dalszej separacji urządzeń już znajdujących się we wspólnym VLANie. Pamiętajmy, że dobrą praktyką jest stosowanie pojedynczych podsieci per VLAN.

Załóżmy więc, że mamy 200 urządzeń we wspólnym VLANie (i wspólnej podsieci) i chcielibyśmy podzielić je na 4 grupy, które z przyczyn bezpieczeństwa nie mogą się ze sobą komunikować. Oczywiście nie chcemy readresować – raz, że jest to żmudna robota, a dwa, że przyjęty w danej firmie schemat adresacji może nie pozwalać na łatwą i spójną readresację. Właśnie w takich przypadkach przychodzą nam z pomocą prywatne VLANy. Można je sobie wyobrazić jako VLANy zagnieżdżone w… VLANie. Technologia ta została opisana przez Cisco w RFC 5517 i jest na szczęście używana w sporej ilości urządzeń innych producentów (m.in. Arista, Brocade, Extreme, FortiNet, Juniper, MICROSENS, Ubiquiti, Alcatel-Lucent).

Do opisu działania prywatnych VLANów posłużymy się poniższą topologią:

Zawiera ona dwa przełączniki SW1 oraz SW2 połączone ze sobą za pomocą zwykłego trunka tagowanego za pomocą dot1q. Warstwę trzecią moglibyśmy oczywiście realizować bezpośrednio na przełącznikach, ale dla klarowności przykładu routing będzie realizowany na dedykowanym do tego routerze RTR. Do przełączników podłączone jest w sumie 6 hostów oznaczonych od H1 do H6.

Koncepcja działania prywatnych VLANów

Koncepcja działania prywatnych VLANów jest stosunkowo prosta. Możemy sobie to wyobrazić jako partycjonowanie pojedynczego VLANu (który będziemy w dalszej części nazywać Primary VLANem) na mniejsze sub-VLANy (nazywane Secondary VLANami). Primary VLAN jest więc kolekcją jednego lub więcej Secondary VLANów. Istotny jest fakt, że dla świata zewnętrznego wszystkie urządzenia są widoczne nadal jako przynależące do pojedynczego VLANu (Primary VLANu). Separacja ma natomiast miejsce już lokalnie w LANie, gdzie wszystkie urządzenia nadal zachowują adresację we wspólnej podsieci, a pomimo to są w stanie znajdować się w osobnych, odseparowanych Secondary VLANach. Mamy więc następującą sytuację:

Na obrazku powyżej widzimy trzy Secondary VLANy, oznaczone na czerwono numerami 1-3. Są one zebrane w jeden Primary VLAN oznaczony na niebiesko numerem 4. Wszystkie urządzenia znajdują się we wspólnej podsieci 192.168.1.0/24.

Community i Isolated VLANy

Wyróżniamy dwa typy Secondary VLANów:

  • Community VLAN – urządzenia podłączone do portów znajdujących się w Community VLANie mogą się ze sobą komunikować, nie mają natomiast możliwości komunikacji z urządzeniami w innych VLANach. Porty przełącznika przypisane do Community VLANu nazywamy community portami i są to porty nietagowane.
  • Isolated VLAN – urządzenia podłączone do portów znajdujących się w Isolated VLANie nie mogą się komunikować ani ze sobą ani z jakimkolwiek urządzeniem w innym VLANie. Z uwagi na takie działanie, nie ma sensu tworzyć więcej niż jeden Isolated VLAN. Porty przełącznika przypisane do Isolated VLANu nazywamy isolated portami i są to porty nietagowane.

Co do zasady pojedynczy Primary VLAN może być związany z zero lub więcej Community VLANów i z co najwyżej jednym Isolated VLANem. Z kolei każdy Secondary VLAN musi być związany dokładnie z jednym Primary VLANem. Będąc wyposażonymi w tę wiedzę, przypiszmy utworzone wcześniej grupy hostów do poszczególnych typów Secondary VLANów:

Promiscuous port

Z dotychczasowego opisu prywatnych VLANów wynika, że urządzenia w Secondary VLANach nie mają żadnej możliwości komunikacji z zewnętrznym światem. Jak zatem sprawić by mogłe ony korzystać przykładowo ze wspólnego serwera e-mail czy też drukarki sieciowej? Tutaj z pomocą przychodzi nam trzeci rodzaj portu, tzw. promiscuous port. Ten port jest portem nietagowanym przypisanym do Primary VLANu. Co do zasady urządzenie podłączone do promiscuous portu może się komunikować ze wszystkimi urządzeniami w Secondary VLANach związanych z tym Primary VLANem (i vice versa). Promiscuous porty przypisane do tego samego Primary VLANu mogą też oczywiście komunikować się między sobą.

W naszym przykładzie router RTR pełniący funkcję bramy domyślnej powinien być zatem podłączony do promiscuous portu. Spójrzmy po raz kolejny na naszą topologię, tym razem skupiając się na typach portów:

Na powyższej topologii możemy wyróżnić cztery typy portów na przełącznikach:

  • Porty 1,2,3,4community porty przypisane do Secondary Community VLANów
  • Porty 5,6isolated porty przypisane do Secondary Isolated VLANu
  • Port 7promiscuous port przypisany do Primary VLANu
  • Porty 8,9 – porty typu trunk, tagowane za pomocą dot1q

Zasady komunikacji między poszczególnymi typami portów

Podsumujmy zasady komunikacji pomiędzy poszczególnymi portami/VLANami:

  1. Port przypisany do danego Community VLANu (community port) może komunikować się ze wszystkimi innymi portami w tym samym Community VLANie i ze wszystkimi promiscuous portami w powiązanym Primary VLANie.
  2. Port przypisany do danego Isolated VLANu (isolated port) może komunikować się ze wszystkimi promiscuous portami w powiązanym Primary VLANie.
  3. Port przypisany do Primary VLANu (promiscuous port) może komunikować się ze wszystkimi innymi portami w tym samym Primary VLANie oraz ze wszystkimi portami we wszystkich Secondary VLANach związanych z tym konkretnym Primary VLANem.

Prywatne VLANy na wielu przełącznikach

Rozszerzanie zasięgu działania prywatnych VLANów poprzez konfigurację ich na kolejnych przełącznikach jest bardzo proste. Jedyne o co trzeba zadbać to żeby mapowania Primary i Secondary VLANów były spójne oraz żeby poszczególne identyfikatowy VLANów były puszczone na trunku między przełącznikami. Z zagadnień czysto teoretycznych na koniec warto wspomnieć o tym jak ruch w prywatnych VLANach jest tagowany własnie na trunkach:

  • Jeśli ramka została otrzymana przez przełącznik na community lub isolated porcie to puszczając tę ramkę trunkiem przełącznik otaguje ją identyfikatorem źródłowego Secondary VLANu.
  • Jeśli ramka została otrzymana przez przełącznik na promiscuous porcie to puszczając tę ramkę trunkiem przełącznik otaguje ją identyfikatorem odpowiedniego Primary VLANu.

Biorąc pod uwagę powyższe dwie zasady możemy to rozumować nastepująco – ruch wychodzący (upstream) z danego Secondary VLANu jest zawsze tagowany identyfikatorem tego Secondary VLANu. Natomiast ruch przychodzący (downstream) do danego Secondary VLANu jest tagowany identyfiaktorem odpowiadającego Primary VLANu.

2. Konfiguracja

Znając już teoretyczne podstawy działania prywatnych VLANów, przejdźmy do konfiguracji. Przykład oparty jest na przełącznikach Cisco serii 3800. Bazować będziemy na zaprezentowanej wcześniej, poniższej topologii:

Pierwszym krokiem w konfiguracji jest przełączenie VTP w tryb transparent – jest to wymagane do działania prywatnych VLANów jeśli nie używamy VTPv3. Następnie tworzymy poszczególne VLANy, nadajemy im nazwy i wskazujemy ich typy. Zwróć proszę uwagę, że w konfiguracji Primary VLANu konfigurujemy dodatkowo powiązania z Secondary VLANami. Dla bycia zwięzłym przedstawiona jest konfiguracja jedynie przełącznika SW1:

Mając stworzone prywatne VLANy, przejdźmy do przypisywania do nich portów. Przedstawione zostaną 3 przykłady jako, że konfiguracja jest analogiczna na wszystkich portach i zależy jedynie od typu portu. W każdym przypadku konfigurujemy najpierw typ portu (host/promiscuous), a następnie przypisujemy właściwe VLANy.

Przykład konfiguracji community portu gi0/1 na przełączniku SW1:

Przykład konfiguracji isolated portu gi0/2 na przełączniku SW2:

Przykład konfiguracji promiscuous portu gi0/10 na przełączniku SW1:

Jeśli routing w sieci realizujesz na przełącznikach warstwy trzeciej (a co za tym idzie bramą domyślną jest interfejs SVI) to pamiętaj żeby skonfigurować go jako promiscuous w następujący sposób:

3. Weryfikacja

Weryfikacja poprawności konfiguracji prywatnych VLANów jest bardzo prosta i wystarczy do niej jedna komenda: show vlan private-vlan. Listuje ona wszystkie skonfigurowane prywatne VLANy, mapowania Primary i Secondary VLANów oraz przypisane porty:

Co do samego działania prywatnych VLANów, można łatwo zweryfikować za pomocą pinga czy działa to jak należy. Dla oszczędności miejsca zastąpię listingi rezultatów pingowania prostym obrazkiem, na którym zaznaczone są wszystkie możliwe przepływy danych:

Na powyższej topologii ładnie widać różnicę między Community i Isolated VLANem.

4. Zastosowania

Pomimo, że prywatnych VLANów nie spotyka się często to mają one kilka przydatnych zastosowań. Poniżej znajdziesz te najczęściej wymieniane:

  1. Najczęściej spotkasz prywatne VLANy w multitenantowych sieciach Service Provider’ów. Będą one tam używane do odseparowania ruchu klientów, jednocześnie pozwalając SP na użycie tylko jednego subnetu. Co bardziej istotne, prywatne VLANy pozwolą również zaoszczędzić cenne identyfikatory VLAN (mamy ich wszakże ograniczoną ilość) – można przecież izolować hosty wrzucając je do pojedynczego isolated VLANu!
  2. Separacja ruchu w DMZ na poziomie warstwy drugiej, bez konieczności angażowania firewalla/ACL
  3. Zapezpieczenie sieci backupowych – serwery mające “produkcyjne” interfejsy w różnych VLANach często podłącza się do wspólnej sieci backupowej. Sieć ta jest pojedynczym VLANem i stwarza ryzyko łatwej komunikacji między serwerami na poziomie back-endu. Prywatne VLANy są w tej sytuacji jak znalazł.
  4. Izolacja ruchu pomiędzy VMkami korzystającymi ze wspólnej macierzy dyskowej – wirtualne maszyny wrzucamy w Isolated VLAN a macierz dyskową podłączamy do portu promiscuous. Voila!

To tyle ile udało mi się znaleźć na temat zastosowań prywatnych VLANów. Znasz jakieś inne? Podziel się w komentarzach 🙂

Podsumowanie

To był chyba jeden z najdłuższych dotychczas opublikowanych artykułów 🙂 Mam nadzieję, że pozwolił on Ci poznać/lepiej zrozumieć działanie prywatnych VLANów. Jeśli coś jest niejasne, gdzieś jest błąd lub chciałbyś się podzielić swoimi doświadczeniami w pracy z tą technologią, koniecznie zostaw komentarz!

SPODOBAŁ CI SIĘ TEN ARTYKUŁ?
Dołącz do moich subskrybentów, a nie przegapisz kolejnych ciekawych artykułów!

Nie ujawnię nikomu Twojego adresu. Zero spamu.
Damian MichalakPrywatne VLANy (PVLAN) od A do Z
  • Michał Iwańczuk

    bardzo dobry opis – dzięki

  • Amadeusz Jakóbczak

    Bardzo dobrze i jasno wyjaśnione – na egzamin jak znalazł!

    Private VLAN to koncepcja znana od przeszło dwóch dekad, powoli możemy zacząć nazwać tą technologię “legacy”. Obecnie do uzyskania segmentacji sieci niezależnie o adresacji IP coraz częściej używa się sieci overlay realizowanej za pomocą protokołu VXLAN. Początkowo technologia ta była zarezerwowana dla dostawców internetu (ISP) i przy budowaniu datacenter ale coraz mocniej wchodzi w obszar Campus LAN. Świadczy o tym chociażby wsparcie dla tej technologii w najnowszych przełącznikach Cisco Catalyst 3650 i 3850 dedykowanych właśnie do sieci korporacyjnych. Powstają również Design Guide dla budowy takich rozwiązań:
    http://www.cisco.com/c/dam/en/us/td/docs/solutions/CVD/Oct2016/CVD-CampusFabricDesign-2016OCT.pdf

    Przewaga VXLANów nad Private LAN jest wiele, jednym z nich jest możliwość tworzenia do 16 milionów segmentów sieci (domen rozgłoszeniowych) całkowicie niezależnie od adresacji IP i fizycznej lokalizacji urządzeń końcowych.

    Moim zdaniem to zagadnienie, z powodu jego popularności, z pewnością pojawi się w kolejnej wersji egzaminu CCNP/CCIE w ścieżce R&S.