1994-08-05 16:31:05 +00:00
|
|
|
.\" Copyright (c) 1985, 1986, 1988, 1994
|
|
|
|
.\" The Regents of the University of California. All rights reserved.
|
|
|
|
.\"
|
|
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
|
|
.\" modification, are permitted provided that the following conditions
|
|
|
|
.\" are met:
|
|
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
|
|
.\" 4. Neither the name of the University nor the names of its contributors
|
|
|
|
.\" may be used to endorse or promote products derived from this software
|
|
|
|
.\" without specific prior written permission.
|
|
|
|
.\"
|
|
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
|
|
.\" SUCH DAMAGE.
|
|
|
|
.\"
|
|
|
|
.\" @(#)arp4.4 6.5 (Berkeley) 4/18/94
|
1999-08-28 01:35:59 +00:00
|
|
|
.\" $FreeBSD$
|
1994-08-05 16:31:05 +00:00
|
|
|
.\"
|
2005-11-10 11:35:53 +00:00
|
|
|
.Dd November 10, 2005
|
1994-08-05 16:31:05 +00:00
|
|
|
.Dt ARP 4
|
2001-07-10 15:12:08 +00:00
|
|
|
.Os
|
1994-08-05 16:31:05 +00:00
|
|
|
.Sh NAME
|
|
|
|
.Nm arp
|
|
|
|
.Nd Address Resolution Protocol
|
|
|
|
.Sh SYNOPSIS
|
2002-12-26 19:56:29 +00:00
|
|
|
.Cd "device ether"
|
1994-08-05 16:31:05 +00:00
|
|
|
.Sh DESCRIPTION
|
2002-04-05 21:59:13 +00:00
|
|
|
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.
|
1994-08-05 16:31:05 +00:00
|
|
|
.Pp
|
2001-07-15 08:06:20 +00:00
|
|
|
ARP caches Internet-Ethernet address mappings.
|
1994-08-05 16:31:05 +00:00
|
|
|
When an interface 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 transmitted.
|
|
|
|
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,
|
2005-11-10 11:35:53 +00:00
|
|
|
the host is considered to be down allowing an error to be returned to
|
|
|
|
transmission attempts.
|
|
|
|
Further demand for this mapping causes ARP request retransmissions, that
|
|
|
|
are ratelimited to one packet per second.
|
1994-08-05 16:31:05 +00:00
|
|
|
The error is
|
2000-11-22 16:11:48 +00:00
|
|
|
.Er EHOSTDOWN
|
1994-08-05 16:31:05 +00:00
|
|
|
for a non-responding destination host, and
|
2000-11-22 16:11:48 +00:00
|
|
|
.Er EHOSTUNREACH
|
1994-08-05 16:31:05 +00:00
|
|
|
for a non-responding router.
|
|
|
|
.Pp
|
|
|
|
The ARP cache is stored in the system routing table as
|
|
|
|
dynamically-created host routes.
|
|
|
|
The route to a directly-attached Ethernet network is installed as a
|
|
|
|
.Dq cloning
|
|
|
|
route (one with the
|
|
|
|
.Li 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).
|
|
|
|
.Pp
|
|
|
|
ARP entries may be added, deleted or changed with the
|
|
|
|
.Xr arp 8
|
|
|
|
utility.
|
|
|
|
Manually-added entries may be temporary or permanent,
|
|
|
|
and may be
|
|
|
|
.Dq published ,
|
|
|
|
in which case the system will respond to ARP requests for that host
|
|
|
|
as if it were the target of the request.
|
|
|
|
.Pp
|
|
|
|
In the past,
|
|
|
|
ARP was used to negotiate the use of a trailer encapsulation.
|
|
|
|
This is no longer supported.
|
|
|
|
.Pp
|
2004-07-02 23:13:00 +00:00
|
|
|
ARP watches passively for hosts impersonating the local host (i.e., a host
|
1994-08-05 16:31:05 +00:00
|
|
|
which responds to an ARP mapping request for the local host's address).
|
2004-06-16 06:16:29 +00:00
|
|
|
.Pp
|
|
|
|
Proxy ARP is a feature whereby the local host will respond to requests
|
|
|
|
for addresses other than itself, with its own address.
|
|
|
|
Normally, proxy ARP in
|
|
|
|
.Fx
|
|
|
|
is set up on a host-by-host basis using the
|
2004-06-16 07:03:54 +00:00
|
|
|
.Xr arp 8
|
2004-06-16 06:16:29 +00:00
|
|
|
utility, by adding an entry for each host inside a given subnet for
|
|
|
|
which proxying of ARP requests is desired.
|
|
|
|
However, the
|
|
|
|
.Dq "proxy all"
|
|
|
|
feature causes the local host to act as a proxy for
|
|
|
|
.Em all
|
|
|
|
hosts.
|
|
|
|
It may be enabled by setting the
|
|
|
|
.Xr sysctl 8
|
|
|
|
MIB variable
|
|
|
|
.Va net.link.ether.inet.proxyall
|
|
|
|
to 1.
|
2005-11-10 11:35:53 +00:00
|
|
|
.Sh MIB Variables
|
|
|
|
The ARP protocol implements a number of configrable variables in
|
|
|
|
.Va net.link.ether.inet
|
|
|
|
branch
|
|
|
|
of the
|
|
|
|
.Xr sysctl 3
|
|
|
|
MIB.
|
|
|
|
.Bl -tag
|
|
|
|
.It Dv prune_intvl
|
|
|
|
How frequently the ARP cache is cleaned from expired entries.
|
|
|
|
.It Dv max_age
|
|
|
|
How long an ARP entry is hold in cache until it needs to be refreshed.
|
|
|
|
.It Dv maxtries
|
|
|
|
Number of retransmits before host is considered down and error is returned.
|
|
|
|
.It Dv useloopback
|
|
|
|
If an ARP entry is added for local address, force the traffic to go through
|
|
|
|
the loopback interface. If set to 0 the traffic will be enforced to go
|
|
|
|
through the hardware.
|
|
|
|
.It Dv proxyall
|
|
|
|
Enables ARP proxying for all hosts on net.
|
|
|
|
.El
|
1994-08-05 16:31:05 +00:00
|
|
|
.Sh DIAGNOSTICS
|
1996-11-17 23:25:17 +00:00
|
|
|
.Em "arp: %x:%x:%x:%x:%x:%x is using my IP address %d.%d.%d.%d!" :
|
1994-08-05 16:31:05 +00:00
|
|
|
ARP has discovered another host on the local network which responds to
|
|
|
|
mapping requests for its own Internet address with a different Ethernet
|
|
|
|
address, generally indicating that two hosts are attempting to use the
|
|
|
|
same Internet address.
|
1996-11-17 23:25:17 +00:00
|
|
|
.Pp
|
2005-11-10 11:35:53 +00:00
|
|
|
.Em "arp: link address is broadcast for IP address %d.%d.%d.%d!" :
|
1996-11-17 23:25:17 +00:00
|
|
|
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.
|
|
|
|
.Pp
|
2005-11-10 11:35:53 +00:00
|
|
|
.Em "arp: %d.%d.%d.%d moved from %x:%x:%x:%x:%x:%x to %x:%x:%x:%x:%x:%x on %s" :
|
1996-11-17 23:25:17 +00:00
|
|
|
ARP had a cached value for the ethernet address of the referenced host,
|
2003-10-03 01:20:33 +00:00
|
|
|
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 indicate a problem with proxy ARP.
|
2003-10-03 01:18:21 +00:00
|
|
|
This message can only be issued if the sysctl
|
2003-10-03 07:48:56 +00:00
|
|
|
.Va net.link.ether.inet.log_arp_movements
|
2003-10-03 01:18:21 +00:00
|
|
|
is set to 1, which is the system's default behaviour.
|
1996-11-17 23:25:17 +00:00
|
|
|
.Pp
|
|
|
|
.Em "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
|
2003-10-03 01:20:33 +00:00
|
|
|
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.
|
2003-10-03 01:15:40 +00:00
|
|
|
.Pp
|
|
|
|
.Em "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
|
2003-10-03 07:48:56 +00:00
|
|
|
.Va net.link.ether.inet.log_arp_wrong_iface
|
2003-10-03 01:15:40 +00:00
|
|
|
is set to 1, which is the system's default behaviour.
|
1994-08-05 16:31:05 +00:00
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr inet 4 ,
|
|
|
|
.Xr route 4 ,
|
|
|
|
.Xr arp 8 ,
|
|
|
|
.Xr ifconfig 8 ,
|
2003-10-03 01:18:21 +00:00
|
|
|
.Xr route 8 ,
|
|
|
|
.Xr sysctl 8
|
1994-08-05 16:31:05 +00:00
|
|
|
.Rs
|
|
|
|
.%A Plummer, D.
|
|
|
|
.%B "An Ethernet Address Resolution Protocol"
|
|
|
|
.%T RFC826
|
|
|
|
.Re
|
|
|
|
.Rs
|
|
|
|
.%A Leffler, S.J.
|
|
|
|
.%A Karels, M.J.
|
|
|
|
.%B "Trailer Encapsulations
|
|
|
|
.%T RFC893
|
|
|
|
.Re
|