Rafał Rudewicz

10 czerwca 2017

Inna Sieć Newsletter


Vlan – wszystko co musisz wiedzieć o wirtualnych sieciach LAN

Routing & Switching | 4 Komentarze

Segmentacja sieci LAN za pomocą vlanów, to jeden z najstarszych sposób na zwiększenie bezpieczeństwa oraz wydajności sieci. Wiesz już o nich wszystko?

i 3 Spis treści

Sieć LAN (z ang. local area network), czyli sieć lokalna obejmuje zazwyczaj wszystkie urządzenia na danym obszarze, którego granice zazwyczaj wyznacza router posiadający połączenie z internetem. 

Ethernet

W początkach standardu ethernet oznaczało to, że 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ą.

Huby

Huby były pierwszymi urządzeniami sieciowymi, które pozwoliły na zwiększenie liczby urządzeń podłączonych do jednej sieci. Nie posiadały one jednak żadnej logiki. Przekazywały pakiet otrzymany na jednym porcie na wszystkie pozostałe.  W związku z tym powiększały one domeny kolizyjne oraz rozgłoszeniowe.
Domena kolizyjna
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.
Domeny kolizyjne z udziałem switcha
Zmiejszenie domen kolizyjnych przez switch
Wraz z rozwojem sieci rozwiązano również problem half-duplex-u, dzięki czemu obie strony transmisji mogą teraz przesyłać dane naraz full-duplex. Mamy więc sytuację, w której rozwiązaliśmy problem kolizji oraz równoczesnej transmisji praktycznie podwajając przepustowość łączy (half vs full duplex). Pozostały nam jeszcze problemy z wielkością domen rozgłoszeniowych – w ramach których pakiety broadcast oraz unknow unicast są przekazywane do wszystkich urządzeń, separacją użytkowników oraz bezpieczeństwem.

VLAN – Virtual LAN

Sieci VLAN najprościej mówiąc, 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. Powodów, dla których chcemy, podzielić naszą sieć lokalną na mniejsze segmenty jest wiele. 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ępów tylko do niezbędnych zasobów przedsiębiorstwa. Sieci VLAN w praktyce

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żemy podzielić ze względu na ich identyfikator numeryczny:
  1. Podstawowe – wszystkie których ID wynosi od 1 do 1005 (1002-1005 są zarezerwowane i nie można ich stosować)
  2. Rozszerzone – ID od 1006 do 4094
Możemy dokonać podziału również ze względu na ich przeznaczenie:
  1. Voice – dla urządzeń korzystających z VoIP
  2. Management – dla odseparowania administracyjnego dostępu do urządzeń
  3. Data – zwykły ruch generowany przez użytkowników i urządzenia sieciowe
  4. Default – podstawowy vlan, do którego domyślnie przypisywane są wszystkie porty (VLAN 1)
  5. Native – Ramki z tego vlanu przesyłane są poprzez trunk bez tagowania.

Konfiguracja vlanów

W celu przedstawienia konfiguracji vlanów stworzymy trzy vlany 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 vlanu (vlan 1). Musimy przypisać odpowiednie vlany 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 została jeszcze weryfikacja, czy wszystko działa, jak należy.
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 vlanu. 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 vlanu 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 vlanu. trunk miedzy switchami Przed przesłaniem danych przez trunk, switch dodaje do ramki 32-bitowy tag, korzystając z enkapsulacji np. dot1q. Wyjątek stanowią dane pochodzące z vlanu natywnego (native vlan), które są przesyłane jako nietagowane. W skład vlan tagu wchodzą następujące pola:
  • Tag protocol identifier (TPID) 16 bitów, dla dot1Q wynosi 0x8100
  • Priority code point (PCP) 3 bitowe pole dla celów Class of Service, w skrócie QoS dla L2
  • Drop elgible indicator (DEI) 1 bitowe pole wskazujące, czy pakiet może być odrzucony w przypadku problemów z przepustowością
  • Vlan identifier (VLAN ID) 12 bitowe pole wskazujące z jakiego vlanu pochodzi pakiet

Konfiguracja trunk

Konfiguracja portu, który ma służyć za trunk jest bardzo prosta. 
Switch#conf t
Switch(config)#interface gig0/1
Switch(config-if)#switchport mode trunk
W podanym przykładzie mamy w pełni działający port będący trunkiem. Jednak w takiej konfiguracji zezwalamy na przesyłanie wszystkich vlanów, co nie jest bezpiecznym rozwiązaniem.  Zdecydowanie lepiej stworzyć nowy vlan, który będzie służył jako natywny.  W konfiguracji powinniśmy zezwolić tylko na vlany które będą używane lub chociaż uniemożliwić przesyłanie danych z vlanu domyślnego.
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 vlany mogą zostać przesłane przez trunk służą dodatkowe modyfikatory:
  • all wszystkie vlany dozwolone
  • add dodaje vlany do listy dozwolonych
  • remove usuwa vlany z listy
  • none żaden vlan nie może być przesyłany
  • except wszystkie vlany oprócz podany
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.

4 komentarze

  1. SpeX

    Dobra, jeśli zrobili swój vlan trunkowy, to co się dzieje z ruchem nie vlanowym (vlan 1), rozumiem, iż taki ruch nie opuszcza danego switcha?

    Odpowiedz
    • Rafał Rudewicz

      Ruch nietagowany również może opuszczać switch, służy do tego vlan natywny na trunk. Jest to jeden specjalny vlan, który może przechodzić przez trunk bez tagu dot1q z informacją o vlanie.

      Odpowiedz
      • SpeX

        Tak wie, ale mi chodzi o ten fragment:
        Switch(config-if)#switchport trunk native vlan 99
        Switch(config-if)#switchport trunk allowed vlan 2-98,100-1001

        Wtedy, domyślny ruch na nie opuści świcza. Bo nowy vlan trunk 99 nie zbiera ruchu z vlan1.

        Odpowiedz
        • Rafał Rudewicz

          Vlan 1 nie powinien być używany ze względów bezpieczeństwa, dlatego nie jest dopuszczony do ruchu na trunku.

          Odpowiedz

Wyślij komentarz

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