Check out my first novel, midnight's simulacra!
ARP: Difference between revisions
From dankwiki
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
==Linux ARP states== | ==Linux ARP states== | ||
These are encoded in the <tt>ndm_state</tt> bitmask of a RTM_NEWNEIGH/RTM_GETNEIGH [[netlink]] message (valid ndm_flags values include NTF_PROXY for proxy ARP entries and NTF_ROUTER for IPv6 routers). | |||
{|class="wikitable" border="1" | {|class="wikitable" border="1" | ||
!state | !state | ||
Line 11: | Line 12: | ||
|'''noarp''' | |'''noarp''' | ||
|normal expiration, never verified | |normal expiration, never verified | ||
"A device with no destination cache" | |||
|use resets use counter | |use resets use counter | ||
|- | |- | ||
Line 28: | Line 30: | ||
|- | |- | ||
|'''probe''' | |'''probe''' | ||
|need ARP reply for verification | |need ARP reply for verification (reprobing) | ||
|use resets timer and returns to '''reachable''' | |use resets timer and returns to '''reachable''' | ||
timer reissues ARP requests or moves to '''failed''' | timer reissues ARP requests or moves to '''failed''' | ||
Line 38: | Line 40: | ||
|- | |- | ||
|'''failed''' | |'''failed''' | ||
|no response received | |no response received / invalid cache entry | ||
|timer governs reissuing of ARP requests | |timer governs reissuing of ARP requests | ||
use resets timer and moves to '''reachable''' | use resets timer and moves to '''reachable''' | ||
Line 45: | Line 47: | ||
==See Also== | ==See Also== | ||
* Linux's rtnetlink(7) [http://www.kernel.org/doc/man-pages/online/pages/man7/rtnetlink.7.html man page] | |||
* "[http://www.cs.clemson.edu/~westall/853/notes/arpstate.pdf The ARP State Machine]" James Westall's CpSc 853 "[http://www.cs.clemson.edu/~westall/853/ Protocol Implementation]" class notes | * "[http://www.cs.clemson.edu/~westall/853/notes/arpstate.pdf The ARP State Machine]" James Westall's CpSc 853 "[http://www.cs.clemson.edu/~westall/853/ Protocol Implementation]" class notes | ||
* "[http://linux-ip.net/html/ether-arp.html 2.1 Address Resolution Protocol (ARP)]" Martin Brown's "[http://linux-ip.net/html/index.html Guide to IP Layer Network Administration with Linux]" | * "[http://linux-ip.net/html/ether-arp.html 2.1 Address Resolution Protocol (ARP)]" Martin Brown's "[http://linux-ip.net/html/index.html Guide to IP Layer Network Administration with Linux]" |
Revision as of 09:19, 19 July 2011
Linux ARP states
These are encoded in the ndm_state bitmask of a RTM_NEWNEIGH/RTM_GETNEIGH netlink message (valid ndm_flags values include NTF_PROXY for proxy ARP entries and NTF_ROUTER for IPv6 routers).
state | meaning | transitions |
---|---|---|
permanent | never undergoes verification or expiry | none (manually configured) |
noarp | normal expiration, never verified
"A device with no destination cache" |
use resets use counter |
reachable | normal expiration | use resets timer |
stale | still usable, needs verification | use resets timer and returns to reachable
timer changes state to delay |
delay | schedule ARP request, needs verification | use resets timer and returns to reachable
timer changes state to probe, issuing ARP request |
probe | need ARP reply for verification (reprobing) | use resets timer and returns to reachable
timer reissues ARP requests or moves to failed |
incomplete (new entry) | need ARP reply for first use | use resets timer and returns to reachable
timer reissues ARP requests or moves to failed |
failed | no response received / invalid cache entry | timer governs reissuing of ARP requests
use resets timer and moves to reachable |
See Also
- Linux's rtnetlink(7) man page
- "The ARP State Machine" James Westall's CpSc 853 "Protocol Implementation" class notes
- "2.1 Address Resolution Protocol (ARP)" Martin Brown's "Guide to IP Layer Network Administration with Linux"