Narzędzia użytkownika

Narzędzia witryny


Pasek boczny

sk1:ip_icmp_dhcp

Protokół IPv4

IPv4 = Internet Protocol version 4 (RFC 791); czasami skracane do inet

Budowa nagłówka IP [1] [2]:

Dla przetestowania fragmentacji spróbuj zmienić rozmiar pakietu ping: ping -s <rozmiar> <cel>, np:
ping -s 5000 1.1.1.1

ICMP i IGMP

ICMP

Protokół IP nie przewiduje informowania nadawcy o problemach.

Funkcje diagnostyczne i kontrolne dla IPv4 spełnia protokół ICMP (Internet_Control_Message_Protocol)
ICMP pozwala m. inn. na:

  • wysłanie informacji zwrotnej o niedostarczeniu pakietu (destination unreachable, TTL exceeded)
  • testowanie łączności (ping)

Aby zaobserwować komunikaty ICMP, można wykonać:

  • ping <cel>
  • traceroute [-q 1] -T <cel> (porównaj z traceroute -I <cel>)
  • połączenie do nieużywanego portu, np: host pl. lab-net-1 (z lab-net)
  • połączenie do nieosiągalnego (np. nieistniejącego) adresu, np. host pl. lab-sec-33 (z lab-net)

IGMP

Do zarządzanie przynależnością do grup multicastowych w IPv4 służy IGMP [1].

Dzięki IGMP urządzenia sieciowe wysyłają wiadomości multicastowe tylko zainteresowanym odbiorcom [2], a urządzenia końcowe mogą przyjmować tylko ramki z interesujących ich grup multicastowych.
Wyświetlenie grup do których należy komputer [IP]: netstat -g
Wyświetlenie grup do których należy komputer [MAC]: cat /proc/net/igmp
Oczekiwanie na wiadomość multicastową: socat udp-recvfrom:2222,ip-add-membership=239.1.2.3:br0 -

Przykładowy wynik poleceń:

Trasowanie

Zadaniem warstwy łącza danych jest dostarczenie danych do wybranego bezpośrednio połączonego urządzenia.
Zadaniem warstwy sieci jest dostarczenie danych do wybranego urządzenia [w domyśle: dowolnego w sieci].
Jeśli cel nie jest bezpośrednio połączony, dane (pakiety) trzeba wysłać przez inne urządzenie, tj. trzeba wybrać dalszą trasę pakietu.
Stąd urządzenie działające na warstwie sieci to trasownik (router).

Adresy IP i MAC na drodze pakietu od źródła do celu

Pomiędzy warstwą łącza danych a warstwą sieci

Protokół ARP - http://en.wikipedia.org/wiki/Address_Resolution_Protocol

Narzędzia:

  • wyświetlanie znanych odwzorowań arp / ip neigh
  • ręczne dodanie odwzorowania
    arp -i br0 -s 1.0.0.0 02:de:ad:00:be:ef
    ip neigh add 1.0.0.0 lladdr 02:de:ad:00:be:ef dev br0
  • ręczne usunięcie odwzorowania
    arp -i br0 -d 1.0.0.0
    ip neigh del 1.0.0.0 dev br0
  • czyszczenie wszystkich odwzorowań ip neigh flush all

Ręczne wysyłanie żądania ARP – arping
arping -I <interfejs> <adres IP>
arping -I br0 150.254.32.129

Przykładowe wyniki poleceń:

Slajdy: Protokół ARP

Opis implementacji ARP pod Linuksem: man 7 arp (samo man arp pokaże pomoc dla polecenia arp)

[EKSTRA]

Fragmentacja IP a rzeczywistość: https://blog.cloudflare.com/ip-fragmentation-is-broken/

Protokół ARP znalazł zastosowanie w wielu technologiach warstwy 2 ([1]), natomiast na warstwie 3 używany jest tylko dla adresów IPv4.

Komenda arp jest też dostępna w systemie Windows: https://technet.microsoft.com/en-us/library/cc940107.aspx

Q: Dlaczego komenda arping nie uzupełnia mapowań IP—MAC?
A: Domyślnie Linux uzupełnia mapowania tylko w odpowiedzi na żądania ARP generowane przez jądro systemu. Aby akceptować inne pakiety ARP, można wydać polecenie:
sysctl net.ipv4.conf.all.arp_accept=1
Dokumentacja: https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

sk1/ip_icmp_dhcp.txt · ostatnio zmienione: 2018/04/05 13:17 przez jkonczak