1/45
Zasada działania – przetwarzanie ramki krok po kroku

Budowa i konfiguracja urządzeń sieci LAN – koncentratory i przełączniki Ethernet

FDB, learning, forward/filter/flood, BUM – cykl życia ramki w przełączniku

Prezentacja szczegółowo omawia cykl życia ramki w przełączniku Ethernet – od wejścia na port, przez proces uczenia adresów źródłowych, decyzję forward/filter/flood na podstawie adresu docelowego, aż po obsługę ruchu BUM (Broadcast, Unknown Unicast, Multicast). Przedstawia budowę i działanie Forwarding Database (FDB), mechanizm aging time oraz zagrożenia związane z przepełnieniem tablicy MAC.

Ramka Ethernet wchodząca do przełącznika – strzałki od portu wejściowego przez ASIC do portu wyjściowego
2/45
Streszczenie

Najważniejsze idee prezentacji

Każda ramka, która trafia do przełącznika, przechodzi przez ściśle określony proces. Przełącznik odczytuje adres źródłowy (SA) i zapisuje go w tablicy MAC (FDB) wraz z numerem portu – to proces uczenia. Następnie odczytuje adres docelowy (DA) i podejmuje decyzję: jeśli adresat jest na tym samym porcie – filtruje ramkę; jeśli na innym – forwarduje; jeśli nieznany – wykonuje flooding na wszystkie porty. Ruch BUM (Broadcast, Unknown Unicast, Multicast) wymaga specjalnego traktowania – broadcast i nieznany unicast są zawsze floodowane, multicast może być optymalizowany przez IGMP Snooping.

Schemat cyklu życia ramki w przełączniku
4/45
Przegląd: co się dzieje z ramką w switchu?

Pięć etapów przetwarzania ramki

  1. Ramka wchodzi na port → fizyczne odebranie sygnału → złożenie bitów w ramkę.
  2. ASIC odczytuje adres źródłowy (SA) i adres docelowy (DA).
  3. Tablica MAC (FDB) jest aktualizowana (uczenie) i przeszukiwana (decyzja).
  4. Decyzja: forward / filter / flood.
  5. Ramka opuszcza port wyjściowy.
Cały proces trwa od kilku do kilkunastu mikrosekund – w ASIC, bez udziału CPU.
Schemat blokowy z 5 ponumerowanymi etapami i strzałkami przepływu
5/45
Analogia: przełącznik jako sortownia paczek

Przełącznik działa jak centrum logistyczne

Etap 1: Paczka wjeżdża na rampę (port wejściowy) – zostaje zarejestrowana. Etap 2: System odczytuje etykietę (adres docelowy MAC). Etap 3: Sprawdza w bazie danych (tablica MAC), na którą rampę ma skierować paczkę. Etap 4: Jeśli adres nieznany – wysyła paczkę na wszystkie rampy (flooding). Etap 5: Paczka trafia na właściwą rampę (port wyjściowy).

Przełącznik to sortownia, hub to megafon – jedna mówi do wszystkich, druga kieruje do konkretnego adresata.
Centrum logistyczne z taśmociągami i rampami – analogia do switcha
6/45
Forwarding Database (FDB) – co to jest?

Tablica adresów MAC przełącznika

FDB (Forwarding Database) – tablica adresów MAC, inaczej nazywana tablicą MAC (MAC Table). Struktura wpisu:

  • Adres MAC (48 bitów) – adres karty sieciowej.
  • Port (numer) – port, przy którym znajduje się urządzenie o tym MAC.
  • Timestamp / Timer – znacznik czasu ostatniego odświeżenia (aging).
  • Opcjonalnie: VLAN ID (dla przełączników z VLAN).
Forwarding Database (FDB / MAC Table) – tablica w pamięci przełącznika, która mapuje adresy MAC urządzeń na numery portów, umożliwiając decyzję forward/filter.
Tabela z 4 kolumnami – MAC, Port, VLAN, Timestamp – i przykładowymi wpisami
7/45
Budowa FDB – kolumny i przykłady

Przykład zawartości FDB

MACPortVLANTimestamp
AA:BB:CC:00:00:0111120s
AA:BB:CC:00:00:022145s
AA:BB:CC:00:00:0331290s
AA:BB:CC:00:00:104110s

Czwarty wpis (MAC na porcie 4) wygaśnie za ~10s (aging 300s) – nieaktywny.

Tabela FDB z 4 wierszami i kolorowym oznaczeniem timera
8/45
FDB w pamięci – CAM vs SRAM

Jak przechowywana jest tablica MAC?

Tablica MAC (FDB) przechowywana jest w pamięci CAM (Content-Addressable Memory) lub w SRAM z haszowaniem.

CAM: wyszukiwanie O(1) – adres MAC jest adresem pamięci. SRAM + haszowanie: tańsze, O(1) średnio, z możliwymi kolizjami. Większość nowoczesnych ASIC używa CAM dla tablicy MAC.

Budowę CAM i TCAM szczegółowo omawialiśmy w poprzedniej prezentacji (Anatomia przełącznika).
Porównanie CAM (błyskawiczne) vs SRAM z haszowaniem (szybkie, ale potencjalne kolizje)
9/45
Rozmiar FDB – ile adresów może przechować switch?

Pojemność w zależności od klasy przełącznika

  • Małe przełączniki domowe: 1K–4K wpisów (1000–4000).
  • Przełączniki firmowe średniej klasy: 8K–32K wpisów.
  • Przełączniki szkieletowe: 64K–256K wpisów.

Przekroczenie pojemności → switch przestaje uczyć się nowych adresów → nieznany unicast jest floodowany.

Gdy FDB jest pełna, przełącznik nie może uczyć się nowych adresów i zaczyna floodować ruch – to podstawa ataku MAC Flooding.
Wykres słupkowy – pojemność FDB w różnych klasach przełączników
10/45
Krok 1: Ramka wchodzi na port

Ingress – fizyczne odebranie ramki

Sygniał elektryczny dociera do portu → PHY (Physical Layer) odbiera bity. MAC (Media Access Control) warstwy łącza składa bity w ramkę.

Sprawdzany jest FCS (Frame Check Sequence) – integralność ramki. Jeśli FCS OK → ramka przekazana do ASIC do dalszego przetwarzania. Jeśli FCS błędny → ramka odrzucona.

Krok 1 (Ingress) – ramka wchodzi na port, przechodzi kontrolę FCS, trafia do ASIC.
Ramka wchodząca do portu – strzałka od kabla przez PHY i MAC do ASIC
11/45
Krok 2: Odczyt adresu źródłowego (SA)

Source MAC – poznajemy nadawcę

ASIC odczytuje pierwsze 12 bajtów ramki: adres docelowy (6B) i adres źródłowy (6B).

Adres źródłowy (SA) – adres MAC urządzenia, które wysłało ramkę. Tożsamość nadawcy jest teraz znana: {SA → port X}.

Krok 2 (Source MAC Lookup) – przełącznik odczytuje SA i przygotowuje się do zapisu w FDB.
Ramka Ethernet – podświetlony adres źródłowy (SA) z etykietą Źródło – uczymy się
12/45
Krok 3: Zapis do FDB (uczenie)

Learning – trzy scenariusze

ASIC sprawdza, czy SA już istnieje w FDB:

  • Jeśli NIE → nowy wpis: {SA → port X, timer = 0}.
  • Jeśli TAK, ale na innym porcie → aktualizacja: {SA → port X, timer = 0} (stacja mogła zmienić port).
  • Jeśli TAK i na tym samym porcie → odświeżenie timera (timer = 0).
Krok 3 (Learning) – przełącznik zapisuje lub odświeża wpis w FDB.
Strzałka od SA do tablicy FDB – zapis/aktualizacja wpisu
13/45
Przykład: uczenie krok po kroku

Pusta FDB → pierwsza komunikacja

Przełącznik włącza się z pustą FDB. Stacja A (MAC: AA:AA) na porcie 1 wysyła ramkę do stacji B (MAC: BB:BB).

Przełącznik odczytuje SA = AA:AA → uczy się: AA:AA jest na porcie 1. Przełącznik odczytuje DA = BB:BB → nieznany → flood na porty 2,3,4. Stacja B odpowiada: SA = BB:BB na porcie 2 → uczy się: BB:BB jest na porcie 2.

Po pierwszej wymianie ramek przełącznik zna już obie stacje – dalsza komunikacja jest wydajna.
Sekwencja 4 ramek – krok po kroku z zaznaczonym stanem FDB po każdej
14/45
Uczenie – co jeśli stacja zmieni port?

Dynamiczna aktualizacja FDB

Scenariusz: laptop przeniesiony z portu 2 na port 4. Stacja A (MAC: AA:AA) wysyła ramkę z portu 4.

Przełącznik znajduje AA:AA w FDB, ale przypisane do portu 2. Porównuje z bieżącym portem (4) – rozbieżność. Aktualizuje FDB: AA:AA → port 4. Stare wpisy (port 2) wygasną po aging time.

Przełącznik dynamicznie aktualizuje FDB – jeśli stacja zmieni port, wpis jest natychmiast korygowany przy następnej ramce.
Laptop odłączony od portu 2 i podłączony do portu 4 – FDB po zmianie
15/45
Uczenie się wielu adresów na jednym porcie

Jeden port, wiele urządzeń

Jeden port może obsługiwać wiele stacji (np. przez hub lub inny switch). Przykład: do portu 3 podłączony jest hub z 5 stacjami.

Switch uczy się wszystkich 5 adresów MAC i przypisuje je do portu 3. FDB: 5 wpisów, wszystkie z tym samym numerem portu (3).

Jeden port może mieć wiele adresów MAC – to normalne, gdy za portem jest kolejne urządzenie sieciowe.
Port 3 z hubem i 5 stacjami – FDB z 5 wpisami dla portu 3
16/45
Uczenie się a ruch broadcast

Nawet broadcast podlega uczeniu

Ramki broadcast (DA = FF:FF:FF:FF:FF:FF) – SA jest nadal odczytywany i uczony. Przełącznik zawsze uczy się adresów źródłowych – niezależnie od typu ramki.

Przykład: ARP request (broadcast) – SA = AA:AA → uczenie, DA = FF:FF:FF:FF:FF:FF → flood.

Nawet ramki broadcast i multicast podlegają procesowi uczenia – adres źródłowy jest zawsze zapisywany do FDB.
Ramka ARP request – podświetlony SA (do uczenia) i DA (do decyzji)
17/45
Gdy uczenie nie działa – FDB pełna

Konsekwencje przepełnienia tablicy MAC

Jeśli FDB jest pełna, nowe adresy źródłowe nie są dodawane. Konsekwencja: ramki do nowych, nieznanych adresów są floodowane.

Istniejące wpisy mogą być wypierane (np. LRU – Least Recently Used). Stan przejściowy: switch zachowuje się jak hub dla ruchu do nieznanych adresów.

Przepełnienie FDB = utrata zdolności uczenia = floodowanie = degradacja do huba.
FDB pełna (FULL) – nowa ramka z nowym SA odrzucana
18/45
Proces uczenia – podsumowanie bloku

Kluczowe informacje

  • SA w ramce → zapis/aktualizacja w FDB.
  • Wpis: MAC + port + timer.
  • Uczenie jest dynamiczne – zmiana portu → aktualizacja.
  • FDB może być pełna → nowe adresy nie są uczone.
Schemat blokowy podsumowujący proces uczenia – wejście ramki, odczyt SA, zapis do FDB
19/45
Krok 4: Odczyt adresu docelowego (DA)

Destination MAC – podejmujemy decyzję

Po odczycie SA i aktualizacji FDB, ASIC przechodzi do adresu docelowego (DA).

DA – adres MAC urządzenia, do którego ramka jest adresowana. Na podstawie DA podejmowana jest decyzja: forward / filter / flood.

Krok 4 (Destination MAC Lookup) – przełącznik odczytuje DA i przeszukuje FDB.
Ramka Ethernet – podświetlony adres docelowy (DA) z etykietą Cel – podejmujemy decyzję
20/45
Decyzja 1: Filtering

Gdy adresat jest na tym samym porcie

Jeśli DA znajduje się w FDB i jest przypisany do tego samego portu co SA → FILTER.

Ramka nie jest przekazywana do żadnego innego portu. Dlaczego? Adresat jest po tej samej stronie – ramka już do niego dotarła. To kluczowa funkcja przełącznika – oszczędza pasmo na innych portach.

Filtering – decyzja przełącznika o nieprzekazywaniu ramki do innych portów, gdy adres docelowy znajduje się na tym samym porcie co źródłowy.
Dwie stacje na porcie 1 (przez hub) – ramka między nimi nie wychodzi poza port 1
21/45
Przykład: Filtering w akcji

Dwie stacje na jednym porcie

Port 1: stacje A (AA:AA) i B (BB:BB) przez hub. A wysyła ramkę do B.

SA = AA:AA → uczenie (już znane). DA = BB:BB → znalezione w FDB, port = 1. Port źródłowy = 1, port docelowy = 1 → FILTER. Ramka nie wychodzi na porty 2, 3, 4.

Filtering = zero ruchu na pozostałych portach – pasmo zachowane dla innych transmisji.
Hub na porcie 1 z dwoma stacjami – ramka A→B pozostaje w obrębie portu 1
22/45
Decyzja 2: Forwarding

Gdy adresat jest na innym porcie

Jeśli DA znajduje się w FDB i jest przypisany do innego portuFORWARD.

Ramka jest przekazywana tylko do portu docelowego. To optymalny, najczęstszy przypadek w stabilnej sieci.

Forwarding – decyzja przełącznika o przekazaniu ramki wyłącznie do portu, przy którym znajduje się adres docelowy.
Ramka z portu 1 (stacja A) do portu 3 (stacja C) – strzałka tylko do portu 3
23/45
Przykład: Forwarding w akcji

Stacja A do stacji C

FDB: AA:AA → port 1, CC:CC → port 3. Stacja A (port 1) wysyła ramkę do stacji C (CC:CC).

SA = AA:AA → odświeżenie timera. DA = CC:CC → znalezione w FDB, port = 3. Port źródłowy (1) ≠ port docelowy (3) → FORWARD na port 3. Ramka nie wychodzi na porty 2 i 4.

Forwarding = precyzyjne dostarczenie – tylko adresat otrzymuje ramkę.
Switch z zaznaczoną ścieżką ramki: port 1 → ASIC → port 3
24/45
Decyzja 3: Flooding

Gdy adresat nieznany

Jeśli DA nie znajduje się w FDB → FLOOD.

Ramka jest wysyłana na wszystkie porty z wyjątkiem źródłowego. Dlaczego? Przełącznik nie wie, gdzie jest adresat – więc zakłada, że może być wszędzie. Flooding to mechanizm awaryjny.

Flooding – decyzja przełącznika o wysłaniu ramki na wszystkie porty (oprócz źródłowego), gdy adres docelowy nie znajduje się w FDB.
Ramka z nieznanym DA – rozchodzi się na wszystkie porty (oprócz źródłowego)
25/45
Przykład: Flooding w akcji

Pierwsza ramka w sieci

FDB pusta (świeżo uruchomiony switch). Stacja A (port 1, MAC: AA:AA) wysyła ramkę do stacji B (port 2, MAC: BB:BB).

SA = AA:AA → uczenie: AA:AA → port 1. DA = BB:BB → nieznaneFLOOD na porty 2, 3, 4. Stacja B odbiera i odpowiada. Odpowiedź: SA = BB:BB → uczenie: BB:BB → port 2. DA = AA:AA → znane → FORWARD tylko na port 1.

Tylko pierwsza ramka w komunikacji między dwiema stacjami jest floodowana. Kolejne są już forwardowane.
Sekwencja 2 ramek – pierwsza (flood), druga (forward)
26/45
Flooding – koszt wydajnościowy

Nieefektywność floodowania

Flooding obciąża wszystkie porty – marnuje pasmo. W małej sieci (kilka stacji) – pomijalny. W dużej sieci (setki stacji) – znaczące obciążenie.

Flooding jest źródłem nieefektywności – każda nieznana ramka jest wysyłana do wszystkich. Dlatego przełącznik uczy się – im więcej zna adresów, tym mniej flooduje.

Celem przełącznika jest zminimalizowanie floodingu – im pełniejsza FDB, tym wydajniejsza sieć.
Wykres – liczba znanych adresów w FDB vs ilość floodowanego ruchu – malejąca krzywa
27/45
Flooding a bezpieczeństwo

Flooding jako luka bezpieczeństwa

Flooding = ramka trafia na wszystkie porty – każda stacja może ją odebrać. W trybie promiscuous karta sieciowa może przechwycić floodowane ramki.

To naturalna cecha, ale też zagrożenie: jeśli przełącznik flooduje, ruch jest widoczny dla wszystkich. Atak MAC Flooding celowo przepełnia FDB, by wymusić floodowanie całego ruchu.

Flooding to konieczność, ale też luka bezpieczeństwa – im więcej floodowania, tym więcej ruchu mogą przechwycić niepowołane stacje.
Dwie stacje – jedna w trybie normalnym, druga w promiscuous przechwytuje floodowane
28/45
Tabela decyzyjna

Filter vs Forward vs Flood

Stan FDB dla DADecyzjaDziałanie
DA w FDB, ten sam port co SAFILTEROdrzuć ramkę
DA w FDB, inny port ni SAFORWARDPrzekaż na port docelowy
DA poza FDB (nieznany)FLOODWyślij na wszystkie porty (oprócz źródłowego)
DA = broadcast (FF:FF:FF:FF:FF:FF)FLOODWyślij na wszystkie porty (oprócz źródłowego)
Tylko 3 możliwe decyzje – cała złożoność przełącznika sprowadza się do tej prostej logiki.
Tabela decyzyjna z kolorami – zielony (forward), szary (filter), żółty (flood)
29/45
Logika decyzyjna – diagram przepływu

Cała inteligencja warstwy 2 w pigułce

Diagram: Start → odczytaj SA → aktualizuj FDB → odczytaj DA → DA = broadcast? → TAK → flood. NIE → sprawdź w FDB → DA znaleziony? → NIE → flood. TAK → ten sam port? → TAK → filter. NIE → forward.

Cała logika przełącznika w jednym diagramie – to cała inteligencja warstwy 2 w pigułce.
Diagram przepływu (flowchart) – prostokąty, romby decyzyjne, strzałki
30/45
BUM – definicja i znaczenie

Broadcast, Unknown Unicast, Multicast

BUM = Broadcast, Unknown Unicast, Multicast. Trzy typy ramek, które wymagają specjalnego traktowania – wszystkie są floodowane w pewnych warunkach.

BUM traffic jest głównym źródłem nieefektywności w sieciach przełączanych. Zrozumienie BUM jest kluczowe dla projektowania sieci i bezpieczeństwa.

Ruch BUM (Broadcast, Unknown Unicast, Multicast) – ramki, które przełącznik musi rozesłać na wiele lub wszystkie porty, co generuje niepotrzebne obciążenie sieci.
Trzy ikony – Broadcast (głośnik), Unknown Unicast (znak zapytania), Multicast (grupa osób)
31/45
Broadcast – definicja i adres

FF:FF:FF:FF:FF:FF – do wszystkich

Broadcast: ramka z adresem docelowym FF:FF:FF:FF:FF:FF (wszystkie 48 bitów = 1). Każda stacja w sieci odbiera ramkę broadcast (w normalnym trybie).

Przełącznik: broadcast = zawsze flooding na wszystkie porty (oprócz źródłowego). Broadcast jest niezbędny do działania protokołów: ARP, DHCP, NetBIOS.

Broadcast jest celową cechą Ethernetu – umożliwia odnajdywanie urządzeń bez znajomości ich adresu (ARP, DHCP).
Ramka z DA = FF:FF:FF:FF:FF:FF – rozchodzi się na wszystkie porty z wyjątkiem źródłowego
32/45
ARP – przykład ruchu broadcast w praktyce

Jak ARP wykorzystuje broadcast

Stacja A chce wysłać dane do stacji B, zna jej adres IP (192.168.1.2), ale nie zna MAC. A wysyła ARP Request: "Kto ma IP 192.168.1.2? Powiedz MAC".

Ramka ARP: DA = FF:FF:FF:FF:FF:FF (broadcast), SA = MAC_A. Switch flooduje ARP na wszystkie porty. Stacja B odbiera ARP, odpowiada ARP Reply (unicast do MAC_A). Switch uczy się MAC_B z odpowiedzi.

ARP to najczęstszy przykład broadcastu w sieci LAN. Każda komunikacja IP zaczyna się od ARP (chyba że adres jest w cache ARP).
Sekwencja ARP Request (broadcast) → ARP Reply (unicast) z zaznaczonym floodingiem
33/45
Broadcast Storm – zagrożenie

Lawinowe powielanie broadcastu

Gdy w sieci pojawi się pętla (loop), ramka broadcast krąży w nieskończoność. Każdy przełącznik powiela broadcast → lawinowy wzrost liczby ramek.

W ciągu kilku sekund broadcast może zasycić łącze 1 Gbps. Sieć staje się bezużyteczna – 100% CPU przełączników, brak miejsca w buforach.

Broadcast storm – jedno z najgroźniejszych zjawisk w sieciach LAN. Temat STP (Spanning Tree Protocol) chroniącego przed pętlami – w części 7 kursu.
3 przełączniki w pętli – strzałki broadcastu krążące w kółko, lawinowo rosnące
34/45
Broadcast – korzyści i koszty

Niezbędne zło

Korzyści: ARP, DHCP, NetBIOS – protokoły niezbędne do działania sieci.

Koszty: każda stacja musi przetworzyć każdy broadcast (przerwanie CPU). Przełącznik flooduje broadcast na wszystkie porty – marnuje pasmo. Broadcast storm może zniszczyć sieć.

Mitygacja: VLAN – dzieli sieć na mniejsze domeny rozgłoszeniowe.

Broadcast jest niezbędnym złem – bez niego sieć nie działa, ale jego nadmiar niszczy wydajność.
Waga – korzyści (protokoły) vs koszty (obciążenie, storm)
35/45
Unknown Unicast – definicja

Nieznany adres docelowy

Unknown Unicast: ramka unicast (do pojedynczej stacji), której adres docelowy nie znajduje się w FDB.

Przyczyny: stacja właśnie dołączyła do sieci (pierwsza ramka), wpis w FDB wygasł (aging time minął), FDB jest pełna i nie może przyjąć nowego wpisu. Traktowanie: flood – tak samo jak broadcast.

Unknown Unicast – ramka unicast, dla której przełącznik nie ma wpisu w FDB, co wymusza flooding.
Ramka z nieznanym DA (znak zapytania) – flood na wszystkie porty
36/45
Unknown Unicast – skala problemu

Wskaźnik zdrowia sieci

W stabilnej sieci: unknown unicast występuje rzadko (tylko pierwsza ramka do nowej stacji). W niestabilnej sieci: częste wygaśnięcia FDB → dużo unknown unicast → dużo floodingu.

Czynniki zwiększające unknown unicast: duża liczba stacji (FDB się przepełnia), krótki aging time (ustawiony konfiguracyjnie), atak MAC Flooding (celowe przepełnienie FDB).

Unknown unicast to wskaźnik zdrowia sieci – im więcej, tym gorzej skonfigurowana lub atakowana sieć.
Wykres – liczba stacji vs procent unknown unicast – rosnący
37/45
Multicast – definicja

Transmisja jeden-do-wielu

Multicast: ramka do grupy adresów MAC multicast (pierwszy bit DA = 1). Zakres: 01:00:5E:xx:xx:xx (IPv4 multicast) i 33:33:xx:xx:xx:xx (IPv6 multicast).

Zastosowania: IPTV, wideokonferencje, gry sieciowe, routing protocols (OSPF, EIGRP).

Multicast – transmisja jeden-do-wielu, w której ramka jest adresowana do grupy odbiorców, a nie do pojedynczej stacji ani do wszystkich.
Trzy stacje – jedna nadaje multicast do grupy, dwie inne odbierają
38/45
Multicast w switchu – bez IGMP Snooping

Multicast traktowany jak broadcast

Bez IGMP Snooping: switch traktuje multicast jak broadcast – flood na wszystkie porty. Dlaczego? Przełącznik nie wie, które porty są zainteresowane danym multicastem.

Skutek: stacje nieuczestniczące w multicastu również otrzymują ramki (obciążenie). Dla IPTV na 100 stacjach, gdzie tylko 10 ogląda: 90 stacji niepotrzebnie otrzymuje dane wideo.

Bez IGMP Snooping przełącznik traktuje multicast jako broadcast – to główna przyczyna marnowania pasma w sieciach z multicastem.
Switch flooduje multicast na wszystkie porty – stacja niebieska też otrzymuje
39/45
IGMP Snooping – optymalizacja multicastu

Przełącznik podsłuchuje IGMP

IGMP (Internet Group Management Protocol) – protokół używany przez stacje do zgłaszania członkostwa w grupach multicast. IGMP Snooping: przełącznik podsłuchuje ruch IGMP między stacją a routerem.

Gdy stacja wysyła IGMP Report ("chcę dołączyć do grupy 239.1.1.1") – switch zapisuje: port X → grupa 239.1.1.1. Gdy przychodzi multicast do 239.1.1.1 – forward tylko do portu X.

IGMP Snooping – mechanizm przełącznika, który analizuje pakiety IGMP, aby dowiedzieć się, które porty są zainteresowane ruchem multicast, i forwardować go tylko do tych portów.
IGMP Report od stacji (port 2) → switch zapisuje → multicast forward tylko na port 2
40/45
IGMP Snooping – korzyści i wymagania

Precyzyjne dostarczanie multicastu

Korzyści: znaczne oszczędności pasma (multicast tylko do zainteresowanych portów), mniejsze obciążenie stacji nieuczestniczących, skalowalność – IPTV dla tysięcy stacji bez przeciążenia sieci.

Wymagania: przełącznik musi obsługiwać IGMP Snooping (nie wszystkie tanie modele), musi być włączony (często domyślnie wyłączony), w sieci musi być router multicast (IGMP Querier).

IGMP Snooping przekształca multicast z broadcastu dla wszystkich w precyzyjne dostarczanie do zainteresowanych odbiorców.
Dwa schematy – bez IGMP Snooping (multicast wszędzie) i z IGMP Snooping (multicast tylko do zainteresowanych)
41/45
BUM – podsumowanie bloku

Tabela podsumowująca BUM

TypAdres docelowyDomyślne działanie switchaOptymalizacja
BroadcastFF:FF:FF:FF:FF:FFFloodVLAN
Unknown UnicastNieznany MACFloodWiększa FDB, dłuższy aging
MulticastMAC multicastFloodIGMP Snooping
Wszystkie trzy typy BUM są domyślnie floodowane – optymalizacja wymaga dodatkowych mechanizmów.
Tabela podsumowująca z kolorami i ikonami
42/45
Aging Time – definicja i działanie

Starzenie się wpisów w FDB

Aging Time – czas, po którym nieodświeżany wpis w FDB jest usuwany. Domyślnie: 300 sekund (5 minut) w większości przełączników.

Timer każdego wpisu jest resetowany przy każdej ramce z tego adresu źródłowego. Po upływie aging time → wpis usuwany → następna ramka do tego MAC będzie floodowana (unknown unicast).

Aging Time – maksymalny czas, przez który nieodświeżany wpis pozostaje w tablicy MAC, zanim zostanie usunięty.
Zegar odliczający dla wpisu w FDB – reset przy każdej ramce, usunięcie po 300s bezczynności
43/45
Aging Time – konfiguracja i dobór wartości

Krótki vs długi aging – kompromis

Zbyt krótki aging (np. 30s): wpisy szybko wygasają → dużo unknown unicast → dużo floodingu → przeciążenie sieci. Zbyt długi aging (np. 1800s): wpisy nieaktualnych stacji pozostają → FDB szybciej się przepełnia → też flood.

Wartość domyślna (300s) – dobry kompromis. W sieciach z dużą rotacją urządzeń (WiFi, hotele) – skrócić aging. W stabilnych sieciach (stacjonarne komputery) – wydłużyć aging.

Aging time to parametr do dostrojenia – domyślnie 300s, ale warto zmienić w zależności od profilu sieci.
Wykres – aging time vs flood rate – krzywa U
44/45
Zarządzanie FDB – statyczne wpisy MAC

Ręczne dodawanie wpisów do FDB

Oprócz dynamicznego uczenia, można ręcznie dodać statyczne wpisy MAC.

Zastosowania: stałe przypisanie serwera do portu (zapobiega spoofingowi), ochrona przed MAC Flooding (limit liczby MAC na porcie), konfiguracja port security. Statyczne wpisy nie wygasają (aging time nie dotyczy). Nadpisywane tylko przez administratora.

Statyczne wpisy MAC są częścią szerszego zagadnienia Port Security – szczegółowo w części 9 kursu.
FDB z wpisem statycznym (oznaczony S, bez timera)
45/45
Podsumowanie

Najważniejsze wnioski

  1. FDB (Forwarding Database / tablica MAC) to kluczowa struktura danych przełącznika – mapuje adresy MAC na porty.
  2. Uczenie (learning) odbywa się przez odczyt adresu źródłowego (SA) z każdej ramki i zapis do FDB.
  3. Decyzja przełączenia opiera się na adresie docelowym (DA): filter (ten sam port), forward (inny port), flood (nieznany adres).
  4. Ruch BUM (Broadcast, Unknown Unicast, Multicast) jest domyślnie floodowany – optymalizacja wymaga VLAN i IGMP Snooping.
  5. Aging Time (domyślnie 300s) zarządza ważnością wpisów – zbyt krótki lub zbyt długi powoduje nadmierny flooding.
  6. Przepełnienie FDB (MAC Flooding) prowadzi do degradacji przełącznika do trybu huba – stan niebezpieczny.
Podsumowujący schemat cyklu życia ramki – od wejścia przez uczenie, decyzję, do wyjścia