Provided by: manpages-pt-br_4.27.0-1_all 

NOME
arp - módulo de kernel para ARP em Linux
DESCRIÇÃO
Este módulo de protocolo de kernel implementa o Protocolo de Resolução de Endereços (Address Resolution
Protocol) definido na RFC 826. Ele é usado para converter o endereço de hardware da camada 2 para
endereços do protocolo IPv4 em redes diretamente conectadas. Normalmente o usuário não interage
diretamente com este módulo, exceto para configurá-lo; em vez disso, ele provê um serviço para outros
protocolos no kernel.
Um processo de usuário pode receber pacotes ARP através do uso de 'sockets' do tipo packet(7). Há também
um mecanisco de gerenciamento do 'cache' ARP no espaço de usuário, através do uso de 'sockets' do tipo
netlink(7). A tabela ARP também pode ser controlada via ioctl(2) ou qualquer 'socket' do tipo AF_INET.
The ARP module maintains a cache of mappings between hardware addresses and protocol addresses. The
cache has a limited size so old and less frequently used entries are garbage-collected. Entries which
are marked as permanent are never deleted by the garbage-collector. The cache can be directly
manipulated by the use of ioctls and its behavior can be tuned by the /proc interfaces described below.
When there is no positive feedback for an existing mapping after some time (see the /proc interfaces
below), a neighbor cache entry is considered stale. Positive feedback can be gotten from a higher layer;
for example from a successful TCP ACK. Other protocols can signal forward progress using the MSG_CONFIRM
flag to sendmsg(2). When there is no forward progress, ARP tries to reprobe. It first tries to ask a
local arp daemon app_solicit times for an updated MAC address. If that fails and an old MAC address is
known, a unicast probe is sent ucast_solicit times. If that fails too, it will broadcast a new ARP
request to the network. Requests are sent only when there is data queued for sending.
O Linux acrescentará automaticamete uma entrada não permanente de arp proxy quando receber um pedido de
um endereço para encaminhamento, e o arp proxy é habilitado na interface de recepção. Quando houver uma
rota rejeitada para o destino, nenhuma entrada de arp proxy é acrescentada.
Ioctls
Three ioctls are available on all AF_INET sockets. They take a pointer to a struct arpreq as their
argument.
struct arpreq {
struct sockaddr arp_pa; /* protocol address */
struct sockaddr arp_ha; /* hardware address */
int arp_flags; /* flags */
struct sockaddr arp_netmask; /* netmask of protocol address */
char arp_dev[16];
};
SIOCSARP, SIOCDARP e SIOCGARP respectivamente seta, deleta e obtém um mapeamento ARP. Setar e deletar
mapas ARP são operações privilegiadas e só podem ser realizadas por um processo com a capabilidade
CAP_NET_ADMIN ou com um UID efetivo igual a 0.
arp_pa must be an AF_INET address and arp_ha must have the same type as the device which is specified in
arp_dev. arp_dev is a zero-terminated string which names a device.
┌───────────────────────────────────────────┐
│ arp_flags │
├─────────────────┬─────────────────────────┤
│ flag │ significado │
├─────────────────┼─────────────────────────┤
│ ATF_COM │ Busca completada │
├─────────────────┼─────────────────────────┤
│ ATF_PERM │ Mantém entrada │
├─────────────────┼─────────────────────────┤
│ ATF_PUBL │ Publica entrada │
├─────────────────┼─────────────────────────┤
│ ATF_USETRAILERS │ Trailers requeridos │
├─────────────────┼─────────────────────────┤
│ ATF_NETMASK │ Usa uma máscara de rede │
├─────────────────┼─────────────────────────┤
│ ATF_DONTPUB │ Não responde │
└─────────────────┴─────────────────────────┘
Se o sinalizador ATF_NETMASK for selecionado, então arp_netmask deveria ser válido. O Linux 2.2 não
suporta entradas entradas ARP de rede proxy, então deveria ser setado para 0xffffffff, ou 0 para remover
uma entrada de proxy arp existente. ATF_USETRAILERS é obsoleto e não deveria ser usado.
Interfaces /proc
ARP supports a range of /proc interfaces to configure parameters on a global or per-interface basis. The
interfaces can be accessed by reading or writing the /proc/sys/net/ipv4/neigh/*/* files. Each interface
in the system has its own directory in /proc/sys/net/ipv4/neigh/. The setting in the "default" directory
is used for all newly created devices. Unless otherwise specified, time-related interfaces are specified
in seconds.
anycast_delay (desde o Linux 2.2)
O número máximo de jiffies para atraso antes de uma resposta a uma mensagem de solicitação de
vizinhança IPv6. Suporte a anycast ainda não foi implementado. O padrão é 1 segundo.
app_solicit (desde o Linux 2.2)
O número máximo de testes para envio ao daemon ARP do espaço de usuário, via netlink, antes de
voltar aos testes de multicast (veja mcast_solicit). O padrão é 0.
base_reachable_time (desde o Linux 2.2)
Once a neighbor has been found, the entry is considered to be valid for at least a random value
between base_reachable_time/2 and 3*base_reachable_time/2. An entry's validity will be extended
if it receives positive feedback from higher level protocols. Defaults to 30 seconds. This file
is now obsolete in favor of base_reachable_time_ms.
base_reachable_time_ms (desde o Linux 2.6.12)
As for base_reachable_time, but measures time in milliseconds. Defaults to 30000 milliseconds.
delay_first_probe_time (desde o Linux 2.2)
Atraso antes do primeiro teste, depois que ele decidiu que um vizinho está travado. O padrão é de
5 segundos.
gc_interval (desde o Linux 2.2)
Quão freqüentemente o coletor de lixo para entradas vizinhas deveria tentar rodar. O padrão é de
30 segundos.
gc_stale_time (desde o Linux 2.2)
Determina a freqüência da checagem por entradas de vizinhos travados. Quando uma entrada de
vizinho é considerada travada, é resolvido novamente antes de enviar dados para ele. O padrão é de
60 segundos.
gc_thresh1 (desde o Linux 2.2)
O número mínimo de entradas a serem mantidas no 'cache' ARP. O coletor de lixo não rodará se
houver menos do que este número de entradas no 'cache'. O padrão é de 128.
gc_thresh2 (desde o Linux 2.2)
O número máximo flexível de entradas a serem mantidas no 'cache' ARP. O coletor de lixo permitirá
que o número de entradas exceda este número por 5 segundos antes que a coleta seja realizada. O
padrão é de 512.
gc_thresh3 (desde o Linux 2.2)
O número máximo rígido de entradas a serem mantidas no 'cache' ARP. O coletor de lixo sempre
rodará se houver mais que este número de entradas no 'cache'. O padrão é de 1024.
locktime (desde o Linux 2.2)
O número mínimo 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 desconfiguração de
rede). O padrão é de 1 segundo.
mcast_solicit (desde o Linux 2.2)
O número máximo de tentativas para resolver um endereço por multicast/broadcast antes de marcar a
entrada como não alcançável. O padrão é de 3.
proxy_delay (desde o Linux 2.2)
Quando é recebido um pedido ARP de um endereço proxy-ARP conhecido, atrasa até proxy_delay jiffies
antes de responder. Isto é usado para prevenir flooding (enxurrada) na rede em alguns casos. O
padrão é de 0.8 segundos.
proxy_qlen (desde o Linux 2.2)
O número máximo de pacotes que podem ser enfileirados em endereços proxy-ARP. O padrão é de 64.
retrans_time (desde o Linux 2.2)
The number of jiffies to delay before retransmitting a request. Defaults to 1 second. This file
is now obsolete in favor of retrans_time_ms.
retrans_time_ms (desde o Linux 2.6.12)
O número de milissegundos de atraso antes de se retransmitir um pedido. O padrão é de 1000
milissegundos.
ucast_solicit (desde o Linux 2.2)
O número máximo de tentativas de enviar testes de unicast antes de perguntar ao daemon ARP (veja
app_solicit). O padrão é 3.
unres_qlen (desde o Linux 2.2)
O número máximo de pacotes que podem ser enfileirados para cada endereço não resolvido por outras
camadas da rede. O padrão é de 3.
VERSÕES
O struct arpreq mudou no Linux 2.0 para incluir o membro arp_dev e os números 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 (máscara de rede diferente de 0xffffffff) foi eliminado no
Linux 2.2. Ele é substituído pela configuração automática pelo kernel do arp proxy para todos os hosts
alcancáveis em outras interfaces (quando o repasse e o arp proxy estiverem habilitados para a interface).
As interfaces neigh/* não existiam antes do Linux 2.2.
BUGS
Some timer settings are specified in jiffies, which is architecture- and kernel version-dependent; see
time(7).
Não há maneira de sinalizar m retorno positivo a partir do espaço do usuário. Isto significa que
protocolos orientados a conexão implementados no espaço de usuário gerarão um tráfego ARP excessivo,
porque ndisc retestará regularmente o endereço MAC. O mesmo problema se aplica para a implementação do
NFS no kernel.
This man page mashes together functionality that is IPv4-specific with functionality that is shared
between IPv4 and IPv6.
VEJA TAMBÉM
capabilities(7), ip(7), arpd(8)
RFC 826 for a description of ARP. RFC 2461 for a description of IPv6 neighbor discovery and the base
algorithms used. Linux 2.2+ IPv4 ARP uses the IPv6 algorithms when applicable.
TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por Rubens de Jesus Nogueira
<darkseid99@usa.net> e André Luiz Fassone <lonely_wolf@ig.com.br>
Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as
condições de direitos autorais. Nenhuma responsabilidade é aceita.
Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de
discussão de tradutores.
Linux man-pages 6.9.1 2 maio 2024 arp(7)