Narzędzia użytkownika

Narzędzia witryny


sk1:ip_icmp_dhcp

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
Ostatnia wersja Both sides next revision
sk1:ip_icmp_dhcp [2017/03/21 14:55]
jkonczak [Pomiędzy warstwą łącza danych a warstwą sieci]
sk1:ip_icmp_dhcp [2018/04/05 12:58]
jkonczak [IGMP]
Linia 1: Linia 1:
 ===== Protokół IPv4 ===== ===== Protokół IPv4 =====
-Internet Protocol version 4+IPv4 = Internet Protocol version 4 <​html><​small></​html>​([[https://​tools.ietf.org/​html/​rfc791|RFC 791]]); czasami skracane do inet<​html></​small></​html>​
  
-Budowa ​pakietu, ​[[https://​pl.wikipedia.org/​wiki/​IPv4#​Nag.C5.82.C3.B3wek_IP|nagłówek IP]] \\ +Budowa ​nagłówka IP [[https://​tools.ietf.org/​html/​rfc791#​section-3.1|[1]]] ​[[https://​pl.wikipedia.org/​wiki/​IPv4#​Nag.C5.82.C3.B3wek_IP|[2]]]: \\ 
-TTL \\ +  * długość całego pakietu (z nagłówkiem),​ długość nagłówka <​html><​small>​ i opcje</​small></​html>​ 
-Fragmentacjaflagi MF, offset. Flaga DF+  * adresy IPźródłowy i docelowy 
 +  * protokół warstwy wyższej 
 +    * http://​www.iana.org/​assignments/​protocol-numbers/​protocol-numbers.xhtml 
 +    * ''​less /​etc/​protocols''​ 
 +  * fragmentacja 
 +    * numer identyfikacyjnyflaga MF i offset 
 +    * flaga DF 
 +  * TTL 
 +  * <​html><​small></​html>​ [[https://​en.wikipedia.org/​wiki/​Differentiated_services|DiffServ]] i [[https://​en.wikipedia.org/​wiki/​Explicit_Congestion_Notification#​Operation_of_ECN_with_IP|ECN]] (wcześniej ToS)<​html></​small></​html>​
  
-Protokół warstwy wyższej http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml+<​html><​small><​/html> 
 +Dla przetestowania fragmentacji spróbuj zmienić rozmiar pakietu ping: ''​ping -s <​rozmiar>​ <​cel>'',​ np: \\ 
 +''​ping -s 5000 1.1.1.1''​  
 +<​html><​/small><​/html> 
 + 
 +<​html><​!-
 +''​socat ​/etc/​protocols,​rdonly udp-datagram:​150.254.32.130:​9''​ 
 +''​socat /​etc/​protocols,​rdonly udp-datagram:​224.0.0.1:​9''​ 
 +--></​html>​
  
 ===== ICMP i IGMP ===== ===== ICMP i IGMP =====
 +==== ICMP ====
 Protokół IP nie przewiduje informowania nadawcy o problemach. Protokół IP nie przewiduje informowania nadawcy o problemach.
  
-Funkcje diagnostyczne i kontrolne dla IPv4 spełnia protokół ​ICMP (http://​en.wikipedia.org/​wiki/​Internet_Control_Message_Protocol). Pozwala on m. inn. na:+Funkcje diagnostyczne i kontrolne dla IPv4 spełnia protokół ​[[http://​en.wikipedia.org/​wiki/​Internet_Control_Message_Protocol|ICMP (Internet_Control_Message_Protocol)]] \\ ICMP pozwala ​m. inn. na:
   * wysłanie informacji zwrotnej o niedostarczeniu pakietu (destination unreachable,​ TTL exceeded)   * wysłanie informacji zwrotnej o niedostarczeniu pakietu (destination unreachable,​ TTL exceeded)
   * testowanie łączności (ping)   * testowanie łączności (ping)
  
-Do zarządzanie przynależnością do grup multicastowych w IPv4 służy IGMP.+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) 
 +<​html><​!-- 
 +(lub ''​tftp lab-net-1 -c get readme.txt''​) 
 +(lub ''​tftp lab-sec-33 -c get readme.txt''​) 
 +--></​html>​
  
-''​ping''​ \\ ''​traceroute [-I]''​+==== IGMP ==== 
 + 
 +Do zarządzanie przynależnością do grup multicastowych w IPv4 służy IGMP [[https://​en.wikipedia.org/​wiki/​Internet_Group_Management_Protocol|[1]]]. 
 + 
 +<​html><​small></​html>​ 
 +Dzięki IGMP urządzenia sieciowe wysyłają wiadomości multicastowe tylko zainteresowanym odbiorcom ​ [[https://​en.wikipedia.org/​wiki/​IGMP_snooping|[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ń: | <​html><​pre>​ 
 +# netstat -ng 
 +IPv6/IPv4 Group Memberships 
 +Interface ​      ​RefCnt Group 
 +--------------- ------ --------------------- 
 +br0             ​1 ​     <span title="​Adres 224.0.0.251 odpowiada adresowi MAC 01:​0E:​00:​00:​FB"​ style="​background-color:​rgba(128,​0,​128,​0.2)">​224.0.0.251</​span>​ 
 +br0             ​1 ​     224.0.0.1 
 + 
 +# cat /​proc/​net/​igmp 
 +Idx     ​Device ​   : Count Querier ​      ​Group ​   Users Timer    Reporter 
 +3       ​wlan0 ​    : ​    ​2 ​     V3 
 +                                <span title="​Adres 224.0.0.251 odpowiada adresowi MAC 01:​0E:​00:​00:​FB,​ stąd FB0000E0"​ style="​background-color:​rgba(128,​0,​128,​0.2)">​FB0000E0</​span> ​    1 0:​00000000 ​              0 
 +                                010000E0 ​    1 0:​00000000 ​              0 
 +</​pre></​html>​ 
 +++++ 
 +<​html></​small></​html>​
  
 ===== Trasowanie ===== ===== Trasowanie =====
Linia 25: Linia 74:
 Jeśli cel nie jest bezpośrednio połączony,​ dane (pakiety) trzeba wysłać **przez** inne urządzenie,​ tj. trzeba wybrać dalszą **trasę** pakietu.\\ 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). 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 ===== ===== Pomiędzy warstwą łącza danych a warstwą sieci =====
-ARP - http://​en.wikipedia.org/​wiki/​Address_Resolution_Protocol +Protokół ​ARP - http://​en.wikipedia.org/​wiki/​Address_Resolution_Protocol
-  * wyświetlanie znanych odwzorowań ''​arp'' ​  / ​  ''​ip neigh''​ +
-  * czyszczenie wszystkich odwzorowań ''​ip n flush all''​+
  
-Ręczne ​wysyłanie żądania ARP – ''​arping''​+Narzędzia:​ 
 +  * wyświetlanie znanych odwzorowań ''​arp''​ / ''​ip neigh''​  
 +  * <​html><​small></​html>​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//''​ <​html></​small></​html>​ 
 +  * <​html><​small></​html>​ręczne usunięcie odwzorowania \\ ''​arp -i br0 -d  //​1.0.0.0//''​ \\ ''​ip neigh del //1.0.0.0// dev //​br0//''​ <​html></​small></​html>​ 
 +  * czyszczenie wszystkich odwzorowań ​''​ip neigh flush all''​
  
-Adresy IP i MAC na drodze pakietu od źródła do celu+Ręczne wysyłanie żądania ARP – ''​arping''​\\ 
 +''​arping -I <//​interfejs//>​ <//adres IP//>''​ \\ 
 +''​arping -I //br0// //​150.254.32.129//''​
  
 Slajdy: ''​[[http://​www.cs.put.poznan.pl/​mlibuda/​ARP.pdf|Protokół ARP]]''​ Slajdy: ''​[[http://​www.cs.put.poznan.pl/​mlibuda/​ARP.pdf|Protokół ARP]]''​
-===== DHCP ===== 
  
-DHCP: 
-  * Komunikaty discover, offer, request, nack, ack, release 
-  * Przepływ wiadomości dla przyznawania,​ odnawiania i zwalniania adresu - http://​seth.galitzer.net/?​q=node/​8 
-  * Zakres adresów (address pool), dzierżawa (lease) 
-  * Dane przekazywane przez DHCP - [[http://​pl.wikipedia.org/​wiki/​Dynamic_Host_Configuration_Protocol#​Parametry_konfiguracji_przekazywane_do_klienta|http://​pl.wikipedia.org/​wiki/​Dynamic_Host_Configuration_Protocol]] 
-  * Stały adres IP a DHCP 
-Serwer - ''​dhcpd'',​ klienty DHCP - ''​dhcpcd dhclient udhcpc pump''​ 
-  * żądanie adresu IP: ''​dhcpcd [-d] //​eth0//''​ / ''​dhclient [-d] [-v] //​eth0//''​ 
-  * uwlnienie adresu IP: ''​dhcpcd -k //​eth0//''​ / ''​dhclient -r //​eth0//''​ 
  
-Zeroconf ​(http://en.wikipedia.org/wiki/Zero_configuration_networking), APIPA, Avahi+<​html><​small>​ 
 +<​h3>​[EKSTRA]</​h3>​ 
 +</​html>​ 
 +Fragmentacja IP a rzeczywistość:​ https://​blog.cloudflare.com/​ip-fragmentation-is-broken/​ 
 + 
 +Protokół ARP znalazł zastosowanie w wielu technologiach warstwy 2 ([[https://www.iana.org/assignments/arp-parameters/​arp-parameters.xhtml|[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
 +<​html></​small></​html>​
sk1/ip_icmp_dhcp.txt · ostatnio zmienione: 2018/04/05 13:17 przez jkonczak