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
|
.\" -*- nroff -*-
.\" This man page is Copyright (C) 1999 Matthew Wilcox <willy@bofh.ai>.
.\" 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.
.\" Modified June 1999 Andi Kleen
.\" $Id: arp.7,v 1.1 2000/10/20 13:05:11 ricardo Exp $
.TH ARP 7 "3/06/1999" "Pgina do Manual do Linux" "Manual do Programador Linux"
.SH NOME
arp \- mdulo de kernel para ARP em Linux.
.SH DESCRIO
Este mdulo de protocolo de kernel implementa o Protocolo de Resoluo de
Endereos (Address Resolution Protocol) definido na RFC 826.
Ele usado para converter o endereo de hardware da camada 2 para
endereos do protocolo IPv4 em redes diretamente conectadas.
Normalmente o usurio no interage diretamente com este mdulo, exceto
para configur-lo; em vez disso, ele prov um servio para outros
protocolos no kernel.
Um processo de usurio pode receber pacotes ARP atravs do uso de sockets do tipo
.BR packet (7) .
H tambm um mecanisco de gerenciamento do cache ARP no espao de usurio,
atravs do uso de sockets do tipo
.BR netlink (7) .
A tabela ARP tambm pode ser controlada via
.B ioctl (2)
ou qualquer socket do tipo
.B PF_INET
.
O mdulo ARP matm um cache de mapeamento entre endereos de hardware e
endereos de protocolo. O cache tem um tamanho limitado pois h uma "coleta de lixo"
entre entradas mais antigas e usadas com menos freqncia. Entradas que so marcadas
como permanentes nunca so apagadas pelo coletor de lixo. O cache pode ser
manipulado diretamente pelo uso de ioctls, e seu comportamento pode ser
ajustado pelos sysctls definidos abaixo.
Quando no h feedback positiva para um mapeamento existente depois de um
certo tempo (veja os sysctls abaixo), uma entrada de cache vizinha considerada travada.
Para enviar dados para o destino novamente,
o ARP primeiro tenta pedir ao daemon arp local um endereo MAC atualizado por
.B app_solicit
vezes.
Se falhar, e um endereo MAC antigo conhecido, um teste de unicast enviado
.B ucast_solicit
vezes. Se falhar tambm, ele far um broadcast de um novo pedido de ARP
na rede. Pedidos so enviados apenas quando h dado enfileirado para
envio.
O Linux acrescentar automaticamete uma entrada no permanente de arp proxy
quando receber um pedido de um endereo para encaminhamento, e o
arp proxy habilitado na interface de recepo. Quando houver uma rota
rejeitada para o destino, nenhuma entrada de arp proxy acrescentada.
.SH IOCTLS
Esses ioctls so disponveis em todos os sockets
.B PF_INET
.
Eles pegam um ponteiro para um
.B struct arpreq
como parmetro.
.nf
.ta 4 20 33
struct arpreq
{
struct sockaddr arp_pa; /* endereo de protocolo */
struct sockaddr arp_ha; /* endereo de hardware */
int arp_flags; /* flags */
struct sockaddr arp_netmask; /* mscara de rede do endereo de protocolo */
char arp_dev[16];
};
.fi
.BR SIOCSARP ", " SIOCDARP " e " SIOCGARP
respectivamente seta, deleta e obtm um mapeamento ARP.
Setar e deletar mapas ARP so operaes privilegiadas e s podem ser
realizadas por um processo com a capabilidade
.B CAP_NET_ADMIN
ou com um UID efetivo igual a 0.
.I arp_pa
deve ser um socket
.B AF_INET
e
.I arp_ha
deve ter o mesmo tipo que o dispositivo especificado em
.IR arp_dev .
.I arp_dev
uma string terminada em zero que nomeia um dispositivo.
.TS
tab(:) allbox;
c s
l l.
\fIarp_flags\fR
flag:significado
ATF_COM:Busca completada
ATF_PERM:Mantm entrada
ATF_PUBL:Publica entrada
ATF_USETRAILERS:Trailers requeridos
ATF_NETMASK:Usa uma mscara de rede
ATF_DONTPUB:No responde
.TE
.PP
Se o flag
.B ATF_NETMASK
selecionado, ento
.I arp_netmask
deveria ser vlido.
O Linux 2.2 no suporta entradas entradas ARP de rede proxy, ento deveria
ser setado para 0xffffffff, ou 0 para remover uma entrada de proxy arp existente.
.B ATF_USETRAILERS
obsoleto e no deveria ser usado.
.SH SYSCTLS
O ARP suporta uma interface de sysctl para configurar parmetros em uma
base global ou por interface.
Os sysctls podem ser acessados por leitura ou escrita dos arquivos
.B /proc/sys/net/ipv4/neigh/*/*
ou com a interface
.BR sysctl (2)
. Cada interface no sistema tem seu prprio diretrio em
/proc/sys/net/ipv4/neigh/.
A configurao no diretrio `default' usada por todos os dispositivos recm-criados.
A menos que se especifique o contrrio, sysctls relacionados a tempo so especificados em segundos.
.TP
.B anycast_delay
O nmero mximo de jiffies para atraso antes de uma resposta a uma
mensagem de solicitao de vizinhana IPv6.
Suporte a anycast ainda no foi implementado.
O padro 1 segundo.
.TP
.B app_solicit
O nmero mximo de testes para envio ao daemon ARP do espao de usurio,
via netlink, antes de voltar aos testes de multicast (veja
.IR mcast_solicit ).
O padro 0.
.TP
.B base_reachable_time
Uma vez que um vizinho foi encontrado, a entrada considerada vlida pelo
menos por um valor aleatrio entre
.IR base_reachable_time "/2 e 3*" base_reachable_time /2.
Uma validao da entrada ser estendida se ele receber feedback positivo
de protocolos de nvel mais alto.
O padro de 30 segundos.
.TP
.B delay_first_probe_time
Atraso antes do primeiro teste, depois que ele decidiu que um vizinho est
travado.
O padro de 5 segundos.
.TP
.B gc_interval
Quo freqentemente o coletor de lixo para entradas vizinhas deveria
tentar rodar.
O padro de 30 segundos.
.TP
.B gc_stale_time
Determina a freqncia da checagem por entradas de vizinhos travados.
Quando uma entrada de vizinho considerada travada, resolvido
novamente antes de enviar dados para ele.
O padro de 60 segundos.
.TP
.B gc_thresh1
O nmero mnimo de entradas a serem mantidas no cache ARP.
O coletor de lixo no rodar se houver menos do que este nmero de
entradas no cache.
O padro de 128.
.TP
.B gc_thresh2
O nmero mximo flexvel de entradas a serem mantidas no cache ARP. O
coletor de lixo permitir que o nmero de entradas exceda este nmero por
5 segundos antes que a coleta seja realizada.
O padro de 512.
.TP
.B gc_thresh3
O nmero mximo rgido de entradas a serem mantidas no cache ARP. O
coletor de lixo sempre rodar se houver mais que este nmero de entradas
no cache.
O padro de 1024.
.TP
.B locktime
O nmero mnimo de jiffies a manter uma entrada ARP no cache. Isto previne
o esmagamento do cache ARP se houver mais que um mapeamento potencial
(geralmente devido a desconfigurao de rede).
O padro de 1 segundo.
.TP
.B mcast_solicit
O nmero mximo de tentativas para resolver um endereo por multicast/broadcast
antes de marcar a entrada como no alcanvel.
O padro de 3.
.TP
.B proxy_delay
Quando recebido um pedido ARP de um endereo proxy-ARP conhecido, atrasa at
.I proxy_delay
jiffies antes de responder.
Isto usado para prevenir flooding (enxurrada) na rede em alguns casos.
O padro de 0.8 segundos.
.TP
.B proxy_qlen
O nmero mximo de pacotes que podem ser enfileirados em endereos proxy-ARP.
O padro de 64.
.TP
.B retrans_time
O nmero de jiffies de atraso antes de se retransmitir um pedido.
O padro de 1 segundo.
.TP
.B ucast_solicit
O nmero mximo de tentativas de enviar testes de unicast antes de
perguntar ao daemon ARP (veja
.IR app_solicit ).
O padro 3.
.TP
.B unres_qlen
O nmero mximo de pacotes que podem ser enfileirados para cada endereo
no resolvido por outras camadas da rede.
O padro de 3.
.SH PROBLEMAS
Algumas configuraes de temporizao so especficos em jiffies, que so
relacionados com a arquitetura. No Alpha, um jiffy 1/1024 segundo, em
muitas outras arquiteturas 1/100s.
No h maneira de sinalizar feedback positivo a partir do espao do usurio. Isto significa
que protocolos orientados a conexo implementados no espao de usurio geraro
um trfego ARP excessivo, porque ndisc retestar regularmente o endereo MAC.
O mesmo problema se aplica para a implementao do NFS no kernel.
Esta pgina de manual busca tanto a funcionalidade especfica para
IPv4 quanto a compartilhada entre IPv4 e IPv6.
.SH VERSES
O
.B struct arpreq
mudou no Linux 2.0 para incluir o membro
.I arp_dev
e os nmeros de ioctl mudaram ao mesmo tempo.
O suporte aos ioctls antigos foi tirado do Linux 2.2.
O suporte a entradas de arp proxy para redes (mscara de rede diferente de 0xffffffff)
foi eliminado no Linux 2.2. Ele substitudo pela configurao automtica
pelo kernel do arp proxy para todos os hosts alcancveis em outras interfaces (quando o repasse e o
arp proxy estiverem habilitados para a interface).
.SH VEJA TAMBM
.BR ip (7)
.PP
RFC826 para uma descrio do ARP.
.br
RFC2461 para uma descrio da descoberta de vizinhos IPv6 e os algoritmos-base
usados.
.SH TRADUZIDO POR LDP-BR em 21/08/2000.
\&\fR\&\f(CWRubens de Jesus Nogueira <darkseid99@usa.net> (traduo)\fR
\&\fR\&\f(CWAndr L. Fassone Canova <lonelywolf@blv.com.br> (reviso)\fR
|