1/26 Ramka Ethernet w switchu i routerze – porównanie L2 i L3
Prezentacja zawiera 26 slajdów z porównaniem, przykładami krok po kroku i tabelą podsumowującą.

Ethernet frame – podstawowa jednostka danych w sieciach Ethernet.

Sposób jej przetwarzania zależy od tego, przez jakie urządzenie przechodzi.

Przełącznik (switch) działa w warstwie L2 i nie modyfikuje ramki – adresy MAC pozostają bez zmian.

Router działa w warstwie L3 i zawsze zmienia adresy MAC źródłowe i docelowe, przepisując ramkę dla każdego hopu.

Ta fundamentalna różnica wpływa na wszystko – od wydajności przez bezpieczeństwo po projektowanie topologii sieci.

Zrozumienie różnicy między przetwarzaniem ramki przez switch a router jest fundamentalne dla każdego administratora sieci.

Wiele problemów sieciowych wynika właśnie z błędnego założenia, że router zachowuje się jak switch – lub odwrotnie.

Switch operuje wyłącznie na warstwie łącza danych (L2), zaglądając tylko w adres MAC docelowy, podczas gdy router musi przeanalizować nagłówek warstwy sieciowej (L3), podjąć decyzję routingu, a następnie zbudować zupełnie nową ramkę L2 dla następnego skoku.

W materiałach dydaktycznych często podkreśla się, że switch jest "przezroczysty" dla ramek Ethernet, podczas gdy router jest "granicą" domen rozgłoszeniowych i warstw L2.

W praktyce oznacza to, że ruch między różnymi sieciami IP musi zawsze przejść przez router, co wiąże się ze zmianą adresów MAC na każdym hopie.

W przeciwieństwie do tego, w obrębie tej samej sieci IP ramki mogą być przełączane przez wiele switchy bez żadnych modyfikacji adresów MAC ani IP.

2/26 Streszczenie
Kluczowa różnica: w switchu adresy MAC się nie zmieniają; w routerze adresy MAC zmieniają się na każdym hopie.

Warstwa L2 (łącza danych): adresy MAC źródła i przeznaczenia są używane do dostarczania ramki w obrębie jednego segmentu sieci.

Przełącznik (switch) uczy się adresów MAC i przekazuje ramki bez ich modyfikacji.

Warstwa L3 (sieci): adresy IP źródła i przeznaczenia są używane do routowania pakietów między różnymi sieciami.

Router odrzuca starą ramkę L2 i tworzy nową z własnymi adresami MAC.

Adresy IP źródła i przeznaczenia pozostają niezmienione w obu przypadkach (router jedynie dekrementuje TTL).

Prezentację zamyka tabela podsumowująca, która w przejrzysty sposób zestawia, które pola nagłówków ulegają zmianie w switchu i routerze.

Prezentacja porządkuje wiedzę o przetwarzaniu ramek Ethernet na dwóch kluczowych poziomach abstrakcji.

W pierwszej części przypomniano budowę ramki Ethernet i omówiono działanie switcha – urządzenia warstwy L2, które nie modyfikuje zawartości ramki.

W drugiej części szczegółowo przeanalizowano proces routingu, w którym router każdorazowo zdejmuje starą ramkę L2 i nakłada nową.

Część praktyczna zawiera dwa szczegółowe przykłady: transmisję host–host przez switch (brak zmian w ramce) oraz transmisję przez router (zmiana adresów MAC na każdym hopie).

3/26 Budowa ramki Ethernet – przypomnienie
PoleDługość (B)Opis
Preamble + SFD8Synchronizacja zegarów
MAC dst6Adres MAC odbiorcy (docelowy)
MAC src6Adres MAC nadawcy (źródłowy)
EtherType / Length2Typ protokołu L3 (np. 0x0800 = IPv4)
Payload (dane)46-1500Pakiet L3 (np. IP, ARP)
FCS (CRC)4Suma kontrolna ramki
Switch operuje na MAC – router na IP. To determinuje, co się zmienia w ramce.
W kontekście tego tematu najważniejsze są pola: MAC dst, MAC src oraz Payload (w którym znajduje się pakiet IP z adresami L3).

Ramka Ethernet (IEEE 802.3) składa się z nagłówka L2, danych i znacznika FCS:

Standard Ethernet IEEE 802.3 definiuje ramkę o minimalnej długości 64 bajtów (bez preambuły) i maksymalnej 1518 bajtów (bez preambuły, z FCS).

Preambuła i SFD (Start Frame Delimiter) są dodawane przez warstwę fizyczną i nie są częścią ramki widzianej przez warstwę łącza danych.

Pole EtherType identyfikuje protokół wyższej warstwy: 0x0800 dla IPv4, 0x86DD dla IPv6, 0x0806 dla ARP.

Ramka Jumbo (w sieciach Ethernet o dużej przepustowości) może mieć do 9000 bajtów, ale standardowa ramka Ethernet ma limit 1500 bajtów dla danych (MTU).

Po przekroczeniu MTU router musi fragmentować pakiet IP (lub odrzucić go z komunikatem ICMP Fragmentation Needed).

Dla switcha fragmentacja nie istnieje – switch nie analizuje zawartości payloadu, a jedynie adres MAC docelowy.

4/26 Model OSI/TCP/IP – gdzie siedzi ramka Ethernet?

Warstwy 2 i 3 w modelach referencyjnych:

  • Warstwa 2 (łącza danych) – jednostka danych: ramka (frame). Odpowiada za dostarczenie danych między sąsiednimi urządzeniami w tej samej sieci fizycznej/logicznej. Adresacja: MAC (48 bitów). Urządzenia: switch, karta sieciowa.
  • Warstwa 3 (sieciowa) – jednostka danych: pakiet (packet). Odpowiada za dostarczenie danych między różnymi sieciami. Adresacja: IP (32 bity IPv4, 128 bitów IPv6). Urządzenia: router.
  • Enkapsulacja – dane aplikacji → segment TCP/UDP (L4) → pakiet IP (L3) → ramka Ethernet (L2) → bity na medium (L1). Każda warstwa dodaje swój nagłówek.
  • PDU (Protocol Data Unit) – na L2: frame, na L3: packet, na L4: segment/datagram.
  • Dekompozycja w routerze – router odbiera ramkę L2, zdejmuje nagłówek L2, analizuje pakiet L3, decyduje o routingu, i enkapsuluje pakiet w nową ramkę L2 dla następnego skoku.
Switch operuje na ramkach (L2). Router operuje na pakietach (L3) i otacza je nowymi ramkami (L2). To jest fundamentalna różnica koncepcyjna.

W modelu TCP/IP warstwa dostępu do sieci odpowiada za L1+L2, a warstwa internetu za L3. Router jest granicą między warstwą dostępu a internetu.

Z punktu widzenia administratora sieci: gdy patrzysz na ramkę w Wiresharku, widzisz enkapsulację warstw. Nagłówek Ethernet (L2) jest na zewnątrz, wewnątrz niego nagłówek IP (L3), a w nim dane TCP/UDP (L4).

Switch patrzy tylko na zewnętrzną warstwę (L2). Router zdejmuje zewnętrzną warstwę (L2), patrzy na L3 i zakłada nową L2.

W nowoczesnych sieciach SDN (VXLAN, EVPN) enkapsulacja może być wielopoziomowa: ramka L2 w pakiecie L3 w ramce L2 (tzw. MAC-in-IP). W takich przypadkach urządzenie fizyczne działa jako router L3, ale emuluje switch L2 dla ruchu overlay.

Mimo tych złożoności, podstawowa zasada pozostaje: każde urządzenie, które zmienia adresy MAC w warstwie L2, wykonuje funkcję routingu L3 (lub jej odpowiednik).

5/26 Szczegółowa budowa ramki Ethernet – schemat ASCII

EtherType identyfikuje protokół L3.

FCS to suma kontrolna całej ramki.

Objaśnienie: Preambuła i SFD służą synchronizacji na poziomie fizycznym.

MAC dst (6 B) i MAC src (6 B) to adresy warstwy L2.

Payload zawiera pakiet IP z nagłówkiem L3.

Poniższy schemat przedstawia pełną strukturę ramki Ethernet II (DIX) od preambuły do FCS:

Maksymalny rozmiar danych to 1500 bajtów (standardowy MTU).

Z FCS (4 B) daje to ramkę o rozmiarze od 64 do 1518 B.

W standardzie Ethernet II (DIX) nagłówek ramki ma stałą długość 14 bajtów: 6 B MAC dst + 6 B MAC src + 2 B EtherType.

Minimalny rozmiar danych to 46 bajtów (jeśli pakiet L3 jest krótszy, dodawane jest padding do 46 B).

W standardzie IEEE 802.3 pole EtherType jest zastąpione polem Length (długość danych), a identyfikacja protokołu następuje przez nagłówek LLC (Logical Link Control) w danych.

W praktyce współczesne sieci używają formatu Ethernet II (z EtherType), który jest domyślnym formatem dla IP, ARP i większości protokołów L3.

Znajomość dokładnego układu pól ramki jest niezbędna przy analizie śladów sieciowych w Wiresharku oraz przy projektowaniu urządzeń sieciowych.

+----------------+------+------------------+------------------+-------+-----------------------------------------------------+------+
|   Preambuła    | SFD  |     MAC dst      |     MAC src      | Ether |                  Payload (L3)                       | FCS  |
|   7 bajtów     | 1 B  |       6 B        |       6 B        | Type  |                 46-1500 bajtów                      | 4 B  |
| 101010...1010 |10101011| BB:BB:BB:BB:BB:BB| AA:AA:AA:AA:AA:AA|0x0800 |+------+------+-----------+------------------------+ |      |
| synchronizacja | 11   |                  |                  |  IPv4 || V/HL | TOS  | TotalLen  | ID/FlagFO/TTL=128      | |      |
|                |      |                  |                  |       || Prot |HdrSum|  IP src   |   IP dst / Dane...     | |      |
|                |      |                  |                  |       |+------+------+-----------+------------------------+ |      |
+----------------+------+------------------+------------------+-------+-----------------------------------------------------+------+
Łączny rozmiar ramki: 64–1518 B (bez preambuły i SFD). Minimalna długość 64 B wynika z wymogu wykrywania kolizji CSMA/CD.
6/26 Przełącznik (switch) – urządzenie warstwy L2

Zasada działania:

  • Odbiera ramkę na porcie wejściowym
  • Odczytuje adres MAC źródłowy i uczy się go (zapisuje w tablicy MAC z numerem portu)
  • Odczytuje adres MAC docelowy i szuka go w tablicy MAC
  • Jeśli zna port docelowy – wysyła ramkę tylko na ten port (forwarding)
  • Jeśli nie zna – wysyła ramkę na wszystkie porty oprócz wejściowego (flooding)
  • Jeśli adres docelowy to broadcast (FF:FF:FF:FF:FF:FF) – flood na wszystkie porty
Switch NIE modyfikuje ramki – MAC src, MAC dst, payload – wszystko pozostaje bez zmian.

Switch (przełącznik) działa w warstwie łącza danych (L2) – nie analizuje nagłówka IP ani wyższych warstw.

Przełącznik jest urządzeniem przezroczystym (transparent bridge) – hosty podłączone do switcha nie wiedzą o jego istnieniu.

Każda ramka dociera do odbiorcy w niezmienionej postaci, z oryginalnymi adresami MAC nadawcy i odbiorcy.

Switch nie ingeruje w treść ramki, nie zmienia adresów, nie modyfikuje pól ani nie dodaje żadnych informacji.

Jedyne, co robi, to podejmowanie decyzji o tym, na który port przesłać ramkę.

Tablica (zwana też CAM – Content Addressable Memory) jest kluczowym elementem switcha.

Każdy wpis zawiera: adres, numer portu i znacznik czasu (aging time, domyślnie 300 sekund).

Jeśli w ciągu aging time adres nie wyśle żadnej ramki, wpis jest usuwany.

Nowoczesne switche mogą przechowywać od kilku tysięcy do nawet miliona wpisów MAC w zależności od modelu i przeznaczenia.

7/26 Ramka w switchu – adresy MAC się nie zmieniają
PolePrzed switchemPo switchuZmiana?
MAC srcAA:AA:AA:AA:AA:AAAA:AA:AA:AA:AA:AANIE
MAC dstBB:BB:BB:BB:BB:BBBB:BB:BB:BB:BB:BBNIE
IP src192.168.1.10192.168.1.10NIE
IP dst192.168.1.20192.168.1.20NIE
TTL128128NIE
FCSCRC1CRC1NIE*
Switch jest niewidoczny dla hostów – ramka wygląda identycznie przed i po przejściu przez switch.

Gdy ramka przechodzi przez switch, żadne pole nagłówka L2 nie ulega zmianie:

* nie zmienia się, o ile switch nie dokonuje translacji (np. QinQ, MACsec).

W czystym przełączaniu L2 FCS pozostaje oryginalny.

Transparentność switcha ma kluczowe znaczenie dla rozwiązywania problemów sieciowych.

Warto jednak pamiętać o wyjątkach.

Gdy wykonujemy ping między dwoma hostami w tej samej sieci, ślad w programie Wireshark będzie pokazywał te same adresy MAC źródłowe i docelowe w ramce wysłanej i odebranej.

Switch nie pojawia się w nagłówkach ramki – nie dodaje swojego adresu MAC ani jako źródłowy, ani jako docelowy.

Jedynym śladem obecności switcha jest znacznik czasu i ewentualne opóźnienie (latency) rzędu mikrosekund.

W sieciach zarządzalnych switch może modyfikować ramkę w specyficznych sytuacjach: dodawanie tagu VLAN 802.1Q, stosowanie MACsec (802.1AE) z szyfrowaniem, implementacja QinQ (802.1ad) dla dostawców usług.

W tych przypadkach switch dodaje lub modyfikuje pola nagłówka L2, ale standardowe przełączanie L2 pozostawia ramkę nietkniętą.

W niniejszym omówieniu skupiamy się na podstawowym przypadku – czystym przełączaniu bez translacji.

8/26 Schemat ASCII – ramka przez switch (MAC bez zmian)

Switch uczy się adresów MAC metodą "learning" – odczytuje adres źródłowy każdej odebranej ramki i zapisuje go w tablicy MAC z numerem portu, na który ramka przyszła.

Dzięki temu przyszłe ramki do tego adresu będą wysłane tylko na odpowiedni port, bez zbędnego floodowania.

Proces uczenia jest ciągły i dynamiczny – wpisy starzeją się i są usuwane po upływie aging time (domyślnie 300 s w większości switchy).

Gdy switch odbiera ramkę, której adres docelowy nie jest znany w tablicy, wykonuje flooding – wysyła ramkę na wszystkie porty z wyjątkiem tego, na którym została odebrana.

Host docelowy (jeśli istnieje) odpowie, a switch przy okazji nauczy się jego adresu MAC.

W przypadku adresu broadcast (FF:FF:FF:FF:FF:FF) switch zawsze wykonuje flood, ponieważ broadcast ma być dostarczony do wszystkich urządzeń w domenie L2.

W żadnym z tych przypadków switch nie narusza zawartości ramki.


  RAMKA WEJŚCIOWA (port 1)
+---------------------+-----------------------+-------------------+
|  MAC dst: B         |  MAC src: A           |  Payload (IP)     |
|  BB:BB:BB:BB:BB:BB  |  AA:AA:AA:AA:AA:AA    |  src=192.168.1.10 |
|                     |                       |  dst=192.168.1.20 |
+---------------------+-----------------------+-------------------+
  ^                                           |
  |                                           v
  |           TABLICA MAC SWITCHA
  |         +--------+-------------------+----------------------+
  |         | Port 1 | AA:AA:AA:AA:AA:AA | (nauczony z ramki)   |
  |         | Port 2 | BB:BB:BB:BB:BB:BB | (nauczony wcześniej) |
  |         +--------+-------------------+----------------------+
  |                           |
  +------+------+             |
  |  SWITCH L2  |  (nie modyfikuje ramki!)
  +------+------+             |
  |                           v
  |               (tylko port 2 – brak flood)
  v
+---------------------+-----------------------+-------------------+
|  MAC dst: B         |  MAC src: A           |  Payload (IP)     |
|  BB:BB:BB:BB:BB:BB  |  AA:AA:AA:AA:AA:AA    |  src=192.168.1.10 |
|                     |                       |  dst=192.168.1.20 |
+---------------------+-----------------------+-------------------+
  RAMKA WYJŚCIOWA (port 2) – identyczna
Ramka po przejściu przez switch wygląda dokładnie tak samo jak przed wejściem.
9/26 VLAN 802.1Q – jak znacznik zmienia ramkę Ethernet

Ramka z tagiem VLAN 802.1Q:

  • Standardowa ramka Ethernet – MAC dst (6B) + MAC src (6B) + EtherType (2B) + Payload (46-1500B) + FCS (4B) = 64-1518B
  • Ramka z tagiem 802.1Q – MAC dst + MAC src + TPID (0x8100, 2B) + TCI (2B: PCP+DEI+VID) + EtherType + Payload + nowy FCS = 68-1522B
  • TPID (Tag Protocol Identifier) = 0x8100 – oznacza, że ramka zawiera tag VLAN.
  • TCI (Tag Control Information) zawiera: VID (VLAN ID, 12 bitów, 1-4094), PCP (Priority Code Point, 3 bity – klasa ruchu CoS), DEI (Drop Eligible Indicator, 1 bit).
  • Większa ramka – dodanie 4B zwiększa maksymalny rozmiar do 1522B (z FCS). Switch musi obsługiwać baby giants (ramki >1518B).
  • Nowy FCS – dodanie tagu zmienia zawartość ramki, więc FCS jest przeliczany przez switch dodający tag.
To jeden z nielicznych przypadków, gdy SWITCH MODYFIKUJE ramkę – dodaje/usuwa tag 802.1Q na porcie trunkowym. Router również uwzględnia tag VLAN przy routingu między VLAN-ami (router-on-a-stick).

Port access – wysyła ramki bez tagu. Port trunk – wysyła ramki z tagiem (zazwyczaj). Native VLAN na trunk = ruch bez tagu.

W praktyce VLAN tagging jest używany do segregacji ruchu w sieciach LAN.

Gdy ramka wchodzi na port access switcha, switch dodaje tag z numerem VLAN (jeśli port jest skonfigurowany w danym VLANie). Gdy ramka wychodzi przez port trunk, tag jest obecny. Gdy ramka wychodzi przez port access, tag jest usuwany.

Router-on-a-stick: router ma jeden interfejs fizyczny podzielony na subinterfejsy (np. eth0.10, eth0.20), każdy dla innego VLANu. Router odbiera ramkę z tagiem, zdejmuje go, routuje pakiet i dodaje tag VLAN docelowego subinterfejsu.

L3 switch (switch warstwy 3) może routować między VLAN-ami bezpośrednio w sprzęcie (ASIC) – bez potrzeby zewnętrznego routera. Mimo to, każda ramka przechodząca między VLANami przechodzi przez proces routingu L3: stara ramka L2 jest zdejmowana, nowa jest zakładana (z nowym tagiem VLAN).

Z punktu widzenia ramki: tag 802.1Q dodaje 4B między adresy MAC a EtherType. Router musi obsługiwać tagi VLAN (subinterfejsy). Switch zarządzalny konfiguruje się z obsługą VLAN na portach.

Większość switchy niezarządzalnych nie obsługuje VLAN – wszystkie porty są w jednej domenie L2.

10/26 Router – urządzenie warstwy L3

Zasada działania:

  • Odbiera ramkę Ethernet na interfejsie wejściowym
  • Sprawdza FCS – jeśli uszkodzona, odrzuca
  • Zdejmuje nagłówek L2 (MAC src, MAC dst) – odrzuca starą ramkę Ethernet
  • Analizuje nagłówek IP: sprawdza IP dst w tablicy routingu
  • Dekrementuje TTL o 1; jeśli TTL = 0, odrzuca (ICMP Time Exceeded)
  • Przelicza sumę kontrolną nagłówka IP (header checksum)
  • Określa następny skok (next-hop IP) i interfejs wyjściowy
  • Wysyła zapytanie ARP (lub sprawdza tablicę ARP) by poznać MAC next-hopu
  • Buduje nową ramkę L2 z nowymi adresami MAC i wysyła
Router ZAWSZE zmienia adresy MAC – tworzy nową ramkę L2 dla każdego hopu.

Router działa w warstwie sieciowej (L3) – podejmuje decyzje na podstawie adresu IP, a nie MAC.

Każdy interfejs routera należy do innej podsieci.

Router jest urządzeniem granicznym – oddziela od siebie różne sieci IP (podsieci).

Gdy pakiet przychodzi na jeden interfejs i ma być wysłany przez inny, router musi przełączyć ramkę między segmentami L2.

To właśnie wymaga zdjęcia starej ramki L2 i nałożenia nowej – ponieważ adres MAC docelowy z poprzedniego segmentu nie ma żadnego znaczenia w nowym segmencie.

Proces ten nazywa się "hop-by-hop routing" – każdy router na ścieżce pakietu powtarza tę samą procedurę: odrzuca starą ramkę, podejmuje decyzję routingu, tworzy nową ramkę.

Dlatego w traceroute widać, że każdy hop to inny router, a każdy z nich ma inny adres MAC na interfejsie wyjściowym.

Warto też pamiętać, że router – w przeciwieństwie do switcha – nie jest przezroczysty.

Hosty muszą mieć skonfigurowany domyślny gateway (adres IP routera), co oznacza, że host zna adres MAC routera (z ARP).

11/26 Ramka w routerze – adresy MAC się zmieniają
PolePrzed routeremPo routerzeZmiana?
MAC srcAA:AA:AA:AA:AA:AA (host)RR:RR:RR:RR:RR:RR (router out)TAK
MAC dstRR:RR:RR:RR:RR:RR (router in)BB:BB:BB:BB:BB:BB (następny hop)TAK
IP src192.168.1.10192.168.1.10NIE
IP dst10.0.0.2010.0.0.20NIE
TTL128127TAK
IP checksum0x12340x5678TAK
FCS (ramki)CRC_staryCRC_nowyTAK
Router wymienia MAC src i MAC dst, dekrementuje TTL i przelicza checksum IP.

Gdy pakiet przechodzi przez router, adresy MAC ulegają całkowitej wymianie:

Najważniejsza zasada: router tworzy całkowicie nową ramkę Ethernet dla każdego pakietu wychodzącego na inny interfejs.

Oznacza to, że adres MAC źródłowy w nowej ramce to adres MAC interfejsu wyjściowego routera, a adres MAC docelowy to adres MAC następnego skoku (hosta docelowego lub kolejnego routera).

Adresy IP źródła i przeznaczenia pozostają niezmienione przez całą ścieżkę – zmienia się tylko TTL (zabezpieczenie przed pętlami) i checksum nagłówka IP (wymagane po zmianie TTL).

W czystym routingu IP adresy źródłowe i docelowe IP nigdy się nie zmieniają.

Warto też zaznaczyć, że zmiana adresów MAC na każdym hopie jest konieczna, ponieważ adres MAC ma znaczenie tylko w obrębie jednego segmentu L2 (jednej domeny rozgłoszeniowej).

Router łączy różne segmenty L2, więc musi użyć odpowiednich adresów MAC dla każdego z nich.

12/26 Schemat ASCII – ramka przez router (MAC się zmieniają)
To kluczowa różnica w stosunku do switcha, który przekazuje ramkę w niezmienionej postaci.

Proces ten jest często nazywany "rewriting MAC addresses" lub "MAC rewrite".

Router nie modyfikuje istniejącej ramki – on ją całkowicie odrzuca i tworzy nową.

W przypadku gdy następny skok jest połączony bezpośrednio (przez Ethernet), nowa ramka ma adres MAC docelowy równy adresowi MAC hosta docelowego (lub kolejnego routera).

Gdy następny skok znajduje się za multiplekserem lub w sieci z wieloma ścieżkami, router używa tablicy ARP do znalezienia adresu MAC związanego z adresem IP next-hopu.

Jeśli wpis ARP nie istnieje, router wysyła zapytanie ARP przed zbudowaniem nowej ramki, co powoduje opóźnienie rzędu milisekund (first-packet delay).

W nowoczesnych routerach odpowiedzi ARP są cachowane, a wpisy odświeżane okresowo, aby zminimalizować to opóźnienie.

SIEC A (192.168.1.0/24)       ROUTER        SIEC B (10.0.0.0/24)
+------------------+  +------------------------------+  +------------------+
|     HOST A       |  |          ROUTER              |  |    HOST C        |
| AA:AA:AA:AA:AA:AA|  | eth0: AA:AA:AA:AA:AA:AB      |  |CC:CC:CC:CC:CC:CC |
| 192.168.1.10     |  | eth1: CC:CC:CC:CC:CC:CA      |  | 10.0.0.20        |
+--------+---------+  +------+----------------+------+  +--------+---------+
         |                   |                |                   |
         |   RAMKA 1         |                |                   |
         |   MAC dst = R1    |                |                   |
         |   MAC src = A     |                |                   |
         |   IP src = 1.10   |                |                   |
         |   IP dst = 0.20   |                |                   |
         |   TTL = 128       |                |                   |
         +------------------>|                |                   |
         |                   |                |                   |
         |                   |  Router:       |                   |
         |                   |  1. Zdejmuje L2|                   |
         |                   |  2. IP dst=0.20|                   |
         |                   |  3. TTL 128>127|                   |
         |                   |  4. IP checksum|                   |
         |                   |  5. ARP o MAC C|                   |
         |                   |  6. Nowa ramka |                   |
         |                   |                |                   |
         |                   |  RAMKA 2       |                   |
         |                   |  MAC dst = C   |                   |
         |                   |  MAC src = R2  |                   |
         |                   |  IP src = 1.10 |                   |
         |                   |  IP dst = 0.20 |                   |
         |                   |  TTL = 127     |                   |
         |                   +--------------->|                   |
         |                   |                |                   |
Router tworzy nową ramkę L2 – MAC src to jego własny interfejs wyjściowy, MAC dst to następny skok.
13/26 Protokół ARP – pomost między L2 a L3

ARP (Address Resolution Protocol) łączy warstwę IP z warstwą MAC:

  • ARP request – host wysyła ramkę broadcast (MAC dst = FF:FF:FF:FF:FF:FF) z zapytaniem: "Kto ma IP X.X.X.X? Powiedz mojemu MAC YY:YY:YY:YY:YY:YY"
  • ARP reply – właściciel IP odpowiada ramką unicast ze swoim adresem MAC. Switch uczy się adresów MAC przy okazji.
  • Switch a ARP – switch traktuje ARP request jak każdą inną ramkę broadcast – flooduje na wszystkie porty (oprócz wejściowego). ARP reply – przekazuje jak zwykły unicast (bez zmian w ramce).
  • Router a ARP – router odpowiada na ARP za adres IP swojego interfejsu. Nie odpowiada na ARP za adresy spoza swojej podsieci (proxy ARP to wyjątek).
  • Tablica ARP (cache) – każdy host i router przechowuje mapowanie IP→MAC. Wpisy starzeją się (domyślnie od kilkudziesięciu sekund do kilku godzin, w zależności od systemu).
ARP jest krytycznym elementem łączącym L2 i L3. Bez ARP host nie może zbudować ramki Ethernet – nie wie, jaki MAC dst wpisać. Router też nie może zbudować nowej ramki L2 bez znajomości MAC następnego skoku.

Przed wysłaniem jakiejkolwiek ramki host musi: 1) sprawdzić, czy IP dst jest w tej samej podsieci (przez maskę), 2) jeśli tak – ARP o MAC dst, 3) jeśli nie – ARP o MAC gatewaya.

Warto znać trzy specjalne typy ARP:

Gratuitous ARP – host wysyła ARP reply bez pytania, ogłaszając swój adres MAC. Używane przy zmianie adresu IP lub MAC (np. failover). Switch uczy się nowego MAC.

Proxy ARP – router odpowiada na ARP za adresy IP, które fizycznie nie są w tej samej sieci L2. Umożliwia komunikację hostom bez skonfigurowanej bramy domyślnej (rzadko stosowane, głównie w starszych sieciach).

Reverse ARP (RARP) – odwrotność ARP: host zna swój MAC, chce poznać IP. Historycznie używane przy bootowaniu bezdyskowych stacji (obecnie zastąpione przez BOOTP/DHCP).

Z punktu widzenia ramki: ARP request to ramka broadcast (MAC dst = FF:FF:FF:FF:FF:FF, EtherType = 0x0806). ARP reply to ramka unicast. Switch nie modyfikuje tych ramek – przekazuje je zgodnie z tablicą MAC.

Router nie przekazuje ARP między interfejsami – każde zapytanie ARP dotyczy tylko jednej domeny L2.

14/26 Porównanie switch vs router – tabela
CechaSwitch (L2)Router (L3)
WarstwaL2 – łącza danychL3 – sieciowa
Decyzja na podstawieMAC dstIP dst
TablicaMAC (CAM)Routing (FIB) + ARP
MAC src po przejściuBez zmianMAC interfejsu wyjściowego
MAC dst po przejściuBez zmianMAC następnego skoku
IP src / IP dstBez zmianBez zmian (bez NAT)
TTLBez zmianDekrementowany o 1
IP checksumBez zmianPrzeliczany
FCS ramkiBez zmianNowa ramka – nowy FCS
Nowa ramka L2NieTak – tworzona od nowa
Widoczność dla hostówNiewidocznyWidoczny (gateway)
Domena rozgłoszeniowaNie dzieliDzieli
Istnieją również urządzenia hybrydowe – przełączniki warstwy 3 (L3 switch) – które łączą funkcje switcha i routera, ale zasada pozostaje ta sama: przełączanie L2 nie zmienia, routowanie L3 zmienia.

Domena rozgłoszeniowa to kolejny istotny aspekt.

Powyższa tabela stanowi szybkie odniesienie do kluczowych różnic między przełączaniem L2 a routingiem L3.

W praktyce inżynierskiej rozróżnienie to jest fundamentalne: jeśli urządzenie nie zmienia adresów, to znaczy, że pracuje w warstwie L2 (nawet jeśli posiada adres IP do zarządzania).

Jeśli zmienia adresy MAC i dekrementuje TTL, to znaczy, że routuje na L3.

Switch nie dzieli domen rozgłoszeniowych – ramka broadcast (FF:FF:FF:FF:FF:FF) jest przekazywana na wszystkie porty.

Router natomiast nie przekazuje ramek broadcast między interfejsami – każdy interfejs routera stanowi osobną domenę rozgłoszeniową.

Dlatego router jest naturalną granicą sieci LAN, a każdy VLAN wymaga własnej podsieci IP i własnego interfejsu (lub subinterfejsu) routera.

15/26 Przykład: transmisja przez switch (ta sama sieć)

Krok po kroku:

  1. Host A sprawdza, że IP dst (192.168.1.20) jest w tej samej podsieci – ARP o MAC B
  2. Host A otrzymuje MAC BB:BB:BB:BB:BB:BB i tworzy ramkę:
MAC dst: BB:BB:BB:BB:BB:BB
MAC src: AA:AA:AA:AA:AA:AA
EtherType: 0x0800 (IPv4)
Pakiet IP: src 192.168.1.10, dst 192.168.1.20, TTL=128
  1. Switch odbiera ramkę, uczy się MAC AA:AA:AA:AA:AA:AA na porcie 1, szuka MAC BB:BB:BB:BB:BB:BB w tablicy, znajduje port 2
  2. Switch wysyła ramkę na port 2 – bez żadnych zmian w ramce
  3. Host B odbiera ramkę z oryginalnymi MAC AA→BB
W switchu ramka wchodzi i wychodzi identyczna – żadne pole nie ulega zmianie.

Hosty są w tej samej podsieci.

Scenariusz: host A (192.168.1.10/24, MAC AA:AA:AA:AA:AA:AA) wysyła dane do Host B (192.168.1.20/24, MAC BB:BB:BB:BB:BB:BB) przez switch.

Host B odpowiada swoim adresem MAC.

Po zbudowaniu ramki host A wysyła ją do switcha.

Następnie szuka adresu BB:BB:BB:BB:BB:BB w tablicy.

W tym scenariuszu host A najpierw musi poznać adres MAC hosta B.

Ponieważ B znajduje się w tej samej podsieci IP, host A wysyła zapytanie ARP: "Kto ma IP 192.168.1.20?".

Switch przekazuje zarówno zapytanie ARP (flood, ponieważ nie zna jeszcze portu B), jak i odpowiedź ARP (uczy się portu B w tym momencie).

Po wymianie ARP host A ma już komplet informacji do zbudowania ramki.

Switch odbiera ramkę na porcie 1 i zapisuje w tablicy MAC: AA:AA:AA:AA:AA:AA → port 1.

Jeśli już go zna z poprzedniej wymiany, wysyła ramkę tylko na port 2.

Host B odbiera ramkę i widzi, że adres MAC docelowy zgadza się z jego własnym – przekazuje pakiet IP do stosu TCP/IP.

Adresy MAC w ramce są oryginalne (AA i BB), TTL nie zmieniony, IP checksum bez zmian, FCS oryginalny.

Switch nie pozostawił żadnego śladu swojej obecności w ramce.

16/26 Przykład: transmisja przez router (różne sieci)

Krok po kroku:

  1. Host A widzi, że IP dst (10.0.0.20) jest w innej podsieci – ARP o gateway (192.168.1.1 MAC R1)
  2. Host A tworzy ramkę do routera:
MAC dst: R1 (router in), MAC src: AA
Pakiet IP: src 192.168.1.10, dst 10.0.0.20, TTL=128
  1. Router R odbiera ramkę, sprawdza FCS, zdejmuje nagłówek L2, analizuje IP dst
  2. Router R sprawdza routing, dekrementuje TTL do 127, przelicza checksum
  3. Router R wysyła zapytanie ARP o adres MAC hosta C (lub następnego skoku). Tworzy NOWĄ ramkę:
MAC dst: CC (host C), MAC src: R2 (router out)
Pakiet IP: src 192.168.1.10, dst 10.0.0.20, TTL=127
  1. Host C odbiera nową ramkę – adresy MAC są zmienione, adresy IP są oryginalne

Scenariusz: host A (192.168.1.10/24) wysyła do Host C (10.0.0.20/24) przez router R.

Router ma dwa interfejsy: eth0 (192.168.1.1, MAC R1) i eth1 (10.0.0.1, MAC R2).

To jest klasyczny przykład routingu między sieciami.

Host A buduje ramkę z MAC dst = R1 i MAC src = AA.

Router po odebraniu ramki na eth0 zdejmuje nagłówek L2.

Host A wie, że 10.0.0.20 nie jest w jego podsieci (na podstawie maski /24), więc pakiet musi być wysłany do domyślnego gatewaya – routera o adresie 192.168.1.1.

Host A wysyła zapytanie ARP o IP 192.168.1.1, router odpowiada swoim adresem MAC interfejsu eth0 (R1).

Sprawdza tablicę routingu – wie, że sieć 10.0.0.0/24 jest dostępna przez interfejs eth1, a następny skok to host C (lub ewentualnie inny router).

Router dekrementuje TTL z 128 na 127 i przelicza sumę kontrolną nagłówka IP.

Następnie sprawdza tablicę ARP dla interfejsu eth1, by poznać adres MAC hosta C (CC).

Tworzy nową ramkę z MAC src = R2 (własny adres MAC interfejsu eth1) i MAC dst = CC.

Pakiet IP wewnątrz ramki jest ten sam, ale TTL i checksum są zmienione.

Host C po odebraniu ramki widzi niezmienione adresy IP (192.168.1.10 → 10.0.0.20) ale zupełnie inne adresy MAC (R2 → CC) niż w oryginalnej ramce wysłanej przez A.

17/26 NAT – wpływ na ramkę Ethernet

NAT zmienia adresy IP – jak to wpływa na ramkę?

  1. SNAT (Source NAT) – router zmienia IP src w pakiecie IP (np. 192.168.1.10 → 100.64.0.1). Przelicza checksum IP. Tworzy nową ramkę L2 z nowymi MAC. Ramka wychodząca ma MAC src = interfejs WAN routera.
  2. DNAT (Destination NAT) – router zmienia IP dst (np. 100.64.0.1 → 192.168.1.10). Ponownie: nowa ramka L2, nowe MAC, przeliczony checksum.
  3. PAT (Port Address Translation) – dodatkowo zmienia porty TCP/UDP. Wymaga przeliczenia checksum TCP/UDP (pseudo-nagłówek IP). Ramka L2 – nowa od nowa.
  4. Wpływ na warstwę L2 – router wykonujący NAT robi to samo co zwykły router: zdejmuje starą ramkę L2 i zakłada nową. Różnica jest tylko w warstwie L3 (zmiana adresów IP).
  5. Co z FCS? – router przelicza FCS dla nowej ramki (jak zawsze). NAT nie wpływa na warstwę L2 poza standardowym przepisywaniem MAC.
Router z NAT tworzy nową ramkę L2 dokładnie tak samo jak router bez NAT. Zmiana adresów IP w L3 nie wpływa na sam mechanizm przepisywania ramki L2.

Przykład: Host A (192.168.1.10) wysyła do Internetu (8.8.8.8). Router NAT zmienia src IP na swój adres WAN, przelicza checksum IP i TCP/UDP, tworzy nową ramkę L2 z nowymi MAC – i wysyła w świat.

Z punktu widzenia ramki Ethernet NAT jest przezroczysty – router i tak tworzy nową ramkę L2 dla każdego pakietu wychodzącego na inny interfejs.

Różnica między routingiem a NAT: w czystym routingu IP src i IP dst nie zmieniają się. W NAT co najmniej jeden z nich ulega zmianie. W obu przypadkach ramka L2 jest tworzona od nowa.

PAT (NAT overload) jest najczęściej stosowany w małych sieciach – wiele hostów prywatnych współdzieli jeden publiczny adres IP. Router NAT prowadzi tablicę translacji (NAT table) i na podstawie portu TCP/UDP kieruje odpowiedź do odpowiedniego hosta.

Problem z NAT: niektóre protokoły (FTP, SIP, IPsec) mają adresy IP w danych (payload), które NAT nie modyfikuje automatycznie – wymagane są ALG (Application Layer Gateway) lub dodatkowe moduły (np. nat-module w iptables).

18/26 Szczegółowa tabela zmian – co się zmienia i dlaczego
PoleSwitch (L2)Router (L3)Dlaczego?
MAC srcNie zmienia sięZmienia się na MAC interfejsu wyjściowegoRouter tworzy nową ramkę L2 w nowym segmencie
MAC dstNie zmienia sięZmienia się na MAC następnego skokuNowy segment L2 wymaga nowego adresu docelowego
VLAN tagMoże dodać/usunąćMoże dodać/usunąćZależy od konfiguracji portu trunk/access
IP srcNie zmienia sięNie zmienia się**bez NAT – routing nie zmienia adresów IP
IP dstNie zmienia sięNie zmienia się**bez NAT – routing nie zmienia adresów IP
TTLNie zmienia sięDekrementowany o 1Router jest hopsem – zapobiega pętlom
IP checksumNie zmienia sięPrzeliczanyKonieczne po zmianie TTL
FCSNie zmienia sięNowy FCSNowa ramka Ethernet = nowa suma kontrolna
Pamiętaj: L2 = adresy MAC niezmienione, L3 = nowa ramka z nowymi MAC.

Ta tabela jest ściągą dla administratora.

Jest to często pierwsza i najważniejsza wskazówka przy lokalizacji problemów sieciowych: czy problem jest w warstwie L2 (np. zła tablica MAC, pętla) czy L3 (np. zła tablica routingu, brak domyślnego gatewaya).

W sytuacji awaryjnej, gdy analizujesz ślad z Wireshark i widzisz, że adresy MAC się zmieniają między kolejnymi ramkami tego samego strumienia, oznacza to, że pakiet przeszedł przez router.

Jeśli adresy MAC są stałe, ruch odbywa się w obrębie tej samej sieci L2 – przez jeden lub więcej switchy.

W przypadku routingu asymetrycznego (pakiet w jedną stronę idzie przez router A, a w drugą przez router B) adresy MAC mogą się różnić w zależności od kierunku transmisji.

To normalne i wynika z tego, że każdy router na ścieżce buduje własną ramkę L2.

W przypadku przełączania L2 routing asymetryczny nie występuje na poziomie ramki – adresy MAC są zawsze takie same.

19/26 Schemat ASCII – wieloskokowa podróż pakietu L2/L3

Powyższy schemat przedstawia realistyczny scenariusz w sieci średniej wielkości.

Pakiet wysłany z hosta A (192.168.1.10) do hosta D (10.0.3.20) pokonuje trasę przez dwa routery i dwa switche.

Na każdym segmencie L2 (switch) ramka pozostaje identyczna, ale każdy router tworzy nową ramkę L2.

Widać wyraźnie, że adresy MAC ulegają trzykrotnej zmianie (AA→R1, R2→R3, R3→DD), podczas gdy adresy IP (A i D) są niezmienne przez całą trasę, a TTL sukcesywnie maleje (128→127→126).

Jest to klasyczny przykład routingu hop-by-hop, w którym każdy router podejmuje samodzielną decyzję o następnym skoku na podstawie swojej tablicy routingu.

W praktyce oznacza to, że dwa kolejne pakiety z tego samego strumienia mogą pójść różnymi trasami (routing asymetryczny), jeśli tablica routingu na jednym z routerów ulegnie zmianie.

Asymetria routingu jest normalnym zjawiskiem w sieciach z protokołami dynamicznymi (OSPF, BGP) i nie świadczy o problemie – o ile obie ścieżki dostarczają pakiety do celu.

Sieć A (192.168.1.0/24)    Sieć B (10.0.2.0/24)    Sieć C (10.0.3.0/24)
+------------------+  +------+  +----------------+  +------+  +----------------+  +------------------+
|     HOST A       |  |SWITCH|  |   ROUTER 1     |  |SWITCH|  |   ROUTER 2     |  |    HOST D        |
| AA:AA:AA:AA:AA:AA|  |  L2  |  |eth0 AA:AA:AA:AB|  |  L2  |  |eth0 CC:CC:CC:CA|  | DD:DD:DD:DD:DD:DD|
| 192.168.1.10     |  |      |  |eth1 BB:BB:BB:BA|  |      |  |eth1 DD:DD:DD:DA|  | 10.0.3.20        |
+--------+---------+  +------+  +-------+--------+  +------+  +-------+--------+  +--------+---------+
         |                      |                           |                          |
         |  RAMKA 1             |                           |                          |
         |  dst=R1, src=AA      |                           |                          |
         |  IP: A->D, TTL=128   |                           |                          |
         +--------------------->|                           |                          |
         |                      |  Zdejmuje L2              |                          |
         |                      |  IP dst = D               |                          |
         |                      |  TTL 128 -> 127           |                          |
         |                      |  Nowa ramka:              |                          |
         |                      |  dst=R3, src=R2           |                          |
         |                      |  IP: A->D, TTL=127        |                          |
         |                      +-------------------------->|                          |
         |                      |                           |  Zdejmuje L2             |
         |                      |                           |  IP dst = D              |
         |                      |                           |  TTL 127 -> 126          |
         |                      |                           |  Nowa ramka:             |
         |                      |                           |  dst=DD, src=R3_out      |
         |                      |                           |  IP: A->D, TTL=126       |
         |                      |                           +------------------------->|

RAMKA 1: MAC dst=R1, MAC src=AA, IP src=192.168.1.10, IP dst=10.0.3.20, TTL=128
RAMKA 2: MAC dst=R3, MAC src=R2, IP src=192.168.1.10, IP dst=10.0.3.20, TTL=127
RAMKA 3: MAC dst=DD, MAC src=R3_out, IP src=192.168.1.10, IP dst=10.0.3.20, TTL=126
Każdy router = nowa ramka L2. Każdy switch = brak zmian. IP src/dst = niezmienne przez całą trasę.
20/26 IPv6 – różnice w warstwie 2 i 3

IPv6 wprowadza istotne zmiany w sposobie przetwarzania ramki:

  • Brak ARP – zastąpiony przez Neighbor Discovery Protocol (NDP) działający na ICMPv6. Zamiast ARP request/reply: Neighbor Solicitation (NS) i Neighbor Advertisement (NA).
  • Brak fragmentacji na routerach – w IPv6 fragmentację wykonuje tylko host źródłowy (Path MTU Discovery jest obowiązkowy). Router odrzuca pakiet zbyt duży → ICMPv6 Packet Too Big.
  • Większy nagłówek IP – 40 B zamiast 20 B (IPv4), bez opcji (opcje przeniesione do nagłówków rozszerzeń). Przy zachowaniu minimalnej długości ramki Ethernet (64 B) większy nagłówek pozostawia mniej miejsca na dane wyższych warstw.
  • EUI-64 i prywatność – adres MAC może być użyty do generowania adresu IPv6 (EUI-64), ale ze względów prywatności stosuje się Privacy Extensions (tymczasowe adresy).
  • Multicast zamiast broadcast – IPv6 nie używa broadcastu. NDP używa multicastu (solicited-node multicast), co zmniejsza obciążenie switcha.
W IPv6 switch wciąż nie modyfikuje ramki (L2 bez zmian), ale router nadal zmienia MAC src/dst, dekrementuje Hop Limit (dawniej TTL).

Mimo zmian w warstwie 3, zasady dotyczące ramki Ethernet pozostają takie same: switch L2 nie modyfikuje ramki, router L3 tworzy nową ramkę.

W IPv6 zmienia się nazwa TTL na Hop Limit, ale funkcja pozostaje identyczna – dekrementacja o 1 na każdym routerze.

Neighbor Discovery Protocol (NDP) pełni funkcje ARP, ale też dodatkowe: autokonfiguracja adresów (SLAAC), wykrywanie duplikatów adresów (DAD), wykrywanie nieosiągalności sąsiadów (NUD).

Z punktu widzenia warstwy L2 ramka IPv6 wygląda tak samo jak IPv4 – EtherType to 0x86DD zamiast 0x0800.

Switch nie widzi różnicy między IPv4 a IPv6 – analizuje tylko adres MAC. Router musi obsługiwać oba protokoły (dual-stack) lub stosować translację (NAT64).

Dla administratora sieci kluczowe jest zrozumienie, że NDP generuje więcej ruchu niż ARP (periodiczne RS/RA), co może wpływać na obciążenie switcha w dużych sieciach.

21/26 MTU, fragmentacja i ramki Jumbo

Wpływ MTU na transmisję ramki Ethernet:

  1. Standardowy MTU = 1500 B – maksymalny rozmiar payloadu ramki Ethernet. Jeśli pakiet IP jest większy, router musi go fragmentować (IPv4) lub odrzucić (IPv6).
  2. Path MTU Discovery (PMTUD) – host wysyła pakiety z flagą DF (Don't Fragment). Router zwraca ICMP Fragmentation Needed (lub ICMPv6 Packet Too Big) z informacją o MTU następnego skoku. Host dostosowuje rozmiar pakietu.
  3. Fragmentacja IPv4 – router dzieli pakiet na mniejsze fragmenty. Każdy fragment ma własny nagłówek IP i jest przesyłany w osobnej ramce Ethernet. Switch traktuje każdą ramkę niezależnie.
  4. Brak fragmentacji w IPv6 – tylko host źródłowy może fragmentować (przez nagłówek rozszerzeń Fragment). Router odrzuca pakiet > MTU z ICMPv6 Packet Too Big.
  5. Ramki Jumbo – MTU do 9000 B (i więcej). Wymagają obsługi przez wszystkie urządzenia na ścieżce (switche, routery, karty sieciowe). Zmniejszają narzut nagłówków przy dużych transferach.
Fragmentacja zwiększa obciążenie routera i ryzyko utraty pakietów (jeden zgubiony fragment = cały pakiet do retransmisji). Jumbo frames zmniejszają narzut CPU, ale wymagają spójnej konfiguracji w całej domenie L2.

Switch L2 nie fragmentuje – nie analizuje pakietu IP. Router L3 jest odpowiedzialny za fragmentację (IPv4) lub odrzucenie pakietu (IPv6).

W praktyce najczęstszym problemem z MTU jest czarna dziura PMTUD – gdy firewall lub router nie zwraca ICMP Fragmentation Needed (zablokowane przez politykę bezpieczeństwa). Host myśli, że może wysłać duży pakiet, ale nigdy nie dostaje informacji o MTU – połączenie wisi (np. strona WWW się ładuje, ale nie do końca).

Rozwiązanie: ręczne ustawienie MTU na interfejsie (np. mtu 1400) lub odblokowanie ICMP na firewallu.

Jumbo frames mają sens głównie w sieciach storage (iSCSI, NFS), backup i HPC. W typowej sieci LAN korzyść z Jumbo frames jest minimalna, a ryzyko problemów z kompatybilnością duże.

Jeśli używasz Jumbo frames, wszystkie urządzenia na ścieżce L2 muszą mieć MTU ustawione na tę samą wartość (np. 9000) – łącznie z przełącznikami, które muszą mieć włączoną obsługę Jumbo frames na portach.

Przy routowaniu między sieciami z różnym MTU router musi fragmentować (IPv4) – co zwiększa obciążenie i opóźnienia.

22/26 Bezpieczeństwo warstwy 2 – ataki na ramkę Ethernet

Zagrożenia na poziomie L2 i mechanizmy ochrony:

  • MAC flooding (CAM table overflow) – atakujący wysyła wiele ramek z różnymi źródłowymi adresami MAC, przepełniając tablicę switcha. Switch zaczyna działać jak hub (flooduje cały ruch).
    Ochrona: Port Security – limitowanie liczby MAC na porcie.
  • ARP spoofing / ARP poisoning – atakujący wysyła fałszywe odpowiedzi ARP, aby przechwycić ruch (man-in-the-middle). Router i switch nie weryfikują ARP.
    Ochrona: Dynamic ARP Inspection (DAI) – switch weryfikuje ARP z bindingiem DHCP snooping.
  • DHCP spoofing / DHCP starvation – fałszywy serwer DHCP przydziela adresy IP, przechwytując ruch.
    Ochrona: DHCP Snooping – switch blokuje odpowiedzi DHCP z niezaufanych portów.
  • MAC spoofing – podszycie się pod adres MAC innego urządzenia w celu przechwycenia jego ruchu.
    Ochrona: IP Source Guard – switch blokuje ruch IP z adresem źródłowym niezgodnym z bindingiem DHCP snooping.
  • VLAN hopping – atakujący próbuje uzyskać dostęp do innego VLANu przez podwójne tagowanie (double tagging) lub skonfigurowanie portu w trybie trunk.
    Ochrona: zmiana native VLAN z domyślnego (VLAN 1), wyłączenie nieużywanych portów trunk.
Większość ataków L2 wykorzystuje fakt, że switch domyślnie ufa wszystkim ramkom i nie weryfikuje poprawności adresów MAC ani ARP.

Bezpieczeństwo warstwy 2 jest często pomijane w projektach sieci LAN, ale atak na L2 może skompromitować całą sieć – w tym ruch przechodzący przez routery.

Wszystkie wymienione mechanizmy ochrony L2 są dostępne w przełącznikach zarządzalnych (Cisco, HP/Aruba, MikroTik, Ubiquiti). W domu/małej firmie (switch niezarządzalny) nie masz żadnej ochrony L2.

MAC flooding w nowoczesnych switchach jest trudniejszy, bo mają duże tablice CAM (16k–1M wpisów), ale wciąż możliwy w małych switchach (8k wpisów).

ARP spoofing to najczęstszy atak L2 w sieciach LAN – narzędzia takie jak arpspoof, BetterCAP czy Ettercap są powszechnie dostępne.

Z punktu widzenia ramki Ethernet: DAI i DHCP snooping nie modyfikują samej ramki, ale wpływają na to, czy switch ją przekazuje, odrzuca lub oznacza.

Router (L3) jest naturalną granicą bezpieczeństwa – ARP spoofing działa tylko w obrębie jednej domeny L2. Router nie przekazuje ramek ARP między interfejsami, więc atak ARP nie może wyjść poza VLAN/podsieć.

23/26 Podsumowanie

Kluczowe wnioski:

  • Switch (L2) – nie modyfikuje ramki Ethernet. Adresy MAC źródłowe i docelowe, adresy IP, TTL i FCS pozostają bez zmian. Switch jest przezroczysty.
  • Router (L3) – zawsze modyfikuje ramkę. Zdejmuje starą ramkę L2 i zakłada nową z nowymi adresami MAC. Dekrementuje TTL i przelicza checksum IP.
  • Adresy IP – nie zmieniają się ani w switchu, ani w routerze (z wyjątkiem NAT).
  • TTL – zmieniany tylko przez router (dekrementacja o 1 na każdym hopie). Switch nie rusza TTL.
  • Nowa ramka L2 – router tworzy ją od nowa, co oznacza, że MAC src to jego własny adres interfejsu wyjściowego, a MAC dst to adres następnego skoku.
Switch = MAC bez zmian. Router = MAC zawsze nowe.
Zrozumienie tej różnicy jest absolutnie kluczowe przy projektowaniu sieci, rozwiązywaniu problemów i analizie ruchu sieciowego.
W nowoczesnych sieciach SDN (Software Defined Networking) i overlay (VXLAN, EVPN) granice między L2 a L3 mogą się zacierać, ale podstawowa zasada pozostaje: każde urządzenie, które przekazuje ramkę bez zmiany adresów, działa jako przełącznik L2.

Gdy widzisz w Wiresharku, że adresy MAC zmieniają się między kolejnymi ramkami w jednej sesji, wiesz, że gdzieś na ścieżce znajduje się router.

Jeśli adresy MAC są stałe, oznacza to, że ruch nie opuścił tej samej domeny L2.

Każde urządzenie, które tworzy nową ramkę L2, działa jako router L3 (lub równoważna funkcja).

24/26 Diagnostyka L2/L3 w praktyce – Wireshark i narzędzia

Jak odróżnić przełączanie od routingu w praktyce?

  1. Ping i traceroute – jeśli TTL maleje o 1 na każdym hopie, to znaczy że każdy hop to router. Jeśli TTL pozostaje stały, ruch nie opuścił domeny L2.
  2. Wireshark – przechwyć ramkę: patrz na adresy MAC przed i po. Zmiana MAC src/dst = router. Te same MAC = switch.
  3. arp -a – lista sąsiadów L2. Jeśli adres IP jest w tej samej sieci co twój interfejs, komunikacja odbywa się przez switch. Jeśli IP jest gatewayem, komunikacja idzie przez router.
  4. Sprawdź TTL w odpowiedzi ICMP – TTL=128 (Windows) lub 64 (Linux) to host źródłowy. Niższe wartości = pakiet przeszedł przez router(y).
W praktyce: jeśli widzisz w Wiresharku ramkę z MAC dst = adres MAC routera, a IP dst = inna sieć – to jest routing. Jeśli MAC dst = adres MAC hosta docelowego – to switchowanie L2.

Case study: Host A nie może połączyć się z Host C w innej podsieci. Sprawdzasz ramkę Wiresharkiem – MAC dst to adres MAC hosta C (nie routera!) – błąd konfiguracji maski lub brak bramy domyślnej.

Praktyczne wskazówki dla administratorów sieci:

Gdy klient zgłasza problem z łącznością między sieciami, pierwszym krokiem jest sprawdzenie ścieżki pakietu za pomocą traceroute. Traceroute wysyła pakiety z TTL=1, TTL=2 itd., a każdy router odrzucający pakiet (TTL=0) wysyła ICMP Time Exceeded. Dzięki temu widzisz listę routerów na ścieżce – i możesz określić, w którym miejscu pakiet ginie.

W sieci L2 (switch) nie zobaczysz żadnych routerów w traceroute – TTL nie zmienia się, a adresy MAC pozostają te same od źródła do celu.

Jeśli podejrzewasz problem z routowaniem symetrycznym, zbierz ślad Wiresharka po obu stronach i porównaj adresy MAC w ramkach wychodzących i przychodzących.

Zmiana adresu MAC źródłowego między żądaniem a odpowiedzią to normalne zjawisko przy routingu asymetrycznym (request idzie routerem A, response routerem B).

25/26 Pytania kontrolne
  1. Czy switch zmienia adres MAC źródłowy w ramce? (Nie – switch nie modyfikuje żadnych pól ramki.)
  2. Co dzieje się z adresem MAC docelowym w routerze? (Zostaje zastąpiony adresem MAC następnego skoku.)
  3. Które urządzenie dekrementuje TTL i dlaczego? (Router – zapobiega pętłom routingu.)
  4. Czy adresy IP zmieniają się podczas przejścia przez switch? (Nie – switch nie analizuje warstwy L3.)
  5. Co się stanie z TTL, gdy ramka przejdzie przez trzy switche i jeden router? (Switche nie zmienią TTL, router zdekrementuje z 128 na 127.)
  6. Dlaczego router musi tworzyć nową ramkę L2? (Bo odbiorca jest w innym segmencie L2 i wymaga innych adresów MAC.)
  7. Jaka jest różnica między tablicą MAC switcha a tablicą routingu routera? (Switch: MAC → port; Router: sieć IP → interfejs + next-hop.)
  8. Kiedy router zmienia adres IP źródłowy? (Tylko przy NAT – standardowy routing nie zmienia adresów IP.)
Szczególnie ważne jest pytanie o TTL – wielu początkujących administratorów błędnie zakłada, że switch również dekrementuje TTL, co prowadzi do nieporozumień przy diagnozowaniu problemów z łącznością.

Pytania kontrolne sprawdzają zrozumienie fundamentalnej różnicy między przełączaniem L2 a routingiem L3.

Obejmują zarówno aspekty teoretyczne (funkcje warstw), jak i praktyczne (zachowanie ramki w różnych scenariuszach).

Pytanie o NAT przypomina, że zmiana adresów IP nie jest standardową funkcją routingu, a dodatkową usługą.

W czystym routingu adresy IP źródła i przeznaczenia są nienaruszalne – zmieniają się tylko adresy MAC (warstwa L2) i TTL/checksum (warstwa L3).

To rozróżnienie jest często sprawdzane na egzaminach CCNA i innych certyfikacjach sieciowych.

26/26 Koniec prezentacji

Kluczowe umiejętności:

  • Rozróżnianie między przełączaniem L2 a routingiem L3
  • Zrozumienie, które pola ramki zmieniają się w switchu, a które w routerze
  • Analiza ruchu sieciowego pod kątem zmiany adresów MAC
  • Diagnozowanie problemów L2 vs L3 na podstawie śladów sieciowych
  • Projektowanie topologii z uwzględnieniem granic L2/L3
Prezentacja zawiera 26 slajdów. Użyj menu "Skocz do" u góry.

Ramka Ethernet w switchu i routerze – porównanie L2 i L3

To najlepszy sposób na utrwalenie wiedzy.

Dziękuję za uwagę.

Prezentacja pokazała fundamentalną różnicę między przetwarzaniem ramki Ethernet przez przełącznik a router.

Switch jest urządzeniem przezroczystym, które nie modyfikuje ramki – jedynie decyduje, na który port ją przesłać.

Router natomiast działa na warstwie L3, analizuje adres IP, podejmuje decyzję routingu i tworzy zupełnie nową ramkę L2 z nowymi adresami MAC dla każdego następnego skoku.

Zrozumienie tych mechanizmów jest niezbędne do poprawnej konfiguracji sieci, diagnozowania problemów i projektowania topologii.

Zachęcam do samodzielnego eksperymentowania z Wiresharkiem – przechwyć ruch między hostami w tej samej sieci (przez switch) i między różnymi sieciami (przez router) i porównaj adresy MAC w ramkach.