Provided by: manpages-pl_4.21.0-2_all bug

NAZWA

       arp - moduł ARP jądra Linuksa

OPIS

       Ten  moduł  protokołu  w  jądrze  zawiera  implementację  protokołu  rozpoznawania  adresów (ang. Address
       Resolution Protocol) zdefiniowanego w RFC 826.  Służy do przekształcania adresów sprzętowych warstwy 2 na
       adresy  protokołu  IPv4  w  sieciach  o  bezpośrednim  połączeniu.  Normalnie  użytkownik  nie   korzysta
       bezpośrednio z tego modułu, z wyjątkiem konfigurowania go; służy on innym protokołom w jądrze.

       Proces  użytkownika  może  odbierać  pakiety  ARP  za  pomocą gniazd packet(7).  Istnieje także mechanizm
       zarządzania pamięcią podręczną ARP w przestrzeni użytkownika za  pomocą  gniazd  netlink(7).  Tabelą  ARP
       można również zarządzać za pomocą ioctl(2) lub dowolnego gniazda AF_INET.

       Moduł  ARP  zarządza  pamięcią  podręczną  odwzorowań pomiędzy adresami sprzętowymi i adresami protokołu.
       Pamięć podręczna ma ograniczony rozmiar, więc stare i rzadko używane wpisy są  usuwane.  Wpisy  oznaczone
       jako  trwałe nie są nigdy usuwane podczas procesu czyszczenia. Można manipulować bezpośrednio tą pamięcią
       podręczną za pomocą kontrolek wejścia/wyjścia (ang. ioctls) a jej zachowanie można  dostrajać  za  pomocą
       opisanych poniżej interfejsów /proc.

       Gdy dla istniejącego odwzorowania nie ma pozytywnych odpowiedzi, po pewnym czasie (patrz interfejsy /proc
       poniżej)  wpis  w  pamięci podręcznej dla danego adresu jest uważany za przestarzały. Pozytywna odpowiedź
       może zostać odebrana od wyższej warstwy; na przykład jako pozytywne potwierdzenie  TCP.   Inne  protokoły
       mogą  sygnalizować postępy w połączeniu za pomocą znacznika MSG_CONFIRM w sendmsg(2). Gdy nie ma postępów
       w połączeniu, ARP próbuje próbkować  ponownie.  Najpierw  próbuje  odpytać  o  zaktualizowany  adres  MAC
       app_solicit  razy lokalnego demona ARP. Gdy to się nie powiedzie, a stary adres jest znany, to dokonywane
       jest ucast_solicit razy próbkowanie pojedyncze. Gdy to się również nie powiedzie, wysyłane  jest  w  sieć
       nowe zapytanie rozgłoszeniowe ARP. Zapytania są wysyłane jedynie wtedy, gdy w kolejce do wysłania czekają
       jakieś dane.

       Linux  automatycznie  dodaje  nietrwałe  wpisy  proxy arp po otrzymaniu zapytania dotyczącego adresu, dla
       którego są przekazywane pakiety, o ile dla interfejsu odbierającego dany pakiet włączono proxy  arp.  Gdy
       dla  danego  celu  ustawiona  jest droga odrzucająca pakiety (ang. reject route), wpis proxy arp nie jest
       dodawany.

   Kontrolki systemowe (ioctl)
       Dla wszystkich gniazd AF_INET dostępne są trzy kontrolki wejścia/wyjścia.  Pobierają  one  jako  argument
       wskaźnik do struktury struct arpreq.

           struct arpreq {
               struct sockaddr arp_pa;      /* adres protokołu */
               struct sockaddr arp_ha;      /* addres sprzętowy */
               int             arp_flags;   /* znaczniki */
               struct sockaddr arp_netmask; /* maska sieciowa adresu protokołu */
               char            arp_dev[16];
           };

       SIOCSARP,  SIOCDARP  and SIOCGARP respectively set, delete, and get an ARP mapping.  Setting and deleting
       ARP maps are privileged operations and may  be  performed  only  by  a  process  with  the  CAP_NET_ADMIN
       capability or an effective UID of 0.

       arp_pa  musi  być  adresem  AF_INET,  a arp_ha musi być tego samego typu, co urządzenie podane w arp_dev.
       arp_dev jest zakończonym znakiem NULL łańcuchem stanowiącym nazwę urządzenia.
              ┌───────────────────────────────────────────────────────┐
              │                       arp_flags                       │
              ├───────────────────────────┬───────────────────────────┤
              │ znacznik                  │ znaczenie                 │
              ├───────────────────────────┼───────────────────────────┤
              │ ATF_COM                   │ Zapytanie zakończone      │
              ├───────────────────────────┼───────────────────────────┤
              │ ATF_PERM                  │ Wpis trwały               │
              ├───────────────────────────┼───────────────────────────┤
              │ ATF_PUBL                  │ Wpis publikacji           │
              ├───────────────────────────┼───────────────────────────┤
              │ Zażądano danych końcowych │ Zażądano danych końcowych │
              ├───────────────────────────┼───────────────────────────┤
              │ ATF_NETMASK               │ Używanie maski sieci      │
              ├───────────────────────────┼───────────────────────────┤
              │ ATF_DONTPUB               │ Nie odpowiadać            │
              └───────────────────────────┴───────────────────────────┘

       Gdy ustawiony jest znacznik ATF_NETMASK, to arp_netmask powinno być prawidłowe.  Linux  2.2  nie  wspiera
       wpisów  proxy  ARP dla sieci, więc należy to ustawić na 0xffffffff lub 0, aby usunąć istniejący wpis ARP.
       ATF_USETRAILERS jest przestarzałe i nie powinno być używane.

   Interfejsy /proc
       ARP wspiera interfejsy /proc, pozwalające konfigurować parametry globalne  lub  lokalne  -  dla  podanego
       interfejsu.    Dostęp    do    tych    interfejsów   można   uzyskać   odczytując   i   zapisując   pliki
       /proc/sys/net/ipv4/neigh/*/*.   Każdy   interfejs   w    systemie    ma    swój    własny    katalog    w
       /proc/sys/net/ipv4/neigh/.  Ustawienia  w  katalogu  "default"  są używane dla wszystkich nowo tworzonych
       urządzeń. Jeśli nie podano inaczej, wszystkie wartości interfejsów związanych  z  czasem  są  podawane  w
       sekundach.

       anycast_delay (od Linuksa 2.2)
              Maksymalna  liczba jiffies oczekiwania przed odpowiedzeniem na komunikat zaproszenia sąsiada IPv6.
              Obsługa anycast nie jest jeszcze zaimplementowana. Domyślnie 1 sekunda.

       app_solicit (od Linuksa 2.2)
              Maksymalna liczba prób wysyłania  demonowi  ARP  przestrzeni  użytkownika  poprzez  netlink  przed
              przejściem do prób multicast (patrz mcast_solicit). Domyślnie 0.

       base_reachable_time (od Linuksa 2.2)
              Kiedy  tylko  sąsiad  zostanie  znaleziony,  wpis  jest  uważany za ważny przez co najmniej losową
              wartość czasu pomiędzy base_reachable_time/2 a 3*base_reachable_time/2.  Ważność  wpisu  może  być
              przedłużona, jeżeli otrzyma on takie wskazówki z protokołów wyższego poziomu. Domyślnie 30 sekund.
              Plik jest obecnie przestarzały, zamiast niego prosimy używać base_reachable_time_ms.

       base_reachable_time_ms (od Linuksa 2.6.12)
              Tak jak base_reachable_time, ale czas jest wyrażany w milisekundach. Domyślną wartością jest 30000
              milisekund.

       delay_first_probe_time (od Linuksa 2.2)
              Oczekiwanie  przed  pierwszą  próbą  po  tym, jak sąsiad został uznany za niedostępny. Domyślnie 5
              sekund.

       gc_interval (od Linuksa 2.2)
              Jak często powinien się  uruchamiać  proces  oczyszczania  śmieci  z  listy  wpisów  o  sąsiadach.
              Domyślnie 30 sekund.

       gc_stale_time (od Linuksa 2.2)
              Określa, jak często należy sprawdzać wpisy o niedostępnych sąsiadach. Kiedy sąsiad zostanie uznany
              za  niedostępnego,  jest on ponownie sprawdzany przed próbą wysłania danych do niego. Domyślnie 60
              sekund.

       gc_thresh1 (od Linuksa 2.2)
              Minimalna liczba wpisów przechowywanych w buforze  ARP.  Proces  czyszczenia  starych  wpisów  nie
              uruchomi się, jeżeli bufor zawiera mniej wpisów niż podana tutaj wartość. Domyślnie 128.

       gc_thresh2 (od Linuksa 2.2)
              Miękka  maksymalna  liczba  wpisów  trzymanych  w  buforze  ARP. Proces czyszczenia śmieci pozwoli
              przekroczyć tę liczbę wpisów na 5 sekund przed rozpoczęciem czyszczenia. Domyślnie 512.

       gc_thresh3 (od Linuksa 2.2)
              Twarda maksymalna liczba wpisów przechowywanych w buforze ARP. Proces  czyszczenia  śmieci  zawsze
              się uruchomi, jeśli bufor zawiera więcej wpisów niż wynosi ta liczba. Domyślnie 1024.

       locktime (od Linuksa 2.2)
              Minimalna  liczba  jiffies,  przez  którą  wpis ARP będzie przechowywany w buforze. Zabezpiecza to
              bufor ARP przed  zabiciem,  jeżeli  jest  więcej  niż  jedno  możliwe  mapowanie  (z  powodu  złej
              konfiguracji sieci). Domyślnie 1 sekunda.

       mcast_solicit (od Linuksa 2.2)
              Maksymalna liczba prób rozwiązywania adresu za pomocą multicast/broadcast przed zaznaczeniem wpisu
              jako niedostępny. Domyślnie 3.

       proxy_delay (od Linuksa 2.2)
              Kiedy  otrzymano  żądanie  ATP dla znanego adresu proxy-ARP, to poczekaj proxy_delay jiffies przed
              wysłaniem odpowiedzi. Jest to używane, aby zapobiec zalaniu sieci żądaniami w pewnych przypadkach.
              Domyślnie 0.8 sekundy.

       proxy_qlen (od Linuksa 2.2)
              Maksymalna liczba pakietów, które mogą być zakolejkowane  w adresie proxy-ARP. Wartość domyślna to
              64.

       retrans_time (od Linuksa 2.2)
              Liczba jiffies oczekiwania przed ponowną  transmisją  żądania.  Domyślnie  1  sekunda.  Plik  jest
              obecnie przestarzały, zamiast niego prosimy używać retrans_time_ms.

       retrans_time_ms (od Linuksa 2.6.12)
              Liczba milisekund oczekiwania przed ponowną transmisją żądania. Domyślnie 1000 milisekund.

       ucast_solicit (od Linuksa 2.2)
              Maksymalna  liczba  prób  wysłania  żądań unicast przed zapytaniem demona ARP (patrz app_solicit).
              Domyślnie 3.

       unres_qlen (od Linuksa 2.2)
              Maksymalna liczba pakietów, które mogą być  kolejkowane  przez  inne  warstwy  sieci  dla  każdego
              nierozwiązanego adresu. Domyślnie 3.

WERSJE

       W Linuksie 2.0 zmieniono struct arpreq, dodając pole arp_dev oraz jednocześnie zmieniono numery kontrolek
       wejścia/wyjścia. W Linuksie 2.2 porzucono wsparcie dla starych kontrolek wejścia/wyjścia.

       W  Linuksie  2.2  porzucono  wsparcie  dla  wpisów proxy ARP dla sieci (maska sieci inna niż 0xffffffff).
       Zostało ono zastąpione przez automatyczną konfigurację proxy  ARP  w  jądrze  dla  wszystkich  komputerów
       osiągalnych  na innych interfejsach (gdy dla danego interfejsu włączone są przekazywanie pakietów i proxy
       ARP).

       Interfejsy neigh/* nie istniały w Linuksie przed wersją 2.2.

BŁĘDY

       Niektóre ustawienia timera są podawane w jednostkach jiffy, które są zależne  od  architektury  i  wersji
       jądra; patrz także time(7).

       Nie  ma  możliwości  zasygnalizowania  postępów  w  połączeniu  z przestrzeni użytkownika. Oznacza to, że
       protokoły połączeniowe zaimplementowane w przestrzeni użytkownika będą generować nadmierny ruch ARP, gdyż
       ndisc będzie dokonywał regularnego próbkowania adresów MAC. Ten sam problem dotyczy niektórych protokołów
       jądra (np. NFS-u po UDP).

       Ta strona podręcznika miesza ze sobą funkcje charakterystyczne dla IPv4 z funkcjami wspólnymi dla IPv4  i
       IPv6.

ZOBACZ TAKŻE

       capabilities(7), ip(7), arpd(8)

       RFC 826  do opisu ARP. RFC 2461 dla opisu znajdywania sąsiadów w IPv6 oraz podstawowych stosowanych w tym
       celu algorytmów. ARP IPv4 w Linuksie 2.2+ używa algorytmów IPv6 tam gdzie jest to celowe.

TŁUMACZENIE

       Autorami   polskiego   tłumaczenia   niniejszej   strony   podręcznika   są:    Andrzej    Krzysztofowicz
       <ankry@green.mf.pg.gda.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.03                           15 grudnia 2022 r.                                         arp(7)