1/24
Witajcie w warstwie drugiej
Dzień dobry. Do tej pory mówiliśmy o kablach i bitach (warstwa fizyczna). Dziś wchodzimy na poziom wyżej: do warstwy łącza danych (ang. Data Link Layer). To tutaj bity zamieniają się w logiczne ramki, a chaos elektryczny ustępuje miejsca uporządkowanej komunikacji adresowanej. Poznamy najważniejsze urządzenie w sieci LAN – Przełącznik (ang. Switch), który inteligentnie kieruje ruchem. Dowiemy się, dlaczego każde urządzenie sieciowe ma unikalny numer MAC i jak komputer "tłumaczy" znane wam adresy IP na te dziwne ciągi szesnastkowe. Zapraszam do świata decyzyjnego, gdzie każda mikrosekunda ma znaczenie dla wydajności sieci.
Warstwa łącza danych w modelu OSI
2/24
Adres fizyczny MAC (Media Access Control)
Każda karta sieciowa na świecie (Ethernet, Wi-Fi) musi być unikalnie identyfikowalna. Służy do tego adres MAC (ang. Media Access Control – kontrola dostępu do medium), zwany też adresem fizycznym lub sprzętowym. Składa się on z 48 bitów (6 bajtów), zapisywanych zazwyczaj w formacie szesnastkowym (heksadecymalnym), np. 00:1a:2b:3c:4d:5e. Adres ten jest fabrycznie przypisany do karty sieciowej przez producenta (choć można go programowo zmienić – MAC spoofing, czyli podszywanie się pod inny adres MAC). Adres MAC jest "płaski" – nie zawiera informacji o lokalizacji (jak numer kierunkowy czy kod pocztowy). Działa tylko w obrębie sieci lokalnej LAN i nigdy nie przekracza routera.
Obraz dla slajdu 2
3/24
Budowa adresu MAC: OUI i Host
Adres MAC dzieli się na dwie równe części po 24 bity:
1. OUI (ang. Organizationally Unique Identifier – unikalny identyfikator organizacji): Pierwsze 3 bajty identyfikują producenta karty (np. Dell, Apple, Cisco). Przydziela je organizacja IEEE. Dzięki temu, widząc początek adresu, wiemy, kto wyprodukował urządzenie.
2. Numer karty sieciowej (ang. NIC-specific): Kolejne 3 bajty to unikalny numer seryjny nadany przez producenta konkretnemu egzemplarzowi karty.
Taka struktura gwarantuje globalną unikalność – dwóch różnych producentów ma różne OUI, a jeden producent nie wyda dwóch kart z tym samym numerem seryjnym.
Struktura adresu MAC (OUI + NIC)
4/24
Przełącznik (Switch) – Inteligentny Hub
W poprzednim wykładzie poznaliśmy koncentrator (Hub), który bez analizy powielał sygnał na wszystkie porty. Przełącznik (ang. Switch) to urządzenie warstwy 2, które analizuje ramki. Przełącznik "uczy się", gdzie podłączeni są użytkownicy, tworząc wewnętrzną mapę sieci zwaną Tablicą Adresów MAC (ang. MAC Address Table lub CAM Table). Gdy ramka trafia do przełącznika, ten sprawdza adres docelowy w nagłówku i wysyła ramkę tylko do właściwego odbiorcy. Odciąża to sieć, zwiększa bezpieczeństwo (trudniej podsłuchać sąsiada) i pozwala na pełną wydajność dla każdej pary urządzeń.
Switch vs Hub - schemat ruchu
5/24
Proces uczenia się (Learning)
Skąd przełącznik wie, gdzie jest podłączony dany komputer? Uczy się dynamicznie!
1. Gdy włączysz przełącznik, jego tablica MAC jest pusta.
2. Gdy Komputer A wyśle ramkę do Komputera B, przełącznik analizuje adres źródłowy MAC Komputera A.
3. Przełącznik zapisuje w pamięci: "Adres MAC A znajduje się na Porcie 1".
4. Od tej pory przełącznik wie, gdzie odsyłać odpowiedzi dla komputera A. Proces ten jest ciągły. Wpisy w tablicy mają swój czas przeterminowania (ang. Aging Time, np. 300 sekund) – jeśli urządzenie milczy, wpis jest usuwany, by zwolnić pamięć i uwzględnić ewentualne przepięcie kabla.
Obraz dla slajdu 5
6/24
Proces wysyłania (Forwarding) i filtracji
Gdy przełącznik otrzyma ramkę, sprawdza adres docelowy MAC w swojej tablicy:
- Znany Unicast (ang. Known Unicast): Jeśli adres jest w tablicy, przełącznik wysyła ramkę tylko na ten jeden, konkretny port (przekazywanie, ang. Forwarding). Pozostałe porty milczą (filtrowanie, ang. Filtering).
- Nieznany Unicast (ang. Unknown Unicast): Jeśli adresu nie ma w tablicy (np. przełącznik jest świeżo włączony), przełącznik nie ma wyjścia – wysyła ramkę na wszystkie porty z wyjątkiem źródłowego (ang. Flooding – zalewanie). Działa wtedy chwilowo jak koncentrator, dopóki adresat nie odpowie i przełącznik się nie nauczy jego lokalizacji.
- Broadcast/Multicast: Ramki przeznaczone dla wszystkich (FF:FF:FF:FF:FF:FF) są zawsze wysyłane na wszystkie aktywne porty.
Procesy: Learning, Forwarding, Flooding
7/24
Budowa ramki Ethernet II
Ramka Ethernet to "koperta", w której przesyłane są dane. Jej nagłówek jest prosty:
1. Preambuła: Synchronizacja bitów (nie wlicza się do rozmiaru ramki).
2. Adres Docelowy (ang. Destination MAC): 6 bajtów.
3. Adres Źródłowy (ang. Source MAC): 6 bajtów.
4. EtherType: 2 bajty określające, co jest w środku (np. 0x0800 oznacza pakiet IPv4, 0x0806 to ARP).
5. Dane (ang. Payload – ładunek): 46 do 1500 bajtów (limit MTU – ang. Maximum Transmission Unit, maksymalna jednostka transmisji).
6. FCS (ang. Frame Check Sequence – sekwencja sprawdzania ramki): 4 bajty sumy kontrolnej CRC na końcu, służące do wykrywania błędów transmisji.
Struktura ramki Ethernet
8/24
Mikrosegmentacja i domeny kolizyjne
Zastąpienie koncentratora przełącznikiem wprowadza mikrosegmentację. Każdy port przełącznika stanowi odrębną domenę kolizyjną. Oznacza to, że kolizje między portami nie występują. Jeśli mamy przełącznik 24-portowy, mamy 24 domeny kolizyjne. Dzięki temu, w połączeniu z trybem Full-Duplex (wyłączenie detekcji kolizji), możemy wykorzystać 100% przepustowości łącza w obie strony. Jest to fundament wydajności współczesnych sieci LAN. Pamiętaj jednak: przełącznik nie dzieli domeny rozgłoszeniowej (broadcast)! Jeden "krzykacz" wysyłający pakiety rozgłoszeniowe nadal obciąża procesory wszystkich komputerów wpiętych do tego samego przełącznika.
Obraz dla slajdu 8
9/24
Protokół ARP (Address Resolution Protocol)
Ludzie posługują się nazwami domenowymi (www.google.com). Komputery w sieci IP używają adresów logicznych (192.168.1.5). Ale karta sieciowa Ethernet rozumie tylko adresy MAC (00:0C:29...). Jak połączyć te światy? Tu wkracza ARP (ang. Address Resolution Protocol – protokół odwzorowania adresów).
Gdy komputer chce wysłać pakiet na znany adres IP, musi poznać fizyczny adres MAC odbiorcy. Wysyła więc zapytanie ARP Request na adres rozgłoszeniowy (FF:FF:FF:FF:FF:FF): "Kto ma adres 192.168.1.5? Przedstaw się!".
Wszyscy otrzymują to pytanie, ale odpowiada (ARP Reply, jednorozgłoszeniowo) tylko właściciel tego IP: "To ja! Mój MAC to AA:BB:CC...".
Schemat działania zapytań ARP
10/24
Tablica ARP (ARP Cache)
Gdyby komputer musiał pytać o MAC przy każdym wysłanym pakiecie, sieć zostałaby zalana pakietami rozgłoszeniowymi. Dlatego wyniki zapytań są zapamiętywane w pamięci podręcznej zwanej tablicą ARP (ang. ARP Cache – pamięć podręczna ARP). Możesz ją podejrzeć na swoim komputerze wpisując w konsoli arp -a. Zobaczysz tam mapowanie: Adres IP - Adres MAC. Wpisy w tablicy wygasają po pewnym czasie (np. kilka minut), aby odzwierciedlić ewentualne zmiany kart sieciowych w urządzeniach o tym samym IP. Manipulacja tą tablicą jest podstawą groźnego ataku ARP Spoofing (atak człowiek w środku, ang. Man-in-the-Middle).
Zrzut ekranu z polecenia arp -a
11/24
Atak ARP Spoofing / Poisoning
Ponieważ protokół ARP nie posiadał w pierwotnej wersji żadnej autoryzacji, jest podatny na kłamstwa. Atakujący może wysyłać fałszywe, niewywoływane odpowiedzi ARP (ang. Gratuitous ARP – odpowiedź ARP bez uprzedniego zapytania), twierdząc, że to on jest Bramą Domyślną (Routerem). Ofiary, wierząc "na słowo", aktualizują swoje tablice ARP i zaczynają wysyłać cały ruch internetowy (hasła, maile) do atakującego zamiast do routera. Atakujący może podglądać dane i przesyłać je dalej, pozostając niewidocznym. Nowoczesne przełączniki posiadają mechanizm DAI (ang. Dynamic ARP Inspection – dynamiczna inspekcja ARP), który blokuje takie fałszywe pakiety, weryfikując je z zaufaną bazą DHCP.
Obraz dla slajdu 11
12/24
Metody przełączania: Store-and-Forward
Przełączniki mogą przetwarzać ramki na różne sposoby. Metoda Store-and-Forward (Zapamiętaj i Wyślij) jest najbezpieczniejsza i najpowszechniejsza. Przełącznik pobiera CAŁĄ ramkę do bufora pamięci, oblicza sumę kontrolną CRC i porównuje z tą w stopce. Jeśli ramka jest uszkodzona – jest odrzucana. Dopiero poprawna ramka jest wysyłana dalej. Wprowadza to niewielkie opóźnienie (zależne od wielkości ramki), ale gwarantuje, że sieć nie jest zaśmiecana błędnymi danymi. Jest to standard w dzisiejszych sieciach 1 Gb/s i 10 Gb/s.
Metody przełączania ramek
13/24
Metody przełączania: Cut-Through
Druga metoda to Cut-Through (Przekażnik skrótu). Przełącznik zaczyna wysyłać ramkę dalej, jak tylko przeczyta adres docelowy MAC (pierwsze 6 bajtów), nie czekając na resztę danych ani na sumę kontrolną. Plus: ultra-niskie opóźnienie (doskonałe dla klastrów obliczeniowych o wysokiej wydajności, ang. High Performance Computing). Minus: przełącznik przesyła dalej także uszkodzone ramki (zbyt krótkie ramki zwane "runt" lub ramki z błędami CRC), propagując błędy w sieci. Istnieją też metody hybrydowe (ang. Fragment-Free – bez fragmentów), które czytają pierwsze 64 bajty (gdzie najczęściej zdarzają się kolizje).
Obraz dla slajdu 13
14/24
Buforowanie w przełącznikach
Co się dzieje, gdy do przełącznika wpadają dane szybciej, niż mogą wyjść? Np. serwer wysyła dane portem 1 Gb/s do starej drukarki na porcie 100 Mb/s. Przełącznik musi przechować "nadmiarowe" ramki w pamięci RAM (buforze). Jeśli bufor się przepełni (przeciążenie sieci, ang. congestion), przełącznik musi odrzucić nowe ramki (ang. Drop), co drastycznie obniża wydajność TCP. Profesjonalne przełączniki w centrach danych mają głębokie bufory, aby radzić sobie z mikrowybuchami ruchu (ang. Microbursts – krótkie, intensywne impulsy ruchu). Buforowanie może być realizowane oddzielnie dla każdego portu (ang. Port-based Memory – pamięć per port) lub wspólnie dla całego urządzenia (ang. Shared Memory – pamięć współdzielona).
Koncepcja buforowania pakietów
15/24
Auto-MDIX
Dawniej inżynier musiał pamiętać, kiedy użyć kabla prostego (PC-przełącznik), a kiedy krosowanego (PC-PC, przełącznik-przełącznik). Dziś to historia. Funkcja Auto-MDIX (ang. Automatic Medium-Dependent Interface Crossover – automatyczne krzyżowanie interfejsu zależnego od medium) wbudowana w nowoczesne porty przełączników automatycznie wykrywa typ podłączonego kabla. Karta sieciowa programowo zamienia pary nadawcze z odbiorczymi w ułamku sekundy. Dzięki temu możemy używać kabli prostych do wszystkiego, a przełącznik sam "skrzyżuje" ścieżki wirtualnie, jeśli zajdzie taka potrzeba. Ułatwia to drastycznie życie instalatorom.
Obraz dla slajdu 15
16/24
Przełączniki konfigurowalne vs niezarządzalne
W sklepie kupisz tani przełącznik niezarządzalny (ang. Unmanaged). Nie ma on adresu IP, nie ma menu konfiguracyjnego. Po prostu wyjmujesz z pudełka i działa (ang. Plug & Play – podłącz i używaj). Jest świetny do domu. W firmach stosujemy przełączniki zarządzalne (ang. Managed). Pozwalają one na tworzenie sieci wirtualnych VLAN, monitorowanie za pomocą protokołu SNMP (ang. Simple Network Management Protocol), logowanie błędów, zdalny reset portów, ustawianie QoS (ang. Quality of Service – jakość usług) czy zabezpieczeń portów. Zarządzalny przełącznik to pełnoprawny komputer z systemem operacyjnym (np. Cisco IOS), wymagający wiedzy administracyjnej, ale dający pełną kontrolę nad siecią.
Switch domowy vs switch rackowy
17/24
Modularność i Stackowanie
W dużych sieciach kampusowych stosuje się przełączniki modularne (ang. Chassis – obudowa z gniazdami). To wielkie obudowy z zasilaczami, do których wsuwamy karty liniowe z portami Ethernet (np. karta z 48 portami 1 Gb/s, karta z 4 portami 40 Gb/s). Inną metodą skalowania jest stackowanie (ang. Stacking) – łączenie kilku fizycznych przełączników (np. 4 sztuki po 48 portów) specjalnymi kablami z tyłu obudowy. Stos (ang. Stack) zachowuje się logicznie jak JEDEN wielki przełącznik z jednym adresem IP do zarządzania i jedną tablicą MAC. To znacznie upraszcza konfigurację i zapewnia redundancję.
Obraz dla slajdu 17
18/24
Ramki Jumbo Frames
Standardowa ramka Ethernet przenosi 1500 bajtów danych (MTU). W sieciach pamięci masowej (ang. SAN – Storage Area Network, iSCSI) czy przy tworzeniu kopii zapasowych, procesor musi przetworzyć miliony nagłówków dla dużego pliku. Aby temu zaradzić, wymyślono Jumbo Frames (wielkie ramki) – ramki niestandardowe, przenoszące do 9000 bajtów danych. Dzięki temu narzut nagłówków jest mniejszy, a procesor CPU odciążony (mniej przerwań). Uwaga: każde urządzenie na ścieżce (serwer, przełączniki, macierz dyskowa) musi obsługiwać Jumbo Frames. Jeśli jedno urządzenie ma standardowe MTU, wielkie ramki zostaną po cichu odrzucone (tzw. "czarna dziura", ang. Black Hole), co powoduje trudne do zdiagnozowania problemy z połączeniem.
Zysk z użycia Jumbo Frames
19/24
Pętle w warstwie 2 (L2 Loops)
Co się stanie, jeśli połączymy dwa przełączniki dwoma kablami naraz dla bezpieczeństwa? Bez specjalnych mechanizmów powstanie pętla. Ramki rozgłoszeniowe (np. ARP) będą krążyć w nieskończoność, mnożąc się przy każdym okrążeniu. Powstaje "Burza Rozgłoszeniowa" (ang. Broadcast Storm), która w kilka sekund "zabija" sieć, obciążając CPU przełączników do 100%, a diody na urządzeniach zaczynają świecić światłem ciągłym (szaleńcze miganie). Nie można po prostu dublować kabli w warstwie 2 bez użycia protokołu STP (ang. Spanning Tree Protocol – protokół drzewa opinającego), który pozwala na tworzenie redundantnych połączeń przy jednoczesnym blokowania pętli logicznych.
Obraz dla slajdu 19
20/24
Analiza ramki w Wireshark
Jako inżynierowie musimy umieć zajrzeć "pod maskę". Używając analizatora sieciowego Wireshark, możemy przechwycić ramkę Ethernet. Zobaczymy dokładnie: 6 bajtów adresu docelowego (Destination), 6 bajtów adresu źródłowego (Source), typ protokołu (np. IP). Jeśli złapiemy ramkę ARP, zobaczymy czytelne zapytanie "Who has 10.0.0.1? Tell 10.0.0.2" (Kto ma adres 10.0.0.1? Powiedz 10.0.0.2). Analiza nagłówków warstwy 2 pozwala wykryć problemy takie jak zduplikowane adresy MAC czy błędne tagowanie VLAN. To podstawowe narzędzie "chirurga sieciowego".
Zrzut ramki Ethernet w Wiresharku
21/24
Podstawy konfiguracji przełącznika
Przełączniki konfigurowalne (np. z systemem Cisco IOS) obsługujemy poprzez interfejs wiersza poleceń (ang. CLI – Command Line Interface). Wyróżniamy trzy podstawowe tryby pracy uruchamiane hierarchicznie:
1. Tryb użytkownika (ang. User EXEC) – oznaczony znakiem zachęty Switch>. Pozwala tylko na podstawowy podgląd stanu urządzenia.
2. Tryb uprzywilejowany (ang. Privileged EXEC) – po wpisaniu komendy enable przeskakujemy do trybu Switch#. Daje pełny wgląd w konfigurację i pozwala na operacje związane z debugowaniem sieci.
3. Tryb konfiguracji globalnej (ang. Global Configuration) – po wpisaniu configure terminal mamy Switch(config)#. Z tego poziomu zmieniamy ustawienia dla całego systemu oraz przechodzimy do szczegółowej konfiguracji portów. Zrozumienie tej hierarchii to niezbędna podstawa.
Tryby konfiguracji przełącznika CLI
22/24
Konfiguracja podstawowa i zapis danych
Na początek dobrą praktyką jest nadanie urządzeniu czytelnej nazwy oraz nałożenie hasła:
Switch(config)# hostname SW_Pietro1
SW_Pietro1(config)# enable secret silnehaslo
Fizyczny dostęp do portu konsoli zabezpieczamy z trybu konfiguracji linii:
SW_Pietro1(config)# line console 0
SW_Pietro1(config-line)# password tajne
SW_Pietro1(config-line)# login
Każda zmiana w konsoli działa natychmiastowo, ale ląduje w ulotnej pamięci RAM (konfiguracja robocza, ang. Running-config). Po restarcie stracimy ustawienia. Aby zachować konfigurację na stałe, należy skopiować pamięć operacyjną do specjalnej pamięci nieulotnej NVRAM:
SW_Pietro1# copy running-config startup-config
Zapis konfiguracji przełącznika
23/24
Podsumowanie
W tym wykładzie opanowaliśmy warstwę drugą. Wiemy już, że przełącznik to mózg sieci LAN, który uczy się lokalizacji użytkowników na podstawie adresów MAC. Zrozumieliśmy, że adres MAC jest fizycznym dowodem tożsamości karty sieciowej, a protokół ARP to tłumacz łączący świat fizyczny MAC ze światem logicznym IP. Wiemy też, jak niebezpieczne są pętle i fałszywe pakiety ARP. Ta wiedza jest fundamentem, na którym teraz zbudujemy warstwę trzecią – routing i adresację IP, co będzie tematem naszego kolejnego spotkania.
Obraz dla slajdu 23
24/24
Zadanie domowe
Jako zadanie domowe, proszę wykonać na swoim komputerze polecenie ipconfig /all (Windows) lub ip addr (Linux), odnaleźć adres fizyczny swojej karty i sprawdzić w internetowej bazie OUI, kto jest jej producentem. Następnie proszę użyć polecenia arp -a, aby zobaczyć, z jakimi urządzeniami w sieci lokalnej rozmawiał ostatnio Wasz komputer. Czy potraficie zidentyfikować po adresie MAC, który wpis należy do Waszego domowego routera? Powodzenia!
Polecenia ipconfig i arp