Routing & Switching

Vlan - wszystko co musisz wiedzieć o wirtualnych sieciach LAN

Segmentacja sieci - VLAN
W: Routing & Switching

Sieć LAN (z języka angielskiego local area network), czyli sieć lokalna, obejmuje zazwyczaj wszystkie urządzenia znajdujące się na danym obszarze. Granice tej sieci zazwyczaj wyznacza router, który posiada połączenie z internetem.

Ethernet

W początkach standardu Ethernet wszystkie urządzenia były podłączone do jednego medium transmisyjnego. Każdy mógł się komunikować z każdym, ale w danym momencie tylko jeden host mógł przesyłać dane.

Mechanizm CSMA/CD (z ang. Carrier Sense Multiple Access with Collision Detection) wykrywał, kiedy łącze jest zajęte i zapobiegał wysyłaniu danych w tym samym momencie przez więcej niż jednego nadawcę. Jeśli w danym czasie dwa urządzenia zaczęłyby wysyłać dane, ramki uległyby uszkodzeniu. Taką sytuację nazywamy kolizją.

W przypadku kolizji oba urządzenia przerywały transmisję, a następnie czekały losowy czas przed ponowną próbą wysłania danych. Dzięki tej technice unikano konfliktów i zapewniano sprawną komunikację w sieci Ethernet.

Huby

Huby były pierwszymi urządzeniami sieciowymi, które umożliwiły zwiększenie liczby urządzeń podłączonych do jednej sieci. Nie posiadały jednak żadnej logiki. Przekazywały pakiety otrzymane na jednym porcie na wszystkie pozostałe. W rezultacie zwiększały domeny kolizyjne oraz rozgłoszeniowe.

Kolizja pakietów w sieci z wykorzystaniem hub-a

Switche

Następcami hubów są switche, inaczej nazywane przełącznikami. Pozwoliły one na ograniczenie domen kolizyjnych do pojedynczych połączeń pomiędzy urządzeniami.

Wraz z rozwojem sieci rozwiązano problem half-duplexu, umożliwiając obu stronom transmisji przesyłanie danych naraz w trybie full-duplex. Dzięki temu rozwiązano problem kolizji oraz zwiększono praktycznie dwukrotnie przepustowość łączy (half vs full duplex).

Pozostają jednak wyzwania związane z wielkością domen rozgłoszeniowych, gdzie pakiety broadcast oraz unknown unicastprzekazywane do wszystkich urządzeń, a także kwestie separacji użytkowników oraz zapewnienia bezpieczeństwa.

VLAN – Virtual LAN

Sieci VLAN pozwalają na logiczną agregację hostów na mniejsze podsieci w ramach jednej dużej sieci LAN. Dzięki wirtualnym sieciom LAN możemy rozdzielić użytkowników w ramach jednego switcha, zamiast kupować nowe urządzenia dla każdej nowej grupy.

Istnieje wiele powodów, dla których chcemy podzielić naszą sieć lokalną na mniejsze segmenty. Między innymi pozwala to na ograniczenie domen rozgłoszeniowych, co przekłada się na mniejszą ilość ruchu, którą muszą obsłużyć nasze urządzenia sieciowe. Również ze względów bezpieczeństwa separacja hostów jest bardzo ważna.

Wyobraź sobie taką sytuację: prowadzisz firmę, w której zatrudniasz handlowców, księgowych i własny dział IT. Twoi księgowi potrzebują dostępu do systemów księgowych, handlowcy dostępu do internetu, a dział IT administracyjnego dostępu do urządzeń. Bez odseparowania sieciami VLAN wszyscy mieliby dostęp do wszystkiego, co jest oczywiście bardzo niepożądaną sytuacją. Zdecydowanie lepszym pomysłem jest ograniczenie dostępu tylko do niezbędnych zasobów przedsiębiorstwa.

Podział użytkowników na osobne vlany w ramach jednego przełącznika

Zalety stosowania VLAN-ów

  • Bezpieczeństwo
  • Zmniejszenie ruchu w sieci poprzez ograniczenie domen rozgłoszeniowych
  • Zmniejszenie kosztów ze względu na lepsze wykorzystanie dostępnych łączy
  • Łatwiejsze zarządzanie zasobami (agregacja użytkowników i urządzeń o podobnych wymaganiach)

Rodzaje VLAN-ów

VLANy można podzielić ze względu na ich identyfikator numeryczny:

  • Podstawowe – te, których ID wynosi od 1 do 1005 (1002-1005 są zarezerwowane i nie mogą być używane)
  • Rozszerzone – ID od 1006 do 4094 Możliwe jest również dokonanie podziału ze względu na ich przeznaczenie:
  • Voice – dla urządzeń korzystających z VoIP
  • Management – do separacji administracyjnego dostępu do urządzeń
  • Data – dla zwykłego ruchu generowanego przez użytkowników i urządzenia sieciowe
  • Default – podstawowy VLAN, do którego domyślnie przypisywane są wszystkie porty (VLAN 1)
  • Native – Ramki z tego VLANu przesyłane są poprzez trunk bez tagowania.

Konfiguracja VLAN-ów

Aby przedstawić konfigurację sieci VLAN, utworzymy trzy VLAN-y zgodnie z wcześniej przedstawionym przykładem:

  • VLAN 10 – Dział Handlowy
  • VLAN 20 – Dział Księgowy
  • VLAN 30 – Dział IT
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name Handlowy
Switch(config-vlan)# vlan 20
Switch(config-vlan)# name Ksiegowy
Switch(config-vlan)# vlan 30
Switch(config-vlan)# name IT
Switch(config-vlan)# end

Samo utworzenie VLAN-ów nie wystarczy. Jak już wiesz, na nieskonfigurowanym switchu każdy port należy do domyślnego VLAN-u (VLAN 1). Musimy przypisać odpowiednie VLAN-y do portów.

Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport access vlan 10
Switch(config-if)#interface fastEthernet 0/2
Switch(config-if)#switchport access vlan 20
Switch(config-if)#interface fastEthernet 0/3
Switch(config-if)#switchport access vlan 30
Switch(config-if)#end

Na koniec pozostaje jeszcze weryfikacja, czy wszystko działa poprawnie.

Switch# show vlan brief
VLAN Name                             Status    Ports

---- -------------------------------- --------- -------------------------------

1    default                          active    Fa0/4, Fa0/5, Fa0/6, Fa0/7

                                                Fa0/8, Fa0/9, Fa0/10, Fa0/11

                                                Fa0/12, Fa0/13, Fa0/14, Fa0/15

                                                Fa0/16, Fa0/17, Fa0/18, Fa0/19

                                                Fa0/20, Fa0/21, Fa0/22, Fa0/23

                                                Fa0/24, Gig0/1, Gig0/2

10   Handlowy                         active    Fa0/1

20   Ksiegowy                         active    Fa0/2

30   IT                               active    Fa0/3

1002 fddi-default                     active    

1003 token-ring-default               active    

1004 fddinet-default                  active    

1005 trnet-default                    active
Switch#show  interface status
Port      Name               Status       Vlan       Duplex  Speed Type

Fa0/1                        notconnect   10         auto    auto  10/100BaseTX

Fa0/2                        notconnect   20         auto    auto  10/100BaseTX

Fa0/3                        notconnect   30         auto    auto  10/100BaseTX

Fa0/4                        notconnect   1          auto    auto  10/100BaseTX

Fa0/5                        notconnect   1          auto    auto  10/100BaseTX

Fa0/6                        notconnect   1          auto    auto  10/100BaseTX    

Trunk i tagowanie dot1Q

Domyślnie każdy port w switchu działa w trybie access (dostępowym) i przynależy wyłącznie do jednego VLAN-u. Oznacza to, że na danym porcie ruch może odbywać się wyłącznie w ramach jednej sieci VLAN, do której należy.

Co jednak w sytuacji, gdy potrzebujemy przesłać dane z więcej niż jednego VLAN-u przez dany port, na przykład między dwoma switchami? Wtedy należy taki port przestawić w tryb Trunk. Trunk to nic innego jak interfejs, który przesyła dane pochodzące z więcej niż jednego VLAN-u.

Połączenie typu trunk pomiędzy dwoma przełącznikami

Przed przesłaniem danych przez trunk, switch dodaje do ramki 32-bitowy tag, wykorzystując enkapsulację np. dot1q. Wyjątkiem są dane pochodzące z vlanu natywnego (native vlan), które są przesyłane jako nietagowane.

Skład vlan tagu obejmuje następujące pola:

  • Tag protocol identifier (TPID) 16 bitów, dla dot1Q wynoszący 0x8100
  • Priority code point (PCP) 3-bitowe pole dla celów Class of Service, skrótowo QoS dla warstwy 2
  • Drop elgible indicator (DEI) 1-bitowe pole wskazujące, czy pakiet może zostać odrzucony w przypadku problemów z przepustowością
  • Vlan identifier (VLAN ID) 12-bitowe pole wskazujące, z którego vlanu pochodzi pakiet.

Konfiguracja trunk

Konfiguracja portu, który ma pełnić funkcję trunk, jest bardzo prosta.

Switch#conf t
Switch(config)#interface gig0/1
Switch(config-if)#switchport mode trunk
💡
W przypadku starszych przełączników przed skonfigurowaniem interfejsu w trybie trunk, może być konieczne zdefiniowanie rodzaju enkapsulacji za pomocą polecenia: switchport trunk encapsulation dot1q
Switch#configure terminal
Switch(config)# vlan 99
Switch(config-vlan)# name native
Switch(config-vlan)# exit
Switch(config)#interface gigabitEthernet 0/1
Switch(config-if)#switchport trunk native vlan 99
Switch(config-if)#switchport trunk allowed vlan 2-98,100-1001
Switch(config-if)#end

Do modyfikacji, jakie VLAN-y mogą zostać przesłane przez trunk, służą dodatkowe modyfikatory:

  • all: wszystkie VLAN-y dozwolone
  • add: dodaje VLAN-y do listy dozwolonych
  • remove: usuwa VLAN-y z listy
  • none: żaden VLAN nie może być przesyłany
  • except: wszystkie VLAN-y oprócz podanych
Napisane przez
Rafał Rudewicz
Pasjonat sieci komputerowych i automatyzacji. CCNP Enterprise & DevNet Specialist. IP/MPLS SME. Dołącz do mnie, aby razem odkrywać fascynujący świat technologii!
Komentarze
Spis treści
Świetnie! Udało ci się pomyślnie zarejestrować.
Witaj z powrotem! Zalogowałeś się pomyślnie.
Pomyślnie subskrybowałeś Inna Sieć.
Twój link wygasł.
Sukces! Sprawdź swoją skrzynkę e-mailową, aby uzyskać magiczny link do logowania.
Sukces! Twoje informacje rozliczeniowe zostały zaktualizowane.
Twoje informacje rozliczeniowe nie zostały zaktualizowane.