Provided by:
manpages-pl_20060617-4_all 
NAZWA
arp - modul ARP jdra Linuksa
OPIS
Ten modul protokolu w jdrze zawiera implementacj protokolu
rozpoznawania adresow (ang. Address Resolution Protocol) zdefiniowanego
w RFC 826. Sluy on do przeksztalcania adresow sprztowych warstwy 2 na
adresy protokolu IPv4 w sieciach o bezporednim polczeniu. Normalnie
uytkownik nie korzysta bezporednio z tego modulu, z wyjtkiem
konfigurowania go; sluy on innym protokolom w jdrze.
Proces uytkownika moe odbiera pakiety ARP za pomoc gniazd packet(7).
Istnieje take mechanizm zarzdzania pamici podrczn ARP w przestrzeni
uytkownika za pomoc gniazd netlink(7). Tabel ARP mona rownie zarzdza
za pomoc ioctl(2) lub dowolnego gniazda PF_INET.
Modul ARP zarzdza pamici podrczn odwzorowa pomidzy adresami sprztowymi
i adresami protokolu. Pami podrczna ma ograniczony rozmiar, wic stare i
rzadko uywane wpisy s usuwane. Wpisy oznaczone jako trwale nie s nigdy
usuwane podczas procesu czyszczenia. Mona manipulowa bezporednio t
pamici podrczn za pomoc kontrolek wejcia/wyjcia (ang. ioctls) a jej
zachowanie mona dostraja za pomoc zdefiniowanych poniej kontrolek
systemowych (ang. sysctls).
Gdy dla istniejcego odwzorowania nie ma pozytywnych odpowiedzi, po
pewnym czasie (patrz kontrolki systemowe poniej) wpis w pamici
podrcznej dla danego adresu jest uwaany za przestarzaly. Pozytywna
odpowied moe zosta odebrana od wyszej warstwy; na przyklad jako
pozytywne potwierdzenie TCP. Inne protokoly mog sygnalizowa postpy w
polczeniu za pomoc znacznika MSG_CONFIRM w sendmsg(2). Gdy nie ma
postpow w polczeniu ARP probuje probkowa ponownie. Najpierw probuje
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 probkowanie pojedyncze. Gdy to si rownie nie
powiedzie, wysylane jest w sie nowe zapytanie rozgloszeniowe ARP.
Zapytania s wysylane jedynie wtedy, gdy w kolejce do wyslania czekaj
jakie dane.
Linux automatycznie dodaje nietrwale wpisy proxy arp po otrzymaniu
zapytania dotyczcego adresu, dla ktorego s przekazywane pakiety, o ile
dla interfejsu odbierajcego dany pakiet wlczono proxy arp. Gdy dla
danego celu ustawiona jest droga odrzucajca pakiety (ang. reject
route), wpis proxy arp nie jest dodawany.
IOCTL
Dla wszystkich gniazd PF_INET dostpne s trzy kontrolki wejcia/wyjcia.
Pobieraj one jako parametr wskanik do struktury struct arpreq.
struct arpreq {
struct sockaddr arp_pa; /* adres protokolu */
struct sockaddr arp_ha; /* adres sprztowy */
int arp_flags; /* znaczniki */
struct sockaddr arp_netmask; /* maska sieci dla adresu protokolu */
char arp_dev[16];
};
SIOCSARP, SIOCDARP i SIOCGARP odpowiednio ustawiaj, usuwaj i pobieraj
odwzorowanie ARP. Ustawianie i usuwanie odwzorowa ARP jest operacj
uprzywilejowan i moe zosta wykonane jedynie przez proces z ustawionym
znacznikiem CAP_NET_ADMIN lub posiadajcy efektywny UID rowny 0.
arp_pa musi by gniazdem AF_INET a arp_ha musi by tego samego typu, co
urzdzenie podane w arp_dev. arp_dev jest zakoczonym znakiem NUL
lacuchem stanowicym nazw urzdzenia.
+-----------------------------------------+
| arp_flags |
+----------------+------------------------+
|znacznik | znaczenie |
+----------------+------------------------+
|ATF_COM | Zapytanie zakoczone |
+----------------+------------------------+
|ATF_PERM | Wpis trwaly |
+----------------+------------------------+
|ATF_PUBL | Wpis publikacji |
+----------------+------------------------+
|ATF_USETRAILERS | Zadano danych kocowych |
+----------------+------------------------+
|ATF_NETMASK | Uywanie maski sieci |
+----------------+------------------------+
|ATF_DONTPUB | Nie odpowiada |
+----------------+------------------------+
Gdy ustawiony jest znacznik ATF_NETMASK, to arp_netmask powinno by
prawidlowe. Linux 2.2 nie wspiera wpisow proxy ARP dla sieci, wic naley
to ustawi na 0xffffffff lub 0, aby usun istniejcy wpis arp.
ATF_USETRAILERS jest przestarzale i nie powinno by uywane.
SYSCTL
ARP wspiera interfejs sysctl, pozwalajcy konfigurowa parametry globalne
lub lokalne - dla podanego interfejsu. Dostp do tych sysctli mona
uzyska odczytujc i zapisujc pliki /proc/sys/net/ipv4/neigh/*/* lub
uywajc interfejsu sysctl(2). Kady interfejs w systemie ma swoj wlasny
katalog w /proc/sys/net/ipv4/neigh/. Ustawienia w katalogu 'default' s
uywane dla wszystkich nowo tworzonych urzdze. Jeli nie podano inaczej,
wszystkie sysctl zwizane z czasem s podawane w sekundach.
anycast_delay
Maksymalna liczba jiffies oczekiwania przed odpowiedzeniem na
komunikat zaproszenia ssiada IPv6. Obsluga anycast nie jest
jeszcze zaimplementowana. Domylnie 1 sekunda.
app_solicit
Maksymalna liczba prob wysylania demonowi ARP przestrzeni
uytkownika poprzez netlink przed przejciem do prob multicast
(patrz mcast_solicit). Domylnie 0.
base_reachable_time
Kiedy tylko ssiad zostanie znaleziony, wpis jest uwaany za wany
przez co najmniej losow warto pomidzy base_reachable_time/2 a
3*base_reachable_time/2. Wano wpisu moe by przedluona, jeeli
otrzyma on takie wskazowki z protokolow wyszego poziomu.
Domylnie 30 sekund.
delay_first_probe_time
Oczekiwanie przed pierwsz prob po tym, jak ssiad zostal uznany
za niedostpny. Domylnie 5 sekund.
gc_interval
Jak czsto powinien si uruchamia proces oczyszczania mieci z
listy wpisow o ssiadach. Domylnie 30 sekund.
gc_stale_time
Okrela, jak czsto naley sprawdza wpisy o niedostpnych ssiadach.
Kiedy ssiad zostanie uznany za niedostpnego, jest on ponownie
sprawdzany przed prob wyslania danych do niego. Domylnie 60
sekund.
gc_thresh1
Minimalna liczba wpisow przechowywanych w buforze ARP. Proces
czyszczenia starych wpisow nie uruchomi si, jeeli bufor zawiera
mniej wpisow ni podana tutaj warto. Domylnie - 128.
gc_thresh2
Mikka maksymalna liczba wpisow trzymanych w buforze ARP. Proces
czyszczenia mieci pozwoli przekroczy t liczb wpisow na 5 sekund
przed rozpoczciem czyszczenia. Domylnie 512.
gc_thresh3
Twarda maksymalna liczba wpisow przechowywanych w buforze ARP.
Proces czyszczenia mieci zawsze si uruchomi, jeli bufor zawiera
wicej wpisow ni wynosi ta liczba. Domylnie 1024.
locktime
Minimalna liczba jiffies, przez ktor wpis ARP bdzie
przechowywany w buforze. Zabezpiecza to bufor ARP przed
zabiciem, jeeli jest wicej ni jedno moliwe mapowanie (z powodu
zlej konfiguracji sieci). Domylnie 1 sekunda.
mcast_solicit
Maksymalna liczba prob rozwizywania adresu za pomoc
multicast/broadcast przed zaznaczeniem wpisu jako niedostpny.
Domylnie 3.
proxy_delay
Kiedy otrzymano danie ATP dla znanego adresu proxy-ARP, to
poczekaj proxy_delay jiffies przed wyslaniem odpowiedzi. Jest to
uywane, aby zapobiec zalaniu sieci daniami w pewnych
przypadkach. Domylnie 0.8 sekundy.
proxy_qlen
Maksymalna liczba pakietow, ktore mog by zakolejkowane w
adresie proxy-ARP. Warto domylna to 64.
retrans_time
Liczba jiffies oczekiwania przed ponown transmisj dania.
Domylnie 1 sekunda.
ucast_solicit
Maksymalna liczba prob wyslania da unicast przed zapytaniem
demona ARP (patrz app_solicit). Domylnie 3.
unres_qlen
Maksymalna liczba pakietow, ktore mog by kolejkowane przez inne
warstwy sieci dla kadego nierozwizanego adresu. Domylnie 3.
B/LDY
Niektore ustawienia timera s podawane w jednostkach jiffy, ktore s
zalene od architektury. Dla architektury Alpha jiffy to 1/1024 sekundy,
na wikszoci pozostalych architektur jest to 1/100s.
Nie ma moliwoci zasygnalizowania postpow w polczeniu z przestrzeni
uytkownika. Oznacza to, e protokoly polczeniowe zaimplementowane w
przestrzeni uytkownika bd generowa nadmierny ruch ARP, gdy ndisc bdzie
dokonywal regularnego probkowania adresow MAC. Ten sam problem dotyczy
niektorych protokolow jdra (np. NFS-u po UDP).
Ta strona podrcznika miesza ze sob funkcje charakterystyczne dla IPv4 z
funkcjami wspolnymi dla IPv4 i IPv6.
WERSJE
W Linuksie 2.0 zmieniono struct arpreq, dodajc pole arp_dev oraz
jednoczenie zmieniono numery kontrolek wejcia/wyjcia. W Linuksie 2.2
porzucono wsparcie dla starych kontrolek wejcia/wyjcia.
W Linuksie 2.2 porzucono wsparcie dla wpisow proxy arp dla sieci (maska
sieci inna ni 0xffffffff). Zostalo ono zastpione przez automatyczn
konfiguracj proxy arp w jdrze dla wszystkich hostow osigalnych na
innych interfejsach (gdy dla danego interfejsu wlczone s przekazywanie
pakietow i proxy arp).
Kontrolki systemowe neigh/* nie istnialy w Linuksie przed wersj 2.2.
ZOBACZ TAKE
capabilities(7), ip(7)
RFC826 dla opisu ARP.
RFC2461 dla opisu znajdywania ssiadow w IPv6 oraz podstawowych
stosowanych w tym celu algorytmow.
ARP IPv4 w Linuksie 2.2+ korzysta z algorytmow IPv6, gdy jest to
moliwe.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.