spis treści
zamknij
BHPEX Logo

Blog bezpieczeństwa w pracy

Konfiguracja sieci VLAN, routing między sieciami – warstwa 2 modelu ISO / OSI

10 stycznia 2020 0

Routing między sieciami VLAN

Sieci VLAN z definicji są wykorzystywane do segmentacji sieci i podziału jej na logiczne części, celem ograniczenia ruchu sieciowego, lepszego zarządzania oraz bezpieczeństwa. Celem sprawnego wykorzystywania sieci, niezbędny jest routing między sieciami VLAN.

Mianem sieci VLAN (ang. Virtual LAN) określamy sieci wirtualne, które zostały wyodrębnione z sieci fizycznej. Oznacza to, że dzięki użyciu mechanizmów oznaczania przynależności portu przełącznika do danej sieci VLAN przy wykorzystaniu jednego przełącznika jesteśmy w stanie stworzyć zbiory sieci, pomiędzy którymi ruch sieciowy będzie niemożliwy.

Profesjonalne usługi informatyczne dla firm. W swojej ofercie posiadamy zarządzanie serwerami, konfiguracja routerów, hosting www, szkolenia informatyczne oraz audyty bezpieczeństwa.

Zadzwoń i dowiedz się więcej, tel. 68 411 40 00.

Lecz rozbudowując swoją sieć prędzej czy później staniesz przed wyzwaniem, w którym jednak będziesz musiał zezwolić na komunikację pomiędzy różnymi sieciami VLAN. Wyobraźmy sobie oto taką sytuację. W firmie, w której pracujesz wdrożono nowe oprogramowanie bazodanowe, którego zadaniem jest usprawnienie zarządzania produktem. Aby wszyscy użytkownicy mogli korzystać z informacji zapisywanych w bazie zdecydowano się na umieszczenie jej na serwerze, którego zadaniem jest zarządzanie nią oraz zapewnienie poprawnej komunikacji z podłączającymi się klientami. Zasięg działania serwera bazodanowego ma obejmować całą firmę czyli wszyscy pracownicy muszą uzyskać możliwość komunikacji z serwerem. A Tobie jako administratorowi sieci zlecono wdrożenie całego rozwiązania. Po dokonaniu instalacji serwera stajemy przed problem, w którym to musimy zapewnić dostępność serwera użytkownikom końcowym.

I tu rodzi się pytanie – Jak zapewnić możliwość komunikacji, kiedy to komputery użytkowników leżą w odrębnych sieciach VLAN niż ta, w której znajduje się serwer? Odpowiedź na tak postawione pytanie po bliższej analizie nasuwa się sama. Musimy zapewnić routing pakietów pomiędzy sieciami VLAN. Sieci VLAN skonfigurowane jako oddzielne segmenty naszej sieci posiadają własną adresację IP. Oznacza to, że w danej sieci VLAN obowiązuje jeden schemat adresacji. Tak więc nic nie stoi na przeszkodzie aby do pracy zaprząc router bądź przełącznik warstwy 3.

Pierwsze rozwiązanie, które chciałbym zaprezentować, aby stworzyć routing między sieciami VLAN, polega na zestawieniu osobnego, fizycznego łącza pomiędzy routerem a switchem dla każdej z sieci VLAN. Schemat rozwiązania przedstawia poniższy rysunek.

routing VLAN

Każda z sieci VLAN do komunikacji z routerem używa osobnego łącza. Oznacza to, że Host1 należący do sieci VLAN 10 chcąc się skomunikować z Host2 przynależnym do sieci VLAN 20 swoje pakiety przesyła w kierunku routera. Host1 po analizie otrzymanego żądania wie, że host docelowy nie leży w jego przestrzenni adresowej tak więc pakiety zostają wysłane w kierunku bramy czyli routera R1. Otagowane pakiety z informacją o przynależności do danej sieci VLAN trafiają do switcha SW1. Ten przez łącze przynależne sieci VLAN 10 przekazuje je do routera. Router R1 dzięki informacją zawartym w tablicy routingu ustala interfejs przez, który należy je przekazać tak aby mogły trafić do komputera Host2. Pakiety zostają wysłane do switcha SW1 przez łącze zestawione na potrzeby przesyłu ruchu należącego do sieci VLAN 20. Schemat komunikacji z Host2 do Host1 przebiega w kolejności odwrotnej.

Drugie rozwiązanie, aby stworzyć routing między sieciami VLAN, bazuje na zestawieniu tylko jednego fizycznego łącza pomiędzy routerem R1 a przełącznikiem SW1 (ang. router on the stick – router na „patyku”). Przez tak zestawione łącze do routera będzie przekazywany ruch należący do różnych sieci VLAN. W tym rozwiązaniu pomiędzy routerem a switchem jest skonfigurowane łącze magistrali (trunk). Koncepcję rozwiązania przedstawia rysunek poniżej.

łącze TRUNK a SW1

Ktoś dociekliwy mógłby zapytać – Do jakiej sieci VLAN ma należeć interfejs routera? bądź inaczej – Jaki adres IP ma zostać interfejsowi routera przypisany? Tak naprawdę do interfejsu routera musimy przypisać wszystkie adresy IP, które są przynależne siecią VLAN. Tak więc interfejs routera będzie miał skonfigurowane trzy adresy IP: adres z zakresu 10.0.1.0/24 (sieć VLAN 10), adres z zakresu 10.0.2.0/24 (sieć VLAN 20) oraz adres z zakresu 10.0.3.0/24 (sieć VLAN 30). Przy przydzielaniu adresów korzysta się z podinterfejsów, bądź jak kto woli z subinterfejsów.

Rozpoczniemy od pierwszego rozwiązania czyli dla każdej z sieci VLAN będzie zestawione osobne połączenie routerswitch. Topologia naszego przykładu przedstawia się następująco:

połączenie router-switch - topologia

Tak naprawdę cała konfiguracja sprowadza się do wykorzystania dobrze znanych poleceń lecz tym razem konfigurację urządzeń przeprowadzamy w kontekście sieci VLAN.

Rozpoczynamy od przełącznika SW1 W pierwszym kroku została utworzona sieć VLAN o identyfikatorze 10 a następnie do sieci tej zostały przypisane porty f0/6 (punkt 2) oraz f0/5 (punkt 3) przełącznika. Porty pracują w trybie dostępu.

konfiguracja SW1

Analogiczna konfiguracja została przeprowadzona na drugim z przełączników a mianowicie na SW2. Na switchu tym zostaje utworzona sieć VLAN o identyfikatorze 20 (punkt 1) oraz porty przełącznika f0/11 oraz f0/18 (punkt 2 oraz 3) zostają skojarzone z nowo utworzoną siecią VLAN.

konfiguracja SW2

Na tym etapie oczywiście łączność z hostami jest jeszcze niemożliwa (rysunek poniżej) gdyż ostatnim trzecim krokiem jest konfiguracja routera.

konfiguracja routera

Konfiguracja routera sprowadza się do przypisania jego interfejsom odpowiednich adresów IP. Rozpoczynamy od interfejsu f0/1. Interfejs ten leży po stronie sieci VLAN 10 tak więc adres IP musi należeć do tej samej przestrzeni adresowej co adresy IP przynależne sieci VLAN. Adres interfejsu f0/1 routera R1 został ustalony na 10.0.0.1 255.255.255.0 (ponieważ sieć VLAN 10 obejmuje sieć 10.0.0.0/24).

przypisanie interfejsom odpowiednich adresów IP

Po przeprowadzonej konfiguracji jej efekt możemy sprawdzić poprzez wysłanie pakietu ICMP (ping) z Host1 na adres interfejsu f0/1 routera R1. Jak można stwierdzić (rysunek poniżej) kończy się on sukcesem.

wysłanie pakietu ICMP - ping

Drugim krokiem jaki musimy przeprowadzić jest konfiguracja interfejsu f0/0 routera R1. Konfigurację tę przeprowadzamy podobnie z tą różnicą, że adresem IP interfejsu będzie adres 10.0.1.1 255.255.255.0 (ponieważ sieć VLAN 20 obejmuje sieć 10.0.1.0/24)

konfiguracja interfejsu

I podobnie przeprowadzamy test ping (z komputera Host2 na adres interfejsu f0/0 routera R1), który również kończy się sukcesem.

test ping - sukces

Po tak przeprowadzonej konfiguracji obie zdefiniowane sieci jako przypisane bezpośrednio interfejsom routera powinny zostać odzwierciedlone w tablicy routingu routera R1.

tablica routingu routera R1

Router od tej pory będzie pośredniczył w wymianie pakietów pomiędzy obiema sieciami VLAN. Host1 uzyskał komunikację z Host2.

Podsumowując metodę opartą na interfejsach fizycznych warto nadmienić, że wybór tego rozwiązania przy dużej ilości sieci VLAN generuje większe koszty gdyż nie uda się nam zapewnić komunikacji z wykorzystaniem tylko jednego routera gdyż te posiadają swoje ograniczenia w postaci fizycznej liczby interfejsów. Rozwiązanie te zapewnia jednak większą wydajność ponieważ ruch danej sieci VLAN może wykorzystać pełną szerokość pasma interfejsu. Brak jest rywalizacji o szerokość pasma.

Przechodzimy do drugiego rozwiązania. Zmianie uległa nasza topologia sieci (rysunek poniżej).

topologia sieci - drugie rozwiązanie

Z routerem R1 zostało zostawione tylko jedno łącze, którego zadaniem będzie przesyłanie ruchu sieciowego należącego do różnych VLAN-ów. Zestawione łącze by spełnić wymagania oczywiście musi być typu trunk. Dodatkowo łącze magistrali musi zostać utworzone pomiędzy switchem SW1 a SW2.

Konfigurację rozpoczynamy podobnie jak w przykładzie poprzednim czyli od utworzenia sieci VLAN i przypisania interfejsów przełączników do sieci VLAN.

Rozpoczynamy od przełącznika SW1.

utworzenie sieci VLAN i przypisanie interfejsów przełączników SW1

Po zdefiniowaniu ustawień SW1 przeprowadzamy konfigurację switcha SW2.

utworzenie sieci VLAN i przypisanie interfejsów przełączników SW2

W następnym kroku zestawiamy łącze trunk pomiędzy switchem SW1 a SW2. Konfigurację przeprowadzamy z wykorzystaniem interfejsów f0/1.

W pierwszej kolejności łącze magistrali zostaje skonfigurowane na przełączniku SW1. Ze względu na domyślnie ustawioną opcję enkapsulacja łącza trunk na Auto, łącze trunk po wydaniu polecenia: switchport mode trunk nie zostaje ustawione. Aby łącze magistrali mogło zostać utworzone w pierwszej kolejności należy wybrać sposób „opakowania” ramek. W tym celu zostało wydane polecenie: switchport trunk encapsulation dot1q (standard IEEE 8021Q). Po wydaniu polecenia ponowne wydanie komendy nakazującej utworzenie łącza trunk kończy się sukcesem.

switchport trunk encapsulation dot1q

Aby łącze trunk działało należy je również skonfigurować od strony przełącznika SW2. Konfiguracja przełącznika SW2 w trybie konfiguracji interfejsu f0/1 sprowadza się do wydania polecenia: switchport mode trunk

switchport mode trunk

Konfiguracja obu przełączników dobiegła końca. Kontrolę ustawień możemy przeprowadzić za pomocą znanego nam polecenia: show vlan brief

Ustawienia przełącznika SW1.

show vlan brief SW1

oraz ustawienia przełącznika SW2.

show vlan brief SW2

Po wprowadzeniu ustawień przechodzimy do konfiguracji routera R1. Aby mógł nastąpić routing pomiędzy dwoma VLAN-ami należy skonfigurować dwa podinterfejsy i powiązać je z sieciami VLAN. Subinterfejs jest przypisany interfejsowi fizycznemu (w naszym przypadku jest to interfejs f0/1). Aby skonfigurować podinterfejs należy po definicji interfejsu umieścić kropkę i numer tworzonego podinterfejsu. Numer ten może być dowolny ale dobrą zasadą jest przyjęcie numeru zgodnego z kojarzoną siecią. Tak więc aby utworzyć podinterfejs wydajemy polecenie: interface f0/1.10 (interfejs fizyczny f0/1, natomiast numer podinterfejsu 10 ponieważ łącze te będzie powiązane z siecią VLAN 10). Po utworzeniu subinterfejsu łączymy go z siecią VLAN 10. Aby interfejs f0/1.10 mógł przesyłać ruch sieciowy należący do sieci VLAN 10 należy wydać polecenie: encapsulation dot1q <id_VLAN> W naszym wypadku polecenie przyjmie postać: encapsulation dot1q 10. Ostatnim krokiem jest przypisanie adresu IP. Adres przypisujemy w tradycyjny sposób z wykorzystaniem polecenia: ip address <adres_IP> <maska> (punkt 1).

Po skonfigurowaniu podinterfejsu obsługującego sieć VLAN 10 w analogiczny sposób przeprowadzamy konfigurację drugiego subinterfejsu odpowiedzialnego za przesył danych należących do sieci VLAN 20 (punkt 2 – pamiętamy aby w poleceniu umieścić prawidłowy identyfikator sieci VLAN oraz adres IP).

Ostatnim krokiem, aby stworzyć routing między sieciami VLAN, jest włączenie subinterfejsów. Włączenia dokonujemy poprzez włączenie interfejsu fizycznego. Włączenie interfejsu powoduje uruchomienie wszystkich podinterfejsów.

włączenie subinterfejsów

Kontrolę ustawień możemy dokonać po wydaniu polecenia: show ip interface brief

show ip interface brief

a także po sprawdzeniu tablicy routingu

sprawdzenie tablicy routingu

Po przeprowadzonej konfiguracji routera sprawdzamy możliwość komunikacji Host1 z routerem R1. Z komputera zostaje wykonany test ping na adres IP: 10.0.0.1 (adres bramy). Jak można zaobserwować poniżej test kończy się niepowodzeniem. O czym zapomnieliśmy? (taki mały test! Zanim Czytelniku przejdziesz dalej i poznasz odpowiedź spróbuj na tak postawione pytanie odpowiedzieć sam).

sprawdzenie możliwości komunikacji

Aby ruch należący do różnych sieci VLAN mógł być bez przeszkód przesyłany, łącze od strony routera musi pracować w trybie magistrali. Tak więc na przełączniku SW1 interfejs f0/5 musi pracować w trybie trunk. Jak można przekonać się po zrzucie poniżej na switchu SW1 jest skonfigurowane tylko jedno łącze trunk (interfejs f0/1 –  połączenie SW1-SW2).

tryb magistrali i trunk

Tak więc poprawiamy konfiguracje i na przełączniku SW1 interfejs f0/5 ustawiamy w trybie pracy magistrali tak by można było łączem przesłać ruch należący do różnych sieci VLAN.

poprawienie konfiguracji

Po korekcji ustawień sprawdzamy połączenie pomiędzy Host1 a interfejsem routera. Test kończy się powodzeniem.

test połączenia pomiędzy Host1 a interfejsem routera

Aby upewnić się czy na pewno wszystko działa wykonajmy test z Host2 na adres IP interfejsu routera. Jak można przekonać się poniżej test ten kończy się niepowodzeniem. Komunikacja pomiędzy Host2 a router R1 jest niemożliwa.

Komunikacja pomiędzy Host2 a router R1 jest niemożliwa

Powodu braku komunikacji należy doszukiwać się w konfiguracji przełącznika SW1. Błąd komunikacji jest spowodowany blokadą przesyłania ruchu należącego do sieci VLAN 20 przez przełącznik SW1. Ruch sieci VLAN nie jest przesyłany przez łącze trunk przełącznika SW1. Fakt ten można sprawdzić poprzez wydanie polecenia: show interfaces trunk Przełącznik SW1 przesyła ruch należący tylko do sieci VLAN 1 oraz VLAN 10.

show interfaces trunk

Aby przełącznik SW1 mógł przesłać poprzez swoje łącza trunk ramki należące do sieci VLAN 20 w pierwszej kolejności na przełączniku tym należy utworzyć sieć VLAN o identyfikatorze 20.

Pomimo utworzenia sieci i sprawdzenia stanu łącza trunk nadal uzyskujemy informację, że jedynym możliwym ruchem są ramki należące do sieci VLAN 1 oraz VLAN 10.

ramki należące do sieci VLAN 1 oraz VLAN 10

Aby zmienić ten stan rzeczy należy na interfejsach tworzących łącza trunk zezwolić na przesył ramek przynależnych do sieci VLAN 20. Łącza trunk tworzą interfejsy f0/1 oraz f0/5 tak więc by nie konfigurować każdego z interfejsu z osobna za pomocą przełącznika range wprowadzane ustawienia będą konfigurowane jednocześnie. Aby zezwolić na ruch ramek sieci VLAN należy wydać polecenie: switchport trunk allowed vlan add 20 (parametr add ponieważ do bieżącej konfiguracji dodajemy sieć VLAN 20, pominiecie tego parametru spowoduje zastąpienie bieżących sieci VLAN na sieć VLAN 20).

switchport trunk allowed vlan add 20

Po dokonaniu wszystkich poprawek wykonajmy ponownie test ping (Host2-R1). Test kończy się sukcesem.

test ping po poprawkach

I dla pewności test pomiędzy Host2 a Host1. Test również kończy się sukcesem. Routing pomiędzy sieciami VLAN został skonfigurowany.

Routing pomiędzy sieciami VLAN został skonfigurowany

Podsumowując metodę router na „patyku”, należy pamiętać o konfiguracji połączeń trunk i o zezwoleniu przesyłu przez tak skonfigurowane łącza ramek skonfigurowanych sieci VLAN. Metoda pozwala nam ograniczyć ilość wykorzystywanych interfejsów routera lecz w przypadku dużego ruchu wąskim gardłem może okazać łącze trunk router-przełącznik. Rozwiązaniem problemu (w przypadku posiadania niewykorzystanych interfejsów routera) jest rozdzielenie routingu na kilka interfejsów fizycznych – np. interfejs f0/0 routuje ramki sieci VLAN 10, 20, 30, 40 a interfejs f0/1 odpowiada za przesyłanie ruchu sieciowego do sieci VLAN 50, 60, 70 i 80.

Do dyspozycji mamy jeszcze trzecie rozwiązanie a mianowicie wykorzystanie przełącznika z możliwością przełączania pakietów w warstwie 3. Niestety tej metody nie opiszę, gdyż takowego urządzenia nie posiadam, co z kolei skutecznie uniemożliwia mi przeprowadzenie konfiguracji testowej.

Tak więc kończymy. Cel osiągnięty.

Nazywam się Rafał Wielgus, jestem informatykiem oraz międzynarodowym audytorem wiodącym ISO 27001. Świadczę kompleksowe usługi z zakresu bezpieczeństwa teleinformatycznego, wdrażam systemy z rodziny „IT security”, skutecznie nadzoruję RODO, prowadzę szkolenia oraz audyty.

Posiadam prawie 20 lat doświadczenia w bezpieczeństwie systemów i sieci komputerowych. Jako jeden z nielicznych w Polsce dysponuję wiedzą praktyczną w zakresie Certified Information Systems Security Professional (CISSP). Szkolony również przez ABW i SKW.

 

 

Komentarze (0)

Dodaj komentarz