Sieci Komputerowe Wykład 11 - teoria 

Część 1: Warstwa łącza i Ethernet


Warstwa łącza jest odpowiedzialna za komunikację ramek między węzłami sieci (hostami, ruterami, switchami). W poszczególnych segmentach sieci warstwa łącza może wykorzystywać różne protokoły. Warstwa łącza ma za zadanie uzyskać dostęp do medium i wysłać ramkę do adresata. Używane są adresy fizyczne zwane adresami MAC (eng Medium Access Control). Adresy te przypisane są do interfejsów sieciowych. W celu sprawdzenia błędów używane są sumy kontrolne CRC (eng Cyclic Redundancy Check), które potrafią wykryć przekłamanie bitów w przesyłanej ramce.


Rodzaje sieci
Zasadniczo łącza możemy podzielić na punkt-punkt (PPP dla dostępu modemowego, łącze między switchem Ethernetowym i hostem) oraz punkt-wielopunkt, w którym urządzenia współdzielą medium (Ethernet, Bluetooth, 802.11, Token Ring).

Wśród protokołów dostępów do łącza możemy wyróżnić poszczególne klasy protokołów:

  • Podział Łącza (podział łącza według szczelin czasowych, częstotliwości lub kodu) - bez kolizji.
    TDMA: time division multiple access
    Dostęp do łącza następuje w kolejności. Każdy z węzłów otrzymuje szczelinę czasową stałej długości (np czas transmisji 1 ramki) w każdej turze. Nieużywane szczeliny są niewykorzystane (puste).
    FDMA: frequency division multiple access
    Pasmo łącza dzielone jest na mniejsze pasma (kanały). Każdy z węzłów otrzymuje jedno pasmo częstotliwości (kanał). Nieużywane pasma pozostają puste (są niewykorzystywane)
    CDMA: code division multiple access
    Każdy z węzłów otrzymuje specjalny "kod" który jest unikalny. podejście używane jest w najczęściej w łączach radiowych (np SIM w sieciach GSM). Każdy z węzłów używają tej samej częstotliwości, ale każdy z nich modyfikuje dane według swojego "kodu".

  • Dostęp bezpośredni - kolizje są możliwe i są naprawianie po ich wystąpieniu
    ALOHA: wszystkie ramki zostają wysyłane natychmiast. Istnieje duże prawdpodobieństwo kolizji.
    Szczelinowe ALOHA: czas jest podzielony na tzw szczeliny. węzły transmitują tylko na początku szczelin, wszystkie ramki zostają wysyłane natychmiast. Istnieje prawdpodobieństwo kolizji, po której wykryciu każdy węzeł transmituje ramkę w następnej szczelinie z prawdopodobieństwem p.
    CSMA (eng Carrier Sense Multiple Access): węzeł nasłuchuje przed transmisją, i jeżeli łącze jest wolne, wysyła całą ramkę. Nie ma synchronizacji w czasie.
    CSMA/CD (eng Carrier Sense Multiple Access/Collision Detection): podobnie jak w CSMA jednak transmisje kolidujące są przerywane. Powoduje to lepsze wykorzystnie łącza.

  • Dostęp z kolejnością - istnieje ustalona kolejność nadawania do tego samego łącza
    Odpytywanie: węzeł nadrzędny (master) kolejno odpytuje węzły podrzędne (slave) czy nie mają informacji do wysłania.
    Żeton (token): między węzłami przekazywany jest żeton, który upoważnia węzeł do wysłania ramki.


Ethernet - Budowa
Adres MAC w protokole Ethernet posiada długość 48 bitów. W większości przypadków jest zapisany w pamięci ROM interfejsu sieciowego. Nic jednak nie stoi na przeszkodzie, aby software'owo nadpisać taki adres (np wykorzystując wirtualizację komputerów) Adres sprzętowy możemy wyświetlić używając polecenie ifconfig:

tomek@ZUERST:~/$ ifconfig
eth0      Link encap:Ethernet  HWaddr 90:e6:ba:bc:8f:45
          inet addr:192.168.1.45  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::92e6:baff:febc:8f45/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:142048 errors:0 dropped:0 overruns:0 frame:0
          TX packets:142958 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:181877338 (181.8 MB)  TX bytes:12960405 (12.9 MB)
          Interrupt:35 Base address:0x6000

W pierwszej linii widzimy, że interfejs działa w sieci Ethernet i posiada adres sprzętowy 90:e6:ba:bc:8f:45.
Nagłówek Ethernetowy składa się z adresów nadawcy i odbiorcy, oraz pola określającego protokół warstwy 3, który jest kapsułkowany w tej ramce.
Szczegółowa budowa ramki Ethernetowej opisana jest na stronie: http://www.tech-portal.pl/content/view/38/38/
Adresem rozgłoszeniowym dla Ethernetu jest ff:ff:ff:ff:ff:ff.


Rodzaje Ethernetów:

  • 10BASE2 - tak zwany "cienki koncentryk" - sieć używa kabla koncentrycznego. Kabel musi łączyć wszystkie karty sieciowe w sieci lokalnej (topologia magistrali). Karty podłącza się za pomocą tzw. "trójnika". Uzywane są z łącza BNC (podobne jak w telewizji)C. Na obu końcach kabla montowany jest opornik (tzw. terminator) który służy on do eliminowania odbicia sygnału na końcach kabla. Maksymalna długość segmentu sieci wynosiła 185 m. Pracuje z szybkością 10 Mbit/s.
  • 10Base-T - pracuje na 4 żyłach "skrętki" kategorii 3 lub 5. Każda karta sieciowa musi być podłączona do huba lub switcha (topologia gwiazdy). Używane są wtyki RJ-45. Maksymalna długość kabla wynosi ok 100 metrów. Pracuje z szybkością 10 Mbit/s.
  • 100Base-TX - Fast Ethernet. Podobny do 10BASE-T, ale pracuje z szybkością 100Mb/s. Wymaga 2 par z 4 parowej skrętki kategorii 5 (piny 1,2,3,6), używa wtyków RJ45. Najpopularniejszy standard sieci opartych na 'skrętce'.
  • 1000BASE-T - Gigabit Ethernet. Umożliwia na przesłanie 1Gb/s wykorzystując skrętkę kat. 5 lub wyższej. Używane są wszystkie cztery pary przewodów oraz stosowana jest modyfikacja układów transmisyjnych dająca możliwość transmisji ok. 250 Mb/s poprzez jedną parę przewodów w skrętce.

Użycie światłowodów pozwala na przyspieszenie przepustowości do 10Gb/s (10GBASE-SR) i 100Gb/s (w opracowaniu grupy IEEE P802.3ba).

Część 2: ARP - Address Resolution Protocol


Protokół ARP służy do pozyskiwania adresów sprzętowych (warstwy 2) interfejsów sieciowych z odpowiadających im adresów warstwy sieciowej (np IP).
Jest protokołem zaprojektowanym do pracy wyłącznie w sieci lokalnej (pakiety ARP nie podlegają routingowi).
Protokół działa w warstwie 3 (jest kapsułkowany w ramki warstwy łącza).
W każdym systemie komputerowym istnieje tzw "tablica ARP" która przechowuje ostatnio używane adresy warstwy 2.
poniżej przykładowy listing ARP:

tomek@ZUERST:~/$ arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.1.2                      (incomplete)                              eth0
192.168.1.1              ether   00:17:9a:b1:42:db   C                     eth0

W powyższym przykładzie komputer lokalny posiada informacje o komputerach z adresami IP: 192.168.1.1.
Komputer 192.168.1.2 nie odpowiedział na zapytanie ARP, więc wpis jest niekompletny.
Wpisy ARP deaktualizują się co kilka (sprawdzic) minut.


Pozyskiwanie adresu sprzętowego za pomocą protokołu ARP
Przed wysłaniem jakiegokolwiek pakietu do innego komputera należy uzyskać adres sprzętowy jego interfejsu sieciowego.
Pozwala to przełącznikowi warstwy 2 (switch'owi) odpowiednio wydzielić domeny kolizyjne
(switch przekazuje sygnał tylko na odpowiedni port, umożliwiając innym komputerom na jedoczesną komunikację)
Komputer pytający o adres sprzętowy wysyła do sieci pakiet ARP Request zawierający swój adres IP i MAC, adres IP komputera docelowego.
Pakiet zostaje wysłany na specjalny adres rozgłoszeniowy (w Ethernecie jest to adres ff:ff:ff:ff:ff:ff składający się z samych bitów 1).
Urządzenie przełączające przekazuje taki pakiet na wszystkie porty.
Powoduje to, że każdy komputer w sieci lokalnej otrzymuje zapytanie ARP, nawet jeżeli nie jest on adresatem.
Komputer posiadający interfejs o adresie zgodnym z IP z pakietu ARP wpisuje swój MAC- adres do pakietu i odsyła odpowiedź do nadawcy.
Wypełnia także tablicę ARP informacją i IP i MAC adresie nadawcy.
Pakiet odpowiedzi ARP jest zaadresowany bezpośrednio do nadawcy, także nie jest widoczny przez inne komputery w sieci lokalnej.
Po odebraniu odpowiedzi ARP oba komputery mają wypełnione tablice odpowiednimi wartościami.



ARP spoof Budowa protokołu ARP oraz sposób działania stwarza niebezpieczną lukę bezpieczeństwa. Brak jakichkolwiek zabezpieczeń, haseł, identyfikacji pakietów pozwala na przeprowadzenie ataku na tablicę ARP zwanego ARP spoof. Atak polega na podszyciu się pod inny komputer w sieci (np bramę). Rozważmy sieć jak na rysunku 1. Dla uproszczenia zapisu adresy mac mają formę X-Y-Z.


Komputer o adresie ip 2.0.0.1 atakuje sieć lokalną.

  • 1. Komputer wysyła spreparowany pakiet ARP do bramy (2.0.0.2) udając komputer 2.0.0.3. Komputer 2.0.0.2 wpisuje do tablicy ARP 2.0.0.3->2-0-1
  • 2. Komputer wysyła spreparowany pakiet ARP do komputera 2.0.0.3 udając komputer 2.0.0.2 (bramę). Komputer 2.0.0.3 wpisuje do tablicy ARP 2.0.0.2 -> 2-0-1
  • 3. Komputer włącza routing pozwalający na przekazywanie pakietów, oraz oprogramowanie szpiegujące (np sniffer)

Rezultat:

  • 1. komputer 2.0.0.3 wysyła pakiet do sieci rozległej (np do banku) korzystając z MAC-adresu komputera 2.0.0.1 (myśląc, że to on jest bramą)
  • 2. komputer 2.0.0.1 może podsłuchać pakiet (zmodyfikować, skopiować) i przesyła go dalej do prawdziwej bramy 2.0.0.2
  • 3. odpowiedź z sieci rozleglej (np z banku) trafia do routera brzegowego (bramy), który przekazuje go do komputera 2.0.0.1 myśląc, że to komputer 2.0.0.3
  • 4. komputer 2.0.0.1 ponownie może podsłuchać pakiet.
  • 5. Pakiet zostaje przekazany do komputera 2.0.0.3, który nic nie wie o działaniach komputera 2.0.0.1 (podobnie jak brama 2.0.0.2)

Powyższy atak należy do ataków typu MIM (Man In the Middle) i jest bardzo niebezpieczny i trudny do wykrycia. Aby zabezpieczyć sieć komputerową przed tego typu atakiem stosuje się statyczne (niezmienne) odwzorowania IP-MAC dla bramy. Nie umożliwia to potencjalnemu atakującemu na nadpisanie tablicy ARP nieprawdziwymi iformacjami.






Zadania 


Słownik 

Ten dział zostanie uzupełniony wkrótce...

Pliki 

Ten dział zostanie uzupełniony wkrótce...

W sieci