arp(4)
NAME
arp - Address Resolution Protocol
SYNOPSIS
device ether
DESCRIPTION
- The Address Resolution Protocol (ARP) is used to dynamically
- map between Protocol Addresses (such as IP addresses) and Local Network
- Addresses (such as Ethernet addresses). This implementation maps IP
- addresses to Ethernet, ARCnet, or Token Ring addresses. It is used by
- all the Ethernet interface drivers.
- ARP caches Internet-Ethernet address mappings. When an in
- terface requests a mapping for an address not in the cache, ARP
- queues the message which requires the mapping and broadcasts a message on
- the associated network requesting the address mapping. If a response
- is provided, the new mapping is cached and any pending message is trans
- mitted. ARP will queue at most one packet while waiting for a response
- to a mapping request; only the most recently ``transmitted'' packet is
- kept. If the target host does not respond after several requests, the
- host is considered to be down allowing an error to be returned to trans
- mission attempts. Further demand for this mapping causes ARP re
- quest retransmissions, that are ratelimited to one packet per second. The
- error is EHOSTDOWN for a non-responding destination host, and EHOS
- TUNREACH for a non-responding router.
- The ARP cache is stored in the system routing table as dy
- namically-created host routes. The route to a directly-attached Ethernet
- network is installed as a ``cloning'' route (one with the RTF_CLONING
- flag set), causing routes to individual hosts on that network to be
- created on demand. These routes time out periodically (normally 20
- minutes after validated; entries are not validated when not in use).
- ARP entries may be added, deleted or changed with the arp(8)
- utility. Manually-added entries may be temporary or permanent, and
- may be ``published'', in which case the system will respond to ARP
- requests for that host as if it were the target of the request.
- In the past, ARP was used to negotiate the use of a trailer
- encapsulation. This is no longer supported.
- ARP watches passively for hosts impersonating the local host
- (i.e., a host which responds to an ARP mapping request for the local
- host's address).
- Proxy ARP is a feature whereby the local host will respond
- to requests for addresses other than itself, with its own address. Nor
- mally, proxy ARP in FreeBSD is set up on a host-by-host basis using the
- arp(8) utility, by adding an entry for each host inside a given subnet
- for which proxying of ARP requests is desired. However, the ``proxy
- all'' feature causes the local host to act as a proxy for all hosts reach
- able through some other network interface, different from the one the re
- quest came in from. It may be enabled by setting the sysctl(8) MIB vari
- able net.link.ether.inet.proxyall to 1.
MIB Variables
- The ARP protocol implements a number of configrable vari
- ables in net.link.ether.inet branch of the sysctl(3) MIB.
- prune_intvl How frequently the ARP cache is cleaned from
- expired
- entries.
- max_age How long an ARP entry is held in the cache un
- til it needs
- to be refreshed.
- maxtries Number of retransmits before host is consid
- ered down and
- error is returned.
- useloopback If an ARP entry is added for local address,
- force the traf
- fic to go through the loopback interface.
- proxyall Enables ARP proxying for all hosts on net.
DIAGNOSTICS
- arp: %x:%x:%x:%x:%x:%x is using my IP address %d.%d.%d.%d!:
- ARP has discovered another host on the local network which responds to
- mapping requests for its own Internet address with a different Eth
- ernet address, generally indicating that two hosts are attempting to use
- the same Internet address.
- arp: link address is broadcast for IP address %d.%d.%d.%d!:
- ARP requested information for a host, and received an answer indicating
- that the host's ethernet address is the ethernet broadcast address. This
- indicates a misconfigured or broken device.
- arp: %d.%d.%d.%d moved from %x:%x:%x:%x:%x:%x to
- %x:%x:%x:%x:%x:%x on %s: ARP had a cached value for the ethernet address of the ref
- erenced host, but received a reply indicating that the host is at a new
- address. This can happen normally when host hardware addresses change, or
- when a mobile node arrives or leaves the local subnet. It can also indi
- cate a problem with proxy ARP. This message can only be issued if the
- sysctl net.link.ether.inet.log_arp_movements is set to 1, which is
- the system's default behaviour.
- arpresolve: can't allocate llinfo for %d.%d.%d.%d: The route
- for the referenced host points to a device upon which ARP is required,
- but ARP was unable to allocate a routing table entry in which to store
- the host's MAC address. This usually points to a misconfigured routing
- table. It can also occur if the kernel cannot allocate memory.
- arp: %d.%d.%d.%d is on if0 but got reply from
- %x:%x:%x:%x:%x:%x on if1: Physical connections exist to the same logical IP network on
- both if0 and if1. It can also occur if an entry already exists in the
- ARP cache for the IP address above, and the cable has been disconnected
- from if0, then reconnected to if1. This message can only be issued if the
- sysctl net.link.ether.inet.log_arp_wrong_iface is set to 1, which
- is the system's default behaviour.
- arp: %x:%x:%x:%x:%x:%x attempts to modify permanent entry
- for %d.%d.%d.%d on %s: ARP has received an ARP reply that attempts to over
- write a permanent antry in the local ARP table. This error will be only
- logged, if the sysctl net.link.ether.inet.log_arp_permanent_modify is
- set to 1, which is the system's default behaviour.
SEE ALSO
inet(4), route(4), arp(8), ifconfig(8), route(8), sysctl(8)
- Plummer, D., "RFC826", An Ethernet Address Resolution
- Protocol.
- Leffler, S.J. and Karels, M.J., "RFC893", Trailer
- Encapsulations.
- BSD December 18, 2005