File: arp.7

package info (click to toggle)
manpages-pl 1%3A0.6-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 20,896 kB
  • ctags: 7
  • sloc: sh: 112; makefile: 59; perl: 32
file content (266 lines) | stat: -rw-r--r-- 12,195 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
.\" t
.\" This man page is Copyright (C) 1999 Matthew Wilcox <willy@bofh.ai>.
.\" %%%LICENSE_START(VERBATIM_ONE_PARA)
.\" Permission is granted to distribute possibly modified copies
.\" of this page provided the header is included verbatim,
.\" and in case of nontrivial modification author and date
.\" of the modification is added to the header.
.\" %%%LICENSE_END
.\"
.\" Modified June 1999 Andi Kleen
.\" $Id: arp.7,v 1.10 2000/04/27 19:31:38 ak Exp $
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.\" This file is distributed under the same license as original manpage
.\" Copyright of the original manpage:
.\" Copyright © 1999 Matthew Wilcox 
.\" Copyright © of Polish translation:
.\" Andrzej M. Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>, 2003.
.\" Robert Luberda <robert@debian.org>, 2006, 2012.
.\" Michał Kułach <michal.kulach@gmail.com>, 2013, 2014.
.TH ARP 7 2008\-11\-25 Linux "Podręcznik programisty Linuksa"
.SH NAZWA
arp \- moduł ARP jądra Linuksa
.SH 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 \fBpacket\fP(7).
Istnieje także mechanizm zarządzania pamięcią podręczną ARP w przestrzeni
użytkownika za pomocą gniazd \fBnetlink\fP(7). Tabelą ARP można również
zarządzać za pomocą \fBioctl\fP(2) lub dowolnego gniazda \fBAF_INET\fP.

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 \fI/proc\fP.

Gdy dla istniejącego odwzorowania nie ma pozytywnych odpowiedzi, po pewnym
czasie (patrz interfejsy \fI/proc\fP 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
\fBMSG_CONFIRM\fP w \fBsendmsg\fP(2). Gdy nie ma postępów w połączeniu, ARP
próbuje próbkować ponownie. Najpierw próbuje odpytać o zaktualizowany adres
MAC \fBapp_solicit\fP razy lokalnego demona ARP. Gdy to się nie powiedzie, a
stary adres jest znany, to dokonywane jest \fBucast_solicit\fP 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.
.SS "Kontrolki systemowe (ioctl)"
Dla wszystkich gniazd \fBAF_INET\fP dostępne są trzy kontrolki
wejścia/wyjścia. Pobierają one jako argument wskaźnik do struktury \fIstruct
arpreq\fP.

.in +4n
.nf
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];
};
.fi
.in

\fBSIOCSARP\fP, \fBSIOCDARP\fP i \fBSIOCGARP\fP odpowiednio ustawiają, usuwają i
pobierają odwzorowanie ARP. Ustawianie i usuwanie odwzorowań ARP jest
operacją uprzywilejowaną i może zostać wykonane jedynie przez proces z
ustawionym znacznikiem \fBCAP_NET_ADMIN\fP lub posiadający efektywny UID równy
0.

\fIarp_pa\fP musi być adresem \fBAF_INET\fP, a \fIarp_ha\fP musi być tego samego
typu, co urządzenie podane w \fIarp_dev\fP. \fIarp_dev\fP jest zakończonym znakiem
NULL łańcuchem stanowiącym nazwę urządzenia.
.RS
.TS
tab(:) allbox;
c s
l l.
\fIarp_flags\fP
znacznik:znaczenie
ATF_COM:Zapytanie zakończone
ATF_PERM:Wpis trwały
ATF_PUBL:Wpis publikacji
ATF_USETRAILERS:Zażądano danych końcowych
ATF_NETMASK:Używanie maski sieci
ATF_DONTPUB:Nie odpowiadać
.TE
.RE
.PP
Gdy ustawiony jest znacznik \fBATF_NETMASK\fP, to \fIarp_netmask\fP 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.
\fBATF_USETRAILERS\fP jest przestarzałe i nie powinno być używane.
.SS "Interfejsy /proc"
ARP wspiera interfejsy \fI/proc\fP, 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 \fI/proc/sys/net/ipv4/neigh/*/*\fP. Każdy
interfejs w systemie ma swój własny katalog w
\fI/proc/sys/net/ipv4/neigh/\fP. 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.
.TP 
\fIanycast_delay\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Maksymalna liczba jiffies oczekiwania przed odpowiedzeniem na komunikat
zaproszenia sąsiada IPv6. Obsługa anycast nie jest jeszcze
zaimplementowana. Domyślnie 1 sekunda.
.TP 
\fIapp_solicit\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Maksymalna liczba prób wysyłania demonowi ARP przestrzeni użytkownika
poprzez netlink przed przejściem do prób multicast (patrz
\fImcast_solicit\fP). Domyślnie 0.
.TP 
\fIbase_reachable_time\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Kiedy tylko sąsiad zostanie znaleziony, wpis jest uważany za ważny przez co
najmniej losową wartość czasu pomiędzy \fIbase_reachable_time\fP/2 a
3*\fIbase_reachable_time\fP/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ć
\fIbase_reachable_time_ms\fP.
.TP 
\fIbase_reachable_time_ms\fP (od Linuksa 2.6.12)
Tak jak \fIbase_reachable_time\fP, ale czas jest wyrażany w
milisekundach. Domyślną wartością jest 30000 milisekund.
.TP 
\fIdelay_first_probe_time\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Oczekiwanie przed pierwszą próbą po tym, jak sąsiad został uznany za
niedostępny. Domyślnie 5 sekund.
.TP 
\fIgc_interval\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Jak często powinien się uruchamiać proces oczyszczania śmieci z listy wpisów
o sąsiadach. Domyślnie 30 sekund.
.TP 
\fIgc_stale_time\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
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.
.TP 
\fIgc_thresh1\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
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.
.TP 
\fIgc_thresh2\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
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.
.TP 
\fIgc_thresh3\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
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.
.TP 
\fIlocktime\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
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.
.TP 
\fImcast_solicit\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Maksymalna liczba prób rozwiązywania adresu za pomocą multicast/broadcast
przed zaznaczeniem wpisu jako niedostępny. Domyślnie 3.
.TP 
\fIproxy_delay\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Kiedy otrzymano żądanie ATP dla znanego adresu proxy\-ARP, to poczekaj
\fIproxy_delay\fP jiffies przed wysłaniem odpowiedzi. Jest to używane, aby
zapobiec zalaniu sieci żądaniami w pewnych przypadkach. Domyślnie 0.8
sekundy.
.TP 
\fIproxy_qlen\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Maksymalna liczba pakietów, które mogą być zakolejkowane  w adresie
proxy\-ARP. Wartość domyślna to 64.
.TP 
\fIretrans_time\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Liczba jiffies oczekiwania przed ponowną transmisją żądania. Domyślnie 1
sekunda. Plik jest obecnie przestarzały, zamiast niego prosimy używać
\fIretrans_time_ms\fP.
.TP 
\fIretrans_time_ms\fP (od Linuksa 2.6.12)
Liczba milisekund oczekiwania przed ponowną transmisją żądania. Domyślnie
1000 milisekund.
.TP 
\fIucast_solicit\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Maksymalna liczba prób wysłania żądań unicast przed zapytaniem demona ARP
(patrz \fIapp_solicit\fP). Domyślnie 3.
.TP 
\fIunres_qlen\fP (od Linuksa 2.2)
.\" Precisely: 2.1.79
Maksymalna liczba pakietów, które mogą być kolejkowane przez inne warstwy
sieci dla każdego nierozwiązanego adresu. Domyślnie 3.
.SH WERSJE
W Linuksie 2.0 zmieniono \fIstruct arpreq\fP, dodając pole \fIarp_dev\fP 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 \fIneigh/*\fP nie istniały w Linuksie przed wersją 2.2.
.SH 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 \fBtime\fP(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.
.SH "ZOBACZ TAKŻE"
\fBcapabilities\fP(7), \fBip\fP(7)
.PP
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.
.SH "O STRONIE"
Angielska wersja tej strony pochodzi z wydania 3.71 projektu Linux
\fIman\-pages\fP. Opis projektu, informacje dotyczące zgłaszania błędów, oraz
najnowszą wersję oryginału można znaleźć pod adresem
\%http://www.kernel.org/doc/man\-pages/.
.SH TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są:
Andrzej M. Krzysztofowicz (PTM) <ankry@mif.pg.gda.pl>,
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>.
.PP
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją \fB 3.71 \fPoryginału.