23717fc46a
from Berkeley.
173 lines
6.5 KiB
Groff
173 lines
6.5 KiB
Groff
.\" 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
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.Dd June 16, 2004
|
|
.Dt ARP 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm arp
|
|
.Nd Address Resolution Protocol
|
|
.Sh SYNOPSIS
|
|
.Cd "device ether"
|
|
.Sh 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.
|
|
.Pp
|
|
ARP caches Internet-Ethernet address mappings.
|
|
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,
|
|
the host is considered to be down for a short period (normally 20 seconds),
|
|
allowing an error to be returned to transmission attempts during this
|
|
interval.
|
|
The error is
|
|
.Er EHOSTDOWN
|
|
for a non-responding destination host, and
|
|
.Er EHOSTUNREACH
|
|
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).
|
|
An entry for a host which is not responding is a
|
|
.Dq reject
|
|
route (one with the
|
|
.Li RTF_REJECT
|
|
flag set).
|
|
.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
|
|
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).
|
|
.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
|
|
.Xr arp 8
|
|
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.
|
|
.Sh DIAGNOSTICS
|
|
.Em "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 Ethernet
|
|
address, generally indicating that two hosts are attempting to use the
|
|
same Internet address.
|
|
.Pp
|
|
.Em "arp: ether 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.
|
|
.Pp
|
|
.Em "arp: %d.%d.%d.%d moved from %x:%x:%x:%x:%x:%x to %x:%x:%x:%x:%x:%x" :
|
|
ARP had a cached value for the ethernet address of the referenced 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 indicate a problem with proxy ARP.
|
|
This message can only be issued if the sysctl
|
|
.Va net.link.ether.inet.log_arp_movements
|
|
is set to 1, which is the system's default behaviour.
|
|
.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
|
|
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.
|
|
.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
|
|
.Va net.link.ether.inet.log_arp_wrong_iface
|
|
is set to 1, which is the system's default behaviour.
|
|
.Sh SEE ALSO
|
|
.Xr inet 4 ,
|
|
.Xr route 4 ,
|
|
.Xr arp 8 ,
|
|
.Xr ifconfig 8 ,
|
|
.Xr route 8 ,
|
|
.Xr sysctl 8
|
|
.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
|