diff options
Diffstat (limited to 'man7/arp.7')
-rw-r--r-- | man7/arp.7 | 306 |
1 files changed, 0 insertions, 306 deletions
diff --git a/man7/arp.7 b/man7/arp.7 deleted file mode 100644 index 9de545c..0000000 --- a/man7/arp.7 +++ /dev/null @@ -1,306 +0,0 @@ -'\" t -.\" SPDX-License-Identifier: Linux-man-pages-1-para -.\" -.\" This man page is Copyright (C) 1999 Matthew Wilcox <willy@bofh.ai>. -.\" -.\" Modified June 1999 Andi Kleen -.\" $Id: arp.7,v 1.10 2000/04/27 19:31:38 ak Exp $ -.\" -.TH arp 7 2023-10-31 "Linux man-pages 6.7" -.SH NAME -arp \- Linux ARP kernel module. -.SH DESCRIPTION -This kernel protocol module implements the Address Resolution -Protocol defined in RFC\ 826. -It is used to convert between Layer2 hardware addresses -and IPv4 protocol addresses on directly connected networks. -The user normally doesn't interact directly with this module except to -configure it; -instead it provides a service for other protocols in the kernel. -.P -A user process can receive ARP packets by using -.BR packet (7) -sockets. -There is also a mechanism for managing the ARP cache -in user-space by using -.BR netlink (7) -sockets. -The ARP table can also be controlled via -.BR ioctl (2) -on any -.B AF_INET -socket. -.P -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 -.I /proc -interfaces described below. -.P -When there is no positive feedback for an existing mapping after some -time (see the -.I /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 -.B MSG_CONFIRM -flag to -.BR sendmsg (2). -When there is no forward progress, ARP tries to reprobe. -It first tries to ask a local arp daemon -.B app_solicit -times for an updated MAC address. -If that fails and an old MAC address is known, a unicast probe is sent -.B 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. -.P -Linux will automatically add a nonpermanent proxy arp entry when it -receives a request for an address it forwards to and proxy arp is -enabled on the receiving interface. -When there is a reject route for the target, no proxy arp entry is added. -.SS Ioctls -Three ioctls are available on all -.B AF_INET -sockets. -They take a pointer to a -.I struct arpreq -as their argument. -.P -.in +4n -.EX -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]; -}; -.EE -.in -.P -.BR SIOCSARP ", " SIOCDARP " and " SIOCGARP -respectively set, delete, and get an ARP mapping. -Setting and deleting ARP maps are privileged operations and may -be performed only by a process with the -.B CAP_NET_ADMIN -capability or an effective UID of 0. -.P -.I arp_pa -must be an -.B AF_INET -address and -.I arp_ha -must have the same type as the device which is specified in -.IR arp_dev . -.I arp_dev -is a zero-terminated string which names a device. -.RS -.TS -tab(:) allbox; -c s -l l. -\fIarp_flags\fR -flag:meaning -ATF_COM:Lookup complete -ATF_PERM:Permanent entry -ATF_PUBL:Publish entry -ATF_USETRAILERS:Trailers requested -ATF_NETMASK:Use a netmask -ATF_DONTPUB:Don't answer -.TE -.RE -.P -If the -.B ATF_NETMASK -flag is set, then -.I arp_netmask -should be valid. -Linux 2.2 does not support proxy network ARP entries, so this -should be set to 0xffffffff, or 0 to remove an existing proxy arp entry. -.B ATF_USETRAILERS -is obsolete and should not be used. -.SS /proc interfaces -ARP supports a range of -.I /proc -interfaces to configure parameters on a global or per-interface basis. -The interfaces can be accessed by reading or writing the -.I /proc/sys/net/ipv4/neigh/*/* -files. -Each interface in the system has its own directory in -.IR /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. -.TP -.IR anycast_delay " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The maximum number of jiffies to delay before replying to a -IPv6 neighbor solicitation message. -Anycast support is not yet implemented. -Defaults to 1 second. -.TP -.IR app_solicit " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The maximum number of probes to send to the user space ARP daemon via -netlink before dropping back to multicast probes (see -.IR mcast_solicit ). -Defaults to 0. -.TP -.IR base_reachable_time " (since Linux 2.2)" -.\" Precisely: 2.1.79 -Once a neighbor has been found, the entry is considered to be valid -for at least a random value between -.IR 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 -.IR base_reachable_time_ms . -.TP -.IR base_reachable_time_ms " (since Linux 2.6.12)" -As for -.IR base_reachable_time , -but measures time in milliseconds. -Defaults to 30000 milliseconds. -.TP -.IR delay_first_probe_time " (since Linux 2.2)" -.\" Precisely: 2.1.79 -Delay before first probe after it has been decided that a neighbor -is stale. -Defaults to 5 seconds. -.TP -.IR gc_interval " (since Linux 2.2)" -.\" Precisely: 2.1.79 -How frequently the garbage collector for neighbor entries -should attempt to run. -Defaults to 30 seconds. -.TP -.IR gc_stale_time " (since Linux 2.2)" -.\" Precisely: 2.1.79 -Determines how often to check for stale neighbor entries. -When a neighbor entry is considered stale, it is resolved again before -sending data to it. -Defaults to 60 seconds. -.TP -.IR gc_thresh1 " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The minimum number of entries to keep in the ARP cache. -The garbage collector will not run if there are fewer than -this number of entries in the cache. -Defaults to 128. -.TP -.IR gc_thresh2 " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The soft maximum number of entries to keep in the ARP cache. -The garbage collector will allow the number of entries to exceed -this for 5 seconds before collection will be performed. -Defaults to 512. -.TP -.IR gc_thresh3 " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The hard maximum number of entries to keep in the ARP cache. -The garbage collector will always run if there are more than -this number of entries in the cache. -Defaults to 1024. -.TP -.IR locktime " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The minimum number of jiffies to keep an ARP entry in the cache. -This prevents ARP cache thrashing if there is more than one potential -mapping (generally due to network misconfiguration). -Defaults to 1 second. -.TP -.IR mcast_solicit " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The maximum number of attempts to resolve an address by -multicast/broadcast before marking the entry as unreachable. -Defaults to 3. -.TP -.IR proxy_delay " (since Linux 2.2)" -.\" Precisely: 2.1.79 -When an ARP request for a known proxy-ARP address is received, delay up to -.I proxy_delay -jiffies before replying. -This is used to prevent network flooding in some cases. -Defaults to 0.8 seconds. -.TP -.IR proxy_qlen " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The maximum number of packets which may be queued to proxy-ARP addresses. -Defaults to 64. -.TP -.IR retrans_time " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The number of jiffies to delay before retransmitting a request. -Defaults to 1 second. -This file is now obsolete in favor of -.IR retrans_time_ms . -.TP -.IR retrans_time_ms " (since Linux 2.6.12)" -The number of milliseconds to delay before retransmitting a request. -Defaults to 1000 milliseconds. -.TP -.IR ucast_solicit " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The maximum number of attempts to send unicast probes before asking -the ARP daemon (see -.IR app_solicit ). -Defaults to 3. -.TP -.IR unres_qlen " (since Linux 2.2)" -.\" Precisely: 2.1.79 -The maximum number of packets which may be queued for each unresolved -address by other network layers. -Defaults to 3. -.SH VERSIONS -The -.I struct arpreq -changed in Linux 2.0 to include the -.I arp_dev -member and the ioctl numbers changed at the same time. -Support for the old ioctls was dropped in Linux 2.2. -.P -Support for proxy arp entries for networks (netmask not equal 0xffffffff) -was dropped in Linux 2.2. -It is replaced by automatic proxy arp setup by -the kernel for all reachable hosts on other interfaces (when -forwarding and proxy arp is enabled for the interface). -.P -The -.I neigh/* -interfaces did not exist before Linux 2.2. -.SH BUGS -Some timer settings are specified in jiffies, which is architecture- -and kernel version-dependent; see -.BR time (7). -.P -There is no way to signal positive feedback from user space. -This means connection-oriented protocols implemented in user space -will generate excessive ARP traffic, because ndisc will regularly -reprobe the MAC address. -The same problem applies for some kernel protocols (e.g., NFS over UDP). -.P -This man page mashes together functionality that is IPv4-specific -with functionality that is shared between IPv4 and IPv6. -.SH SEE ALSO -.BR capabilities (7), -.BR ip (7), -.BR arpd (8) -.P -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. |