Rafał Rudewicz

5 maja 2019

Inna Sieć Newsletter


VTP – Vlan trunking protocol

Routing & Switching | 0 komentarzy

VTP to jeden z tych protokołów które ułatwiają naszą codzienną pracę. Jednakże wystarczy jeden niewielki błąd, aby położyć całą naszą sieć w ciągu sekundy!
vlan trunking protocol

i 3 Spis treści

Zarządzanie sieciami lan składającymi się z kilku lub kilkunastu switchy nie jest proste. Dodatkowo separacja użytkowników poprzez zastosowanie vlanów nie ułatwia naszej codziennej pracy. Dodanie nowych użytkowników w całkowicie nowym vlanie ciągnie za sobą konieczność zalogowania się do WSZYSTKICH switchy które będą musiały wiedzieć o danym vlanie. W najlepszym wypadku będą to tylko switche w warstwie accesowej oraz dystrybucja/core. W najgorszym… cóż czeka Cię pracowity dzień.

VTP na pomoc

Rozumiejąc, że inżynierzy zajmujący się obsługą sieci mają ciekawsze rzeczy do roboty niż dodawanie vlanów na switchach, Cisco stworzyło VTP – virtual trunking protocol. Nie daj się zmylić nazwie, ten protokół pracujący w warstwie drugiej nie ma nic wspólnego z trunkami. Tak, mamy protokół z trunkiem w nazwie, ale nie tworzący trunków jak ma to miejsce w przypadku DTP – Dynamic trunking protocol. Co więc robi VTP? W wielkim uproszczeniu przenosi informację o WSZYSTKICH vlanach, ich id (vlan-id) oraz jeśli skonfigurowane – nazwy. Tyle, albo aż tyle. Musisz pamiętać, że VTP sprawia, że wszystkie switche w Twojej sieci będą miały spójną bazę vlanów, ale nadal musisz ręcznie skonfigurować porty dostępowe przypisując im odpowiednie vlany. Pamiętaj, że możliwość edycji bazy vlanów w jednym miejscu i poźniejsze jej rozesłanie do wszystkich switchy pozwala zarówno na dodanie jak i ich usunięcie.


Przez nieuwagę jednym poleceniem możesz usunąć wszystkie vlany, kładąc całą sieć na łopatki. To ten moment w którym możesz się pakować, z pewnością będziesz sławny 😀

Tryby VTP

Switche wykorzystujące VTP do synchronizacji vlanów muszą należeć do jednej wspólnej domeny VTP. Jako, że tablica vlanów jest wyłącznie jedna na switchu ( w przeciwieństwie do tablicy routingu), switch może należeć wyłącznie do jednej domeny. Dodatkowo switche mogą pracować w 3 trybach, jako server, client oraz transparent. Pierwszy z nich oznacza switch który może edytować bazę vlanów. Drugi z nich oznacza switche które będą aktualizować swoje bazy vlanów zgodnie z informacją w wiadomości VTP. Nie mogą za to tworzyć lub usuwać vlanach z sieci. Ta opcja jest zablokowana i spotkasz się z komunikatem odmawiającym akceptacji nowego vlanu. Ostatni z trybów transparent sprawia, że switch nie bierze aktywnego udziały w komunikacji VTP. To znaczy, że nie przetwarza danych zawartych w pakietach VTP, ale w zależności od wykorzystywanej wersji może je przekazywać dalej.

Tryb Server Client Transparent
Może edytować bazę vlanów Tak Nie Nie
Może aktualizować swoją listę vlanów Tak Nie Tak
Może aktulizować wspólną listę vlanów Tak Nie Nie
Przesyła pakiety summary adv. co 5 minut Tak Tak Nie
Może używać vlanów 1-1005 Tak Tak Tak
Może używać vlanów 1006-4095 Nie Nie Tak

Synchronizacja VTP

Konfiguracja nowego vlanu odbywa się w dobrze Ci już znany sposób poprzez wydanie komendy vlan vlan-id. Dopiero następnie switch w trybie serwer rozsyła dane o aktualizacji listy vlanów do wszystkich inych switchy w ramach swojej domeny. W skrócie proces ten wygląda mniej więcej tak:

  • Switch w trybie serwer tworzy nowy vlan
  • Aktualizacja zostaje wysłana poprzez wszystkie porty w trybie trunk (na tych samych portach switch oczekuje aktualizacji)
  • Switch po otrzymaniu aktualizacji sprawdza czy jej parametry zgadzają się z tymi które ma skonfigurowane lokalnie (wersja protokołu, nazwa domeny, hasło)
  • Jeśli aktualizacja spełniła wszystkie wymagania oraz posiada wyższy numer rewizji, następuje synchronizacja.

Aktulizacja VTP rozesłana ze switcha Serwer i następnie przekazana przez Clienta dalej

W tym miejscu warto wspomnieć czym jest ta rewizja. Otóż każdy switch kiedy rozpoczyna proces VTP posiada swoja bazę danych z numerem rewizji 0. Po każdej aktulizacji otrzymanej czy wykonanej lokalnie numer rewizji jest zwiększany o 1 przed dalszym przesłaniem informacji. Jest to bardzo niebezpieczny mechanizm o czym będzie w dalszej części artykułu. Jednak prawidłowo stosowany, spełnia swoje zadanie i cała nasza sieć posiada spójną bazę vlanów.

Wymagania dla poprawnego działania VTP

Kiedy połączymy ze sobą dwa switche pracujące jako client lub server do poprawnego działania VTP musimy spełnić jeszcze kilka warunków:

  • Połączenie pomiędzy switchami musi być skonfigurowane jako funkcjonujący trunk ( ISL lub dot1Q)
  • Switche muszą należeć do tej samej domeny, z uwzględnieniem faktu, że nazwa musi być identyczna pod względem wielkości liter. Domena Testowa i testowa nie są przez Cisco traktowane jako jednakowe.
  • Jeśli choć jeden switch ma skonfigurowane hasło VTP, pozostałe muszą równie je posiadać.

Domeny VTP pozwalają na stworzenie kolejnej warstwy separacji na poziomie vlanów, gdzie w każdej domenie możemy mieć skonfigurowane vlany niezależnie. Pamiętaj, że switch może należeć tylko do jednej takiej domeny.

Hasło VTP wprowadza kolejny mechanizm pozwalający dodatkowo zabezpieczyć naszą sieć przez złośliwym lub przypadkowym podłączeniem nowego switcha z wyższym numerem rewizji.

Niebezpieczeństwo nowego switcha

Pamiętaj, że numer rewizji jest przechowywany w pamięci NVRAM i nie jest resetowany przez zanik zasilania. Jak już pewnie się domyślasz dostawienie nowego switcha w trybie serwer z rewizją wyższą niż w naszej sieci może sprawić, że cała lista vlanów w sieci zostanie usunięta lub zmodyfikowana.

Wcześniej wspominaliśmy, że tylko serwer może aktulizować naszą listę vlanów. Cóż, nie jest to do końca prawdą. Otóż switch w trybie client nie może wykonać polecenia dodającego lub usuwającego vlany z sieci. Jednakże może i powinien przesyłać pakiety z aktulizacjami bazy vlanów. Już się domyślasz o co chodzi? Jeśli dołączymy do naszej sieci switch w trybie client przy pierwszym podłączeniu wyśle on swoją bazę vlanów jako aktualizację VTP. W takim wypadku inne switche (client i serwer) sprawdzą czy numer rewizji jest wyższy i jeśli tak, to zaktualizują swoją bazę zgodnie z informacją otrzymaną w pakiecie.

Aktualizacja VTP ze switcha Client kładąca na łopatki sieć

Z tego miejsca polecam wyrobienie sobie nawyku sprawdzania dwa razy konfiguracji VTP przed dodaniem nowego switcha do istniejącej sieci. Jeśli Twój nowy switch ma numer rewizji wyższy niż pozostałe switche w domenie masz dwie opcje. Zmienić jego tryb na transparent i ponownie na client lub server. Druga opcja to zmienić mu tymczasowo nazwę domeny, taka zmiana wymusi na switchu wyzerowanie numeru rewizji.

VTP Pruning

Standardowo switche Cisco przekazują ramki poprzez trunki w każdym skonfigurowanym vlanie. Jak dobrze wiesz switche przekazują również ramki broadcast ( oraz unknow unicast – ramki których odbiorca nie jest w tablicy CAM) w każdym aktywnym vlanie na trunku. Pakiety muszą zostać przetworzone przez każde urządzenie które je odbiera, ale niekoniecznie jest jego odbiorcą i poprostu odrzuca taki pakiet.

I znowu wszystko zależy od efektu skali. W małej sieci w której mamy 4 switche na krzyż, te kilka dodatkowych pakietów nie stanowi problemu, jednak w sieciach w których mamy ponad kilkanastu lub kilkuset użytkowników możemy już mówić o setkach lub tysiącach dodatkowych pakietów. Dla przykładu jeśli w naszej sieci tylko 5 z 20 switchy ma porty accessowe w vlanie 100, to tylko te switche powinny wymieniać między sobą pakiety w tym vlanie.

Jedną z opcji rozwiązania tego problemu jest ręczne skonfigurowanie na trunkach jakie vlany powinny być dozwolone. Jednakże takie rozwiązanie jest nawet bardziej czasochłonne niż sama konfiguracja nowych vlanów. Zdecydowanie lepszą opcją jest włączenie opcji VTP pruning. Oznacza ona tyle, że VTP może dynamicznie kontrolować w jakich vlanach switch ma porty accesowe. Następnie dzięki tej wiedzy ruch tylko z tych vlanów jest przepuszczany przez trunki.

VTP prunning w praktyce

W podsumowaniu co widzimy na powyższym obrazku:

  • Switch numer 4 otrzymał informację VTP o vlanie 50, ale nie posiada żadnego portu accesowego powiązanego z tym vlanem. W odpowiedzi wysyła aktualizację do switcha numer 1, aby usunął vlan 50 z łączącego ich trunku.
  • Switch numer 1 usuwa vlan 50 z trunku do switcha numer 4. W wyniku czego, żadne pakiety z tego vlanu nie zostaną przekazane do switcha 4.

Dzięki temu jednemu prostemu zabiegowi jesteśmy w stanie ograniczyć ilość przesyłanych danych w naszej sieci poprzez ograniczenie zalewania sieci pakietami. Jest to jedna z kilku zalet i powodów dla których powinniśmy stosować VTP w swojej sieci.

Pakiety VTP

Pakiet VTP może pochodzić od switcha w trybie client i prosić o przesłanie aktualnych informacji o domenie w której się znajduje lub vlanie o którym brakuje informacji. Oczywiście również sam serwer wysyła pakiety w przypadku zmian w sieci. Nazwy pakiety pozostały w oryginalnym (angielskim) nazewnictwie dla łatwiejszej później pracy z nimi.

Pakiety mogą występować w trzech formach:

  • Summary advertisements – Serwer rozsyła pakiety tego typu co 300 sekund czyli co 5 minut oraz po każdej aktualizacji bazy vlanów. Summary advertisement zawiera listę informacji o domenie takie jak: wersję protokołu, nazwę domeny, numer rewizji, znacznik czasu, hash MD5 (zakodowane hasło) oraz liczbę pakietów subset advertisement które zostaną przekazane.
  • Subset advertisement – Serwer rozsyła te pakiety po każdej zmianie na liście vlanów która miała miejsca w sieci. W tym pakiecie przekazywane są informacje odnośnie konkretnych zmian takich jak stworzenie lub usunięcie vlanu, zawieszeniu lub aktywacji vlanu oraz o wielkości MTU.
  • Advertisement requst – Switch w trybie client może poprosić o przesłanie informacji odnośnie dowolnego vlanu. Może to się zdarzyć na przykład gdy przypadkowo skasujemy plik vlan.dat, lub switch należy do domeny, ale posiada w swojej bazie vtp niższy numer rewizji niż ten w summary advertisement.

Wersje VTP

Na dzień publikacji artykułu Cisco wprowadziło 3 wersje protokołu VTP. Wersja 1 oraz 2 są bardzo zbliżone do siebie i w obecnych czasach w kwesti konfiguracji, działania oraz diagnozowania problemów można je traktować jednakowo. Dodatkowo możemy mieć w sieci switch pracujący jako serwer w wersji 1 oraz drugi switch serwer pracujący w wersji 2, a jednak oba będą wymieniały się informacjami.

Jedyna znacząca różnica pomiędzy tymi dwoma wersjami pojawią w sposobie działania switchy w trybie transparent. W założeniu tryb ten miał za zadanie przekazywanie pakietów VTP pomiędzy innymi switchami w domenie. Jednakże, aby tego dokonać wersja VTP musi być taka sama dla nadawcy pakietu i switcha w trybie transparent.

VTP w wersji 3

Najnowsza wersja tego protokołu wprowadza kilka znaczących usprawnień które znacząco odróżniają ją od jej poprzedniczek.

  • Powiększono zakres dostępnych vlanów z standordowego zakresu do rozszerzonego (1-4095).
  • Dodano przekazywanie informacji odnośnie private vlan

Trzecią znaczącą nowością jest możliwość przekazywania innych informacji niż tylko tablice vlanów ( dla przykładu informacje o MST). Dodatkowo zwiększono również możliwości konfiguracyjne poprzez zastąpienie ustawień globalnych na ustawienia per port. W najnowszej wersji dodano 4 tryb w którym może pracować VTP, a jest to tryb off. Można z powodzeniem stosować go w konfiguracji portów na stykach sieci.

Konfiguracja VTP

Konfiguracja VTP jest stosunkowo prosta w porównaniu do możliwości jakie oferuje. Całość w momencie gdy mamy już naszą sieć zaplanowaną sprowadza się do następujących kroków:


Status VTP na switchu server oraz na nowym switchu client

  • Wejdź do globalnego trybu konfiguracyjnego i użyj polecenie vtp {server|client|transparent}
  • Następnie komendą vtp domain nazwa_domeny dołącz switch do wybranej domeny
  • (Opcjonalnie) Użyj polecenia vtp password hasło
  • (Opcjonalnie) Użyj polecenia vtp pruning. Polecenie to może być zastosowane jedynie na switchu serwer
  • (Opcjonalnie) Użyj polecenia vtp version {1|2}, aby poinformować switch lokalnie jakiej wersji ma używać



Status VTP na switchu server oraz na switchu client

Troubleshooting VTP

W odróżnieniu od reszty konfiguracji którą switche przechowują w running-confingu lub startup-configu, konfiguracja VTP jest przechowywana w pliku vlan.dat w pamięci flash. Z tego powodu nie da się zweryfikować czy dane są poprawnie wymieniane poprzez sprawdzenie komendy show run. W celu sprawdzenia czy nasz switch należy do domeny oraz czy poprawnie wymienił się informacji należy wydać polecenie show vtp status. Natomiast do sprawdzenia hasła służy polecenie show vtp password.

Kiedy chcemy dodać nowy switch do naszej sieci nie wystarczy się na niego zalogować i skasować konfigurację startową – erase startup-config – oraz zrebootować. Konfiguracja vlanów oraz vtp pozostanie nietknięta w pliku vlan.dat, który również należy skasować, aby otrzymać „czysty” switch.

Przejdźmy teraz przez proces troubleshootingu w którym poznasz dobry sposób na sprawdzenie, dlaczego vtp nie działa tak jak to zaplanowałeś.

  • Sprawdź nazwę urządzenia oraz topologię swojej sieci włączając w to sprawdzenie które interfejsy idą do którego switcha oraz w takim trybie pracuje.
  • Dla każdej pary połączonych ze sobą bezpośrednio switch, a które mają odmienne bazy vlanów sprawdź:
    • Aktualizacje VTP przenoszone są tylko poprzez trunki, sprawdź konfigurację interfejsów po obu stronach
    • Sprawdź czy oba switche należą do tej samej domeny (show vtp status)
    • Sprawdź czy posiadają takie samo hasło (show vtp password)
    • Sprawdź czy są w stanie obsługiwać te same wersji vtp (show vtp status)
  • Sprawdź czy w twojej sieci jest wiecej niż jeden switch pracujący jako serwer i czy mają one te same ustawienie

Rafał Rudewicz

Rafał Rudewicz

Specjalizuję się w rozwiązaniach Enterprise oraz Service Provider. Projektuję, wdrażam oraz naprawiam sieci dla największych firm na świecie.

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *