115 lines
5.1 KiB
HTML
115 lines
5.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
|
<!--Converted with LaTeX2HTML 96.1-c (Feb 29, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
|
|
<HTML>
|
|
<HEAD>
|
|
<TITLE>Checking the ARP Tables</TITLE>
|
|
</HEAD>
|
|
<BODY LANG="EN">
|
|
<A HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <BR>
|
|
<B> Next:</B> <A HREF="node79.html">The Future</A>
|
|
<B>Up:</B> <A HREF="node58.html">Configuring TCP/IP Networking</A>
|
|
<B> Previous:</B> <A HREF="node77.html">Displaying Connections</A>
|
|
<BR> <P>
|
|
<H1><A NAME="SECTION0071000000">Checking the ARP Tables</A></H1>
|
|
On some occasions, it is useful to view or even alter the contents of
|
|
the kernel's ARP tables, for example when you suspect a duplicate
|
|
Internet address is the cause for some intermittent network problem.
|
|
The arp tool was made for things like these. Its command line
|
|
options are
|
|
<pre>
|
|
arp [-v] [-t hwtype] -a [hostname]
|
|
arp [-v] [-t hwtype] -s hostname hwaddr
|
|
arp [-v] -d hostname [hostname...]
|
|
|
|
</pre>
|
|
All hostname arguments may be either symbolic host names or
|
|
IP-addresses in dotted quad notation.
|
|
<P>
|
|
The first invocation displays the ARP entry for the IP-address or host
|
|
specified, or all hosts known if no hostname is given. For example,
|
|
invoking arp on vlager may yield
|
|
<pre>
|
|
# arp -a
|
|
IP address HW type HW address
|
|
191.72.1.3 10Mbps Ethernet 00:00:C0:5A:42:C1
|
|
191.72.1.2 10Mbps Ethernet 00:00:C0:90:B3:42
|
|
191.72.2.4 10Mbps Ethernet 00:00:C0:04:69:AA
|
|
|
|
</pre>
|
|
which shows the Ethernet addresses of vlager, vstout and
|
|
vale.
|
|
<P>
|
|
Using the -t option you can limit the display to the hardware
|
|
type specified. This may be ether, ax25, or
|
|
pronet, standing for 10Mbps Ethernet, AMPR-AX.25, and IEEE-802.5
|
|
token ring equipment, respectively.
|
|
<P>
|
|
The -s option is used to permanently add hostname's
|
|
Ethernet address to the ARP tables. The hwaddr argument specifies
|
|
the hardware address, which is by default expected to be an Ethernet
|
|
address, specified as six hexadecimal bytes separated by colons. You
|
|
may also set the hardware address for other types of hardware, too,
|
|
using the -t option.
|
|
<P>
|
|
One problem which may require you to manually add an IP-address to the
|
|
ARP table is when for some reasons ARP queries for the remote host fail,
|
|
for instance when its ARP driver is buggy or there is another host in
|
|
the network that erroneously identifies itself with that host's
|
|
IP-address. Hard-wiring IP-addresses in the ARP table is also a (very
|
|
drastic) measure to protect yourself from hosts on your Ethernet that
|
|
pose as someone else.
|
|
<P>
|
|
Invoking arp using the -d switch deletes all ARP entries
|
|
relating to the given host. This may be used to force the interface to
|
|
re-attempt to obtain the Ethernet address for the IP-address in question.
|
|
This is useful when a misconfigured system has broadcast wrong ARP
|
|
information (of course, you have to reconfigure the broken host before).
|
|
<p>
|
|
The -s option may also be used to implement <em>proxy</em> ARP.
|
|
This is a special technique where a host, say gate, acts as a
|
|
gateway to another host named fnord, by pretending that both
|
|
addresses refer to the same host, namely gate. It does so by
|
|
publishing an ARP entry for fnord that points to its own Ethernet
|
|
interface. Now when a host sends out an ARP query for fnord,
|
|
gate will return a reply containing its own Ethernet address. The
|
|
querying host will then send all datagrams to gate, which
|
|
dutyfully forwards them to fnord.
|
|
<P>
|
|
These contortions may be necessary, for instance, when you want to
|
|
access fnord from a DOS machine with a broken TCP implementation
|
|
that doesn't understand routing too well. When you use proxy ARP, it will
|
|
appear to the DOS machine as if fnord was on the local subnet,
|
|
so it doesn't have to know about how to route through a gateway.
|
|
<P>
|
|
Another very useful application of proxy ARP is when one of your hosts
|
|
acts as a gateway to some other host only temporarily, for instance
|
|
through a dial-up link. In a previous example, we already encountered
|
|
the laptop vlite which was connected to vlager through a
|
|
PLIP link only from time to time. Of course, this will work only if the
|
|
address of the host you want to provide proxy ARP for is on the same
|
|
IP subnet as your gateway. For instance, vstout could proxy ARP
|
|
for any host on the Brewery subnet (191.72.1.0), but never for a
|
|
host on the Winery subnet (191.72.2.0).
|
|
<P>
|
|
The proper invocation to provide proxy ARP for fnord is given
|
|
below; of course, the Ethernet address given must be that of gate.
|
|
<pre>
|
|
# arp -s fnord 00:00:c0:a1:42:e0 pub
|
|
|
|
</pre>
|
|
The proxy ARP entry may be removed again by invoking:
|
|
<pre>
|
|
# arp -d fnord
|
|
|
|
</pre>
|
|
<HR><A HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif"></A> <BR>
|
|
<B> Next:</B> <A HREF="node79.html">The Future</A>
|
|
<B>Up:</B> <A HREF="node58.html">Configuring TCP/IP Networking</A>
|
|
<B> Previous:</B> <A HREF="node77.html">Displaying Connections</A>
|
|
<P><ADDRESS>
|
|
<I>Andrew Anderson <BR>
|
|
Thu Mar 7 23:22:06 EST 1996</I>
|
|
</ADDRESS>
|
|
</BODY>
|
|
</HTML>
|