米葫芦网

RFC1868 - ARP Extension - UNARP

热度:9℃ 发布时间:2024-11-18 03:19:12

Network Working Group G. Malkin
Request For Comments: 1868 Xylogics, Inc.
Category: EXPerimental November 1995
ARP Extension - UNARP
Status of this Memo
This memo defines an Experimental Protocol for the Internet
community. This memo does not specify an Internet standard of any
kind. Discussion and suggestions for improvement are requested.
Distribution of this memo is unlimited.
Abstract
The Address Resolution Protocol allows an IP node to determine the
hardware (datalink) address of a neighboring node on a broadcast
network. The protocol depends on timers to age away old ARP entries.
This document specifies a trivial modification to the ARP mechanism,
not the packet format, which allows a node to announce that it is
leaving the network and that all other nodes should modify their ARP
tables accordingly.
Acknowledgements
Thanks to James Carlson/Xylogics for reviewing this document and
proposing the backwards compatibility mechanism.
1. IntrodUCtion
The primary purpose of the Address Resolution Protocol, as defined in
[1], is to determine a node"s hardware address based on its network
address (protocol address in ARPspeak). The ARP protocol
specifically states that nodes should not periodically advertise
their existence for two reasons: first, this would generate a lot of
network traffic and table maintenance overhead; second, it is highly
unlikely that all nodes will need to communicate to all other nodes.
Since a node does not advertise its existence, neither does it
advertise its imminent departure. This is not a serious problem
since most ARP implementations maintain timers to age away old
entries, and departing nodes seldom depart gracefully in any case.
Over time, an additional use has been found for ARP: Proxy ARP.
While there are those who believe Proxy ARP is an evil thing, it does
serve a purpose; that is, it allows for communication in ways never
considered in the original IP architecture. For example, allows
dial-in hosts to connect to a network without consuming a large
amount of the IP address space (i.e., all of the hosts contain
addresses on the same subnet, even though they are not directly
attached to the physical network associated with that subnet address.
It is this use of Proxy ARP which produces the problem addressed by
this document.
2. The Problem
Consider the following topology:
+--------+
Host A
+--------+

======================================== LAN

+--------+ +--------+
CS1 comm. servers CS2
+--------+ +--------+

+-+ +-+ +-+ +-+
modems
+-+ +-+ +-+ +-+
Assume that all of the modems are on the same rotary; that is, when a
remote host dials in, it may be assigned a modem on either of the
communication servers. Further assume that all of the remote hosts"
IP addresses have the same subnet address as the servers and Host A,
this in order to conserve address space.
To begin, a remote host dials into CS1 and attempts to communicate
with Host A. Host A will assume, based on the subnet mask, that the
remote host is actually attached to the LAN and will issue an ARP
Request to determine its hardware address. Naturally, the remote
host will not hear this request. CS1, knowing this, will respond in
the remote host"s place with its own hardware address. Host A, on
receiving the ARP Reply, will then communicate with the remote host,
transparently through CS1. So far everything is just fine.
Now, the remote host disconnects and, before Host A can age its ARP
cache, reconnects through CS2. Herein lies the problem. Whenever
Host A attempts to send a packet to the remote host, it will send it
to CS1 because it cannot know that its ARP cache entry is invalid.
If, when the remote host disconnects, the server to which it was
attached could inform other nodes on the LAN that the protocol
address/hardware address mapping was no longer valid, the problem
would not occur.
3. The Solution
When a server, as described above, disconnects from a remote host for
which it has responded to a Proxy ARP, it broadcasts an UNARP. An
UNARP is an unsolicited ARP Reply with the following field values:
Hardware Address Space as appropriate
Protocol Address Space 0x800 (IP)
Hardware Address Length 0 (see Backwards Compatibility)
Protocol Address Length 4 (length of an IP address)
Opcode 2 (Reply)
Source Hardware Address Not Included
Source Protocol Address IP address of detaching host
Target Hardware Address Not Included
Target Protocol Address 255.255.255.255 (IP broadcast)
NOTE: this is a 16-byte packet (not including MAC header)
On receiving an UNARP, a node deletes the ARP cache entry associated
with the IP address.
It is not strictly necessary that a server keep state information
about whether or not it has actually sent a Proxy ARP Reply; it would
be sufficient if a server always sends an UNARP when a remote host
disconnects.
Of course, there is no reason why a host which gracefully detaches
from a LAN cannot also send an UNARP for itself. This would be
especially useful if, upon re-attaching, it might have a different
hardware address.
4. Backwards Compatibility
The modifications to support UNARP are trivial, so there is every
expectation that it will be widely supported. Of course, there will
be a period of time during which nodes which support UNARP will
coexist with nodes which do not support UNARP. To prevent
unenlightened nodes from adding spurious ARP cache entries with
hardware addresses of zero, UNARP packets specify a hardware address
length of zero. This should be rejected by nodes which do not
support UNARP. As a consequence of this, the source and target
hardware address fields do not exist in UNARP packets (as previously
described).
It is recommended that implementors include a configuration switch to
disable UNARP in the event that some vendor"s ARP implementation
might take offense at the abbreviated UNARP packet format.
5. Security Considerations
Security issues are not discussed in this memo.
References
[1] Plummer, D., "An Ethernet Address Resolution Protocol", STD 37,
RFC826, MIT, November 1982.
Author"s Address
Gary Scott Malkin
Xylogics, Inc.
53 Third Avenue
Burlington, MA 01803
Phone: (617) 272-8140

网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载