Skip to main content

IPv4 Address Conflict Detection
draft-cheshire-ipv4-acd-06

Revision differences

Document history

Date Rev. By Action
2012-08-22
06 (System) post-migration administrative database adjustment to the No Objection position for Dan Romascanu
2012-08-22
06 (System) post-migration administrative database adjustment to the Yes position for Harald Alvestrand
2012-08-22
06 (System) post-migration administrative database adjustment to the No Objection position for Russ Housley
2008-02-27
06 Amy Vezza State Changes to RFC Ed Queue from Approved-announcement sent by Amy Vezza
2008-02-22
06 (System) IANA Action state changed to No IC from In Progress
2008-02-22
06 (System) IANA Action state changed to In Progress
2008-02-22
06 Amy Vezza IESG state changed to Approved-announcement sent
2008-02-22
06 Amy Vezza IESG has approved the document
2008-02-22
06 Amy Vezza Closed "Approve" ballot
2008-02-22
06 Amy Vezza State Changes to Approved-announcement to be sent from IESG Evaluation::AD Followup by Amy Vezza
2008-02-22
06 (System) Removed from agenda for telechat - 2008-02-21
2008-02-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Alex Zinin
2008-02-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Bill Fenner
2008-02-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Ned Freed
2008-02-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Steven Bellovin
2008-02-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Bert Wijnen
2008-02-20
06 (System) [Ballot Position Update] New position, Yes, has been recorded for Thomas Narten
2008-02-20
06 (System) [Ballot Position Update] New position, Yes, has been recorded for Allison Mankin
2008-02-20
06 (System) [Ballot Position Update] Position for Randy Bush has been changed to Discuss from No Record
2008-02-20
06 (System) [Ballot Position Update] Position for Harald Alvestrand has been changed to Yes from No Record
2008-02-20
06 (System) [Ballot Position Update] Position for Erik Nordmark has been changed to Discuss from No Record
2008-02-20
06 Russ Housley [Ballot Position Update] Position for Russ Housley has been changed to No Objection from Discuss by Russ Housley
2008-02-20
06 (System) New version available: draft-cheshire-ipv4-acd-06.txt
2008-02-15
06 Amy Vezza
THESE DISCUSSES AND COMMENTS ARE COPIED FROM THE OLD TEXT STYLE BALLOT (IESG circa 2002):

DISCUSS
=======
Randy:

Section 1.2.1 et seq refer to "the …
THESE DISCUSSES AND COMMENTS ARE COPIED FROM THE OLD TEXT STYLE BALLOT (IESG circa 2002):

DISCUSS
=======
Randy:

Section 1.2.1 et seq refer to "the widely-used natural interpretation
of" a particular kind of ARP packet not explictly described in the ARP
specification (NB: I have not verified that this packet isn't
described in the ARP spec, I'm taking the author's word on this point
for the moment). Alarm bells here, there are enough independent ARP
implementations that this is almost certainly a statement of the
author's opinion rather than a testable fact. Does this play well
with, eg, the ARP code in your PDA? The boot ROM in your cable modem?

Section 1.2.3 suggests that broadcasting ARP responses is a good
thing. I have always viewed it as a necessary evil used primarily to
kludge around implementation issues for programs like DHCP servers on
operating systems that lack a mechanism by which the DHCP server can
stuff the ARP cache prior to responding when allocating an address.
Anything that encourages more broadcasts without a damned good reason
makes me nervous. I could be wrong, of course, but paranoia about
broadcast has served me well in the past (I was pretty sure that the
default setting required by RFC 1812 5.3.5.2 was a bad idea long
before Smurf attacks justified my paranoia).

I see no mention of DHCP relays anywhere in the document. Not
particularly relevant to the author's presumed main purpose (conflict
detection for IPv4 link local addresses), but since the document
mentions DHCP extensively it probably ought to mention that DHCP is
sometimes used in ways for which this mechanism won't help much.

I have not figured out yet whether the timing parameters in section
2.1 make this mechanism prone to synchronized broadcast storms. The
use of fixed length intervals after the initial random wait will keep
probes in step if they start out in step, the question is whether the
initial random wait is enough to avoid syncronized probes. To be
fair, if assume that the initial random wait is not sufficient, we may
be saying that we don't trust the random number generator being used
by the machines performing the probes, in which case the usual
solution (add some random jitter each time) may not help. So maybe
this is just a requirement that implementations had damned well better
be able to do the initial random wait properly (which may beg the
question of seed material on deeply embedded devices).

In view of my misgivings about section 2.1, the suggestion of much
shorter fixed timeout intervalss on wireless networks in section 2.2
does not improve my comfort level.

I have a vague memory that the step described in section 2.3
(so-called "gratuitous ARP") was considered somewhat controversial at
one point, but I no longer remember why unless it's just dislike of
the mandatory delay.

Section 2.4 doesn't worry me as much as the earlier sections. The
proposed mechanism for active defense seems like a fairly reasonable
way of handling a situation that is already demonstrably broken.
Note, however, that in pathological cases this mechanism could be used
as a means of triggering broadcast storms (trick a bunch of machines
into using the same address, then broadcast a packet that will make
them all try to defend it at once). I don't think this is a serious
risk, but something about it probably belongs in the security
considerations section.

Section 2.5 is more of the same optimism about broadcast ARP replies.
I've already commented on that, so I won't belabor the point.

Security Considerations section seems anemic. Aside from the specific
minor issue mentioned above, there's the general issue that this is a
mechanism by which an attacker can send packets via an unsecurable
protocol that will provoke a host to respond in predictable ways.
This is always a bit of a concern, and it's more of a concern with
broadcast protocols.

Erik:

Issues with draft-cheshire-ipv4-acd-02.txt

High-order bit: the probing and annoucement part seems like very
useful things to standardize. But the ongoing conflict detection (causing
IP address change when a conflict appears) and broadcast replies looks
more like a useful experiment to me.

Also, the timeouts claim to be related to IEEE 802.1D behavior doesn't
match IEEE 802.1D reality. (See below)


Specfic comments:
The document is written as if it updates RFC 826 and DHCP (RFC 2132) but
it doesn't explicitly say this.

> 3. Rate-limiting in the case of an excessive number of repeated
> conflicts.

Would be helpful to say what is rate limited; the attempt to use
a different address (and not e.g. the rate at which some packet is sent)

> This document standardizes the widely-used natural interpretation of
> an ARP Request where the Target Protocol Address is non-zero but the

While this might be natural, I have no idea whether or not it is widely
used. Wants me want to ask for the survey results of 50 ARP implementations
and how they do this.

> This document standardizes the widely-used natural interpretation of
> an ARP Request where the Sender and Target Protocol Address fields
> contain the same address, namely that it is an assertion without an
> associated question (an "ARP Announcement").

Same general question as above, except that there is another
natural case - that an ARP Reply where the sender and targer
are the same. Given that ARP is widely implemented it would be
useful to understand 1) to what extent implementations do
announcements using requests or replies, and depending on that answer
2) whether the protocol could allow both forms of annoucements i.e.
any packet with equal sender protocol address and target protocol address
would be an announcement.

> "Dynamic Configuration of IPv4 Link-Local Addresses" [v4LL] can
> benefit from this optional capability.

The "can benefit" is odd since it looks like a suggestion to
fix v4LL to do this, when in fact it already does.
It is perhaps better to have some statement up front that this
protocol is a subset of the address conflict detection of v4LL.


> RFC 826 implies that replies to ARP requests are usually delivered
> using unicast, but it is also acceptable to deliver ARP replies using
> broadcast. The "Packet Reception" rules in RFC 826 specify that the
> content of the "ar$spa" field should be processed *before* examining
> the "ar$op" field, so any host that correctly implements the Packet
> Reception algorithm specified in RFC 826 will correctly handle ARP
> replies delivered via link-layer broadcast.

I think there are implementations of RFC 826 which do not follow
the pseudo-code in RFC 826. What do we know about the effect
of broadcast arp replies on them?
For example, I looked at the Solaris ARP code and it treats
a broadcast arp reply as an ARP announcement which, due to the structure
of the implementation, incurs more processing overhead than a ARP
packet which is not considered to be an announcement.
I wouldn't be surprised if there are other surprising behaviors related
to broadcast ARP replies.

> server, etc.) that the proposed address is not acceptable. In
> addition, if during this period the host receives any ARP probe where
> the packet's 'target IP address' is the address being probed for, and
> the packet's 'sender hardware address' is not the hardware address of
> any of the host's interfaces, then the host MUST similarly treat this
> as an address conflict and signal an error to the configuring agent
> as above. This can occur if two (or more) hosts have, for whatever

The above is the only place where multihoming comes into the spec by
mentioning "any of the host's interfaces". I would assume that ACD can
operate independently for each interface even though v4LL has some
extra stuff related to multi-interface nodes.

Section 2.2 on timeouts seems to not work.
The 802.1d standard suggests default timers which result in it
taking about 30 seconds until a switch port passes traffic after
it has been enabled. I've personally observed more like 45 seconds
when my office Ethernet drop has had spanning tree protocol enabled.

But in most cases this isn't needed. When DHCP is used (whether it is
a desktop machine or some portable handheld wireless device) then
no DHCP will happen until the switch starts forwarding packets.
And the link-local case is handled in the v4LL specification.
This leaves manually configured addresses.
If you take into account that IEEE 802.1 is rapidly moving to
obsolete spanning tree protocol in favour of the rapid spanning tree
protocol, I don't see benefit in making the DHCP clients take 30-45
seconds longer to initialize the stack just because that might be
the conservative number for manually configured IP addresses until
RSTP is deployed.
And this calls into question the 4 packets spaced 2 seconds apart -
perhaps 1 or 2 packets are sufficient if you assume that the L2 is
forwarding frames by the time the ACD protocol runs.

> (c) If a host has been configured such that it should not give up its
> address under any circumstances, perhaps because it is an important
> company server with a well-known IP address, then it MAY elect to

company vs. university vs. home server presumably doesn't matter.
s/company//
It isn't "well-known" (as in potentially hard-coded in applications)
that matter. Instead it is the assumption that the address be
temporarely stable because of long running connections and/or it being
in the DNS with a longish DNS TTL, that matters here.

Section 2.5 on broadcast arp replies
has a MAY and goes it to say that they should not be used universally.
I think the MAY refers to MAY implement. In order to be able to
operationally control the use I suspect it needs to be more strict
and e.g. say "MAY be implemented. When implemented, there MUST be a
knob to enable the use of broadcast arp replies, and this knob MUST
default to false" or something similar that gives control on the *use*
of this.

Finally, references should be split between normative and non-normative
per rfc-editor policy.


COMMENT:
========
Scott:
note:
                references not split
2008-02-14
06 Mark Townsley Placed on agenda for telechat - 2008-02-21 by Mark Townsley
2008-02-14
06 Mark Townsley
[Note]: 'Back on the agenda so I can be sure there are no more discusses, and if enough positions have been recorded. The text ballot …
[Note]: 'Back on the agenda so I can be sure there are no more discusses, and if enough positions have been recorded. The text ballot is broken.
This is for version -06 which should arrive in the repository soon. Otherwise, you may find it here: http://files.stuartcheshire.org/draft-cheshire-ipv4-acd-06.txt' added by Mark Townsley
2008-02-14
06 Mark Townsley [Note]: 'This is for version -06 which should arrive in the repository soon. Otherwise, you may find it here: http://files.stuartcheshire.org/draft-cheshire-ipv4-acd-06.txt' added by Mark Townsley
2007-12-21
06 Mark Townsley Status date has been changed to 2008-01-15 from 2002-10-03
2007-12-21
06 Mark Townsley
[Note]: 'Sent email to Erik and Stuart about old DISCUSS positions and, in particular, comments from Erik about Sun''s implementation. Also asked Bernard and Stuart …
[Note]: 'Sent email to Erik and Stuart about old DISCUSS positions and, in particular, comments from Erik about Sun''s implementation. Also asked Bernard and Stuart to follow up on CM Heard''s LC Comment. Awaiting responses.' added by Mark Townsley
2007-12-20
06 Amy Vezza State Changes to IESG Evaluation::AD Followup from IESG Evaluation by Amy Vezza
2007-12-20
06 (System) [Ballot Position Update] Position for Dan Romascanu has been changed to No Objection from Discuss by IESG Secretary
2007-12-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Ross Callon by IESG Secretary
2007-12-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for David Ward by IESG Secretary
2007-12-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Jon Peterson by IESG Secretary
2007-12-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Sam Hartman by IESG Secretary
2007-12-20
06 (System) [Ballot Position Update] New position, No Objection, has been recorded for Ron Bonica by IESG Secretary
2007-12-20
06 Magnus Westerlund [Ballot Position Update] New position, No Objection, has been recorded by Magnus Westerlund
2007-12-20
06 Amy Vezza State Changes to IESG Evaluation from Waiting for AD Go-Ahead by Amy Vezza
2007-12-20
06 Dan Romascanu [Ballot comment]
There are various idnits problems, including the fact that the document lacks a TOC although it is longer than 15 pages.
2007-12-20
06 Russ Housley [Ballot discuss]
I am concerned that the document has not been updated to handle the
  Last Call comments posted at the end of November.
2007-12-20
06 Russ Housley [Ballot Position Update] New position, Discuss, has been recorded by Russ Housley
2007-12-20
06 Dan Romascanu
[Ballot discuss]
I am not sure what rules apply to this document. From the tracker I am pointed not to the current ballot page, but …
[Ballot discuss]
I am not sure what rules apply to this document. From the tracker I am pointed not to the current ballot page, but rather to the older page which dates a few years and a few IESGs back - http://www.ietf.org/IESG/EVALUATIONS/draft-cheshire-ipv4-acd.bal

I see there two DISCUSSes that seem to be unresolved. I am holding this DISCUSS until this procedural question is resolved.

I would also be interested whether the issues raised by Randy Bush in his DISCUSS were answered and solved by the more recent versions of the document, or if they are considered to be non-issues why.
2007-12-20
06 Dan Romascanu [Ballot Position Update] New position, Discuss, has been recorded by Dan Romascanu
2007-12-20
06 Jari Arkko [Ballot Position Update] New position, Yes, has been recorded by Jari Arkko
2007-12-19
06 Tim Polk [Ballot Position Update] New position, No Objection, has been recorded by Tim Polk
2007-12-19
06 Lisa Dusseault [Ballot Position Update] New position, No Objection, has been recorded by Lisa Dusseault
2007-12-19
06 Mark Townsley [Ballot Position Update] New position, Yes, has been recorded for Mark Townsley
2007-12-19
06 Mark Townsley Ballot has been issued by Mark Townsley
2007-12-19
06 Mark Townsley
secdir review


I am reviewing this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG.  …
secdir review


I am reviewing this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG.  These comments were written primarily for the benefit of the
security area directors.  Document editors and WG chairs should treat
these comments just like any other last call comments. Feel free
to forward to any appropriate forum.

The document updates RFC 826 by specifying ways in which
IPv4 addresss conflict detection can be improved.

The document is clear and I can see no new security considerations
that aren't covered that need correcting (though there may
be some, this isn't my area).

The security considerations say that this specification "makes
this existing ARP vulnerability no worse, and in some ways
makes it better" (which I don't doubt), but gives no reference
for the "existing ARP vulnerability." Such a reference would
be useful.

I wondered if some mention of pseduowires [1] might be useful,
but don't know enough to make a sensible suggestion. In principle
one might want some tweaks to the applicablity discussion in
section 1.3.

I also wondered whether there should be some mention of IPsec,
but can't think of anything pressing.

There is a typo on page 3: s/ADC/ACD/

Stephen.

[1] http://www.ietf.org/html.charters/pwe3-charter.html
2007-12-19
06 Mark Townsley
IETF Last Call Comment

Please consider the following as last-call comments on the above
document.

---------- Forwarded message ----------
Date: Thu, 22 Nov 2007 16:24:55 …
IETF Last Call Comment

Please consider the following as last-call comments on the above
document.

---------- Forwarded message ----------
Date: Thu, 22 Nov 2007 16:24:55 -0800 (PST)
From: C. M. Heard
To: ietf@ietf.org
Cc: Spencer Dawkins ,
    Stuart Cheshire ,
    GeneralAreaReviewTeam
Subject: Re: Gen-ART review of draft-cheshire-ipv4-acd-05.txt

On Fri, 16 Nov 2007, Spencer Dawkins wrote:
> >  address of the interface sending the packet.  The 'sender IP address'
> >  field MUST be set to all zeroes, to avoid polluting ARP caches in
> >  other hosts on the same link in the case where the address turns out
> >  to be already in use by another host.  The 'target hardware address'
> >  field is ignored and SHOULD be set to all zeroes.  The 'target IP
> >
> > Spencer: why is this SHOULD, and not MUST? I'm not asking for a change,
> > I'm asking for a clue. I'm suspecting the answer is "some really old
> > implementations may not do this", and that would be fine if you said
> > it - just being clear that the SHOULD isn't a license for new
> > implementations to say "I'm special".

This shouldn't even be a SHOULD because it is not required for
interoperability.  It certainly can't be a MUST, as it conflicts
with a suggestion in the original ARP specificaion (RFC 826).

Here is what RFC 826 has to say about how an ARP implementation sets
the target hardware address in an ARP request that it is about to
broadcast:

| It does not set ar$tha to anything in particular,
| because it is this value that it is trying to determine.  It
| could set ar$tha to the broadcast address for the hardware (all
| ones in the case of the 10Mbit Ethernet) if that makes it
| convenient for some aspect of the implementation. 

In other words, the target hardware address does not matter and can
be set to any value.  I am aware of implementations that follow the
suggestion (which would be a MAY in 2119 parlance) to set ar$tha to
the broadcast address when broadcasting an ARP request.

Here is the guidance from Section 6 or RFC 2119 on the use of
imperatives such as should:

| Imperatives of the type defined in this memo must be used with care
| and sparingly.  In particular, they MUST only be used where it is
| actually required for interoperation or to limit behavior which has
| potential for causing harm (e.g., limiting retransmisssions)  For
| example, they must not be used to try to impose a particular method
| on implementors where the method is not required for
| interoperability.

I do not see how the above SHOULD enhances interoperability or
limits the potential for causing harm.  Insofar as
draft-cheshire-ipv4-acd-05.txt claims not to modify any protocol
rules, its insistence that ar$tha should be set to zero in ARP
request packets certainly looks odd to me.

While I am at it, I also have an issue with the draft's Section 4,
Historical Note.  The first sentence reads:

  A widely-known, but ineffective, duplicate address detection
  technique called "Gratuitous ARP" is found in many deployed systems
  [Ste94]. 

This sentence seems to claim that the intended purpose of
"Gratuitous ARP" was to perform duplicate address detection.  That
was not the case.  Its purpose was to flush stale entries out of ARP
caches when a station's IP address (or Ethernet address) changed.
See, e.g., RFC 2002 and references therein.

Mike Heard
2007-12-19
06 Cullen Jennings [Ballot Position Update] New position, Yes, has been recorded by Cullen Jennings
2007-12-17
06 Lars Eggert [Ballot Position Update] New position, Yes, has been recorded by Lars Eggert
2007-12-07
06 Chris Newman [Ballot Position Update] Position for Chris Newman has been changed to Yes from No Objection by Chris Newman
2007-12-07
06 Chris Newman [Ballot Position Update] New position, No Objection, has been recorded by Chris Newman
2007-12-03
06 Mark Townsley Placed on agenda for telechat - 2007-12-13 by Mark Townsley
2007-11-23
06 (System) State has been changed to Waiting for AD Go-Ahead from In Last Call by system
2007-11-09
06 Samuel Weiler Request for Last Call review by SECDIR Completed. Reviewer: Stephen Farrell.
2007-11-07
06 Amanda Baber IANA Last Call comments:

As described in the IANA Considerations section, we understand this document
to have NO IANA Actions.
2007-10-26
06 Samuel Weiler Request for Last Call review by SECDIR is assigned to Stephen Farrell
2007-10-26
06 Samuel Weiler Request for Last Call review by SECDIR is assigned to Stephen Farrell
2007-10-26
06 Amy Vezza Last call sent
2007-10-26
06 Amy Vezza State Changes to In Last Call from Last Call Requested by Amy Vezza
2007-10-25
06 Mark Townsley Last Call was requested by Mark Townsley
2007-10-25
06 Mark Townsley State Changes to Last Call Requested from Publication Requested by Mark Townsley
2007-10-25
06 (System) Ballot writeup text was added
2007-10-25
06 (System) Last call text was added
2007-10-25
06 (System) Ballot approval text was added
2007-09-20
06 Mark Townsley State Changes to Publication Requested from AD is watching by Mark Townsley
2007-09-20
06 Mark Townsley [Note]: '-05 includes changes based on int-area review.' added by Mark Townsley
2007-09-20
06 Mark Townsley Responsible AD has been changed to Mark Townsley from Thomas Narten
2007-06-27
06 (System) State Changes to AD is watching from Dead by system
2007-06-25
05 (System) New version available: draft-cheshire-ipv4-acd-05.txt
2007-05-10
06 (System) State Changes to Dead from AD is watching by system
2007-05-10
06 (System) Document has expired
2006-11-07
06 (System) State Changes to AD is watching from Dead by system
2006-11-06
06 (System) This document has been resurrected.
2006-10-26
06 Mark Townsley I-D Resurrection was requested by Mark Townsley
2006-02-02
06 (System) Document has expired
2005-07-14
04 (System) New version available: draft-cheshire-ipv4-acd-04.txt
2005-05-26
06 (System) State Changes to Dead from AD is watching by IESG Secretary
2004-02-11
06 Thomas Narten State Changes to AD is watching from IESG Evaluation::Revised ID Needed by Thomas Narten
2004-02-11
06 Thomas Narten
[Note]: 'This ID has been in in need of a revision for more than a year now. Given the length of time, a new IETF …
[Note]: 'This ID has been in in need of a revision for more than a year now. Given the length of time, a new IETF LC would be appropriate prior to having the IESG consider the document once a revision appears. I''d like to see this document go forward; it contains good stuff, and we are *so* close to being done.' added by Thomas Narten
2003-06-23
06 Thomas Narten Met with Stuart for 90 minutes in ATL, he knows what edits are needed, and we're waiting for a revised document.
2003-06-18
06 Harald Alvestrand [Ballot discuss]
I have read the document.
2003-06-16
06 Erik Nordmark
[Ballot discuss]
Issues with draft-cheshire-ipv4-acd-02.txt

High-order bit: the probing and annoucement part seems like very
useful things to standardize. But the ongoing conflict detection (causing …
[Ballot discuss]
Issues with draft-cheshire-ipv4-acd-02.txt

High-order bit: the probing and annoucement part seems like very
useful things to standardize. But the ongoing conflict detection (causing
IP address change when a conflict appears) and broadcast replies looks
more like a useful experiment to me.

Also, the timeouts claim to be related to IEEE 802.1D behavior doesn't
match IEEE 802.1D reality. (See below)


Specfic comments:
The document is written as if it updates RFC 826 and DHCP (RFC 2132) but
it doesn't explicitly say this.

> 3. Rate-limiting in the case of an excessive number of repeated
> conflicts.

Would be helpful to say what is rate limited; the attempt to use
a different address (and not e.g. the rate at which some packet is sent)

> This document standardizes the widely-used natural interpretation of
> an ARP Request where the Target Protocol Address is non-zero but the

While this might be natural, I have no idea whether or not it is widely
used. Wants me want to ask for the survey results of 50 ARP implementations
and how they do this.

> This document standardizes the widely-used natural interpretation of
> an ARP Request where the Sender and Target Protocol Address fields
> contain the same address, namely that it is an assertion without an
> associated question (an "ARP Announcement").

Same general question as above, except that there is another
natural case - that an ARP Reply where the sender and targer
are the same. Given that ARP is widely implemented it would be
useful to understand 1) to what extent implementations do
announcements using requests or replies, and depending on that answer
2) whether the protocol could allow both forms of annoucements i.e.
any packet with equal sender protocol address and target protocol address
would be an announcement.

> "Dynamic Configuration of IPv4 Link-Local Addresses" [v4LL] can
> benefit from this optional capability.

The "can benefit" is odd since it looks like a suggestion to
fix v4LL to do this, when in fact it already does.
It is perhaps better to have some statement up front that this
protocol is a subset of the address conflict detection of v4LL.


> RFC 826 implies that replies to ARP requests are usually delivered
> using unicast, but it is also acceptable to deliver ARP replies using
> broadcast. The "Packet Reception" rules in RFC 826 specify that the
> content of the "ar$spa" field should be processed *before* examining
> the "ar$op" field, so any host that correctly implements the Packet
> Reception algorithm specified in RFC 826 will correctly handle ARP
> replies delivered via link-layer broadcast.

I think there are implementations of RFC 826 which do not follow
the pseudo-code in RFC 826. What do we know about the effect
of broadcast arp replies on them?
For example, I looked at the Solaris ARP code and it treats
a broadcast arp reply as an ARP announcement which, due to the structure
of the implementation, incurs more processing overhead than a ARP
packet which is not considered to be an announcement.
I wouldn't be surprised if there are other surprising behaviors related
to broadcast ARP replies.

> server, etc.) that the proposed address is not acceptable. In
> addition, if during this period the host receives any ARP probe where
> the packet's 'target IP address' is the address being probed for, and
> the packet's 'sender hardware address' is not the hardware address of
> any of the host's interfaces, then the host MUST similarly treat this
> as an address conflict and signal an error to the configuring agent
> as above. This can occur if two (or more) hosts have, for whatever

The above is the only place where multihoming comes into the spec by
mentioning "any of the host's interfaces". I would assume that ACD can
operate independently for each interface even though v4LL has some
extra stuff related to multi-interface nodes.

Section 2.2 on timeouts seems to not work.
The 802.1d standard suggests default timers which result in it
taking about 30 seconds until a switch port passes traffic after
it has been enabled. I've personally observed more like 45 seconds
when my office Ethernet drop has had spanning tree protocol enabled.

But in most cases this isn't needed. When DHCP is used (whether it is
a desktop machine or some portable handheld wireless device) then
no DHCP will happen until the switch starts forwarding packets.
And the link-local case is handled in the v4LL specification.
This leaves manually configured addresses.
If you take into account that IEEE 802.1 is rapidly moving to
obsolete spanning tree protocol in favour of the rapid spanning tree
protocol, I don't see benefit in making the DHCP clients take 30-45
seconds longer to initialize the stack just because that might be
the conservative number for manually configured IP addresses until
RSTP is deployed.
And this calls into question the 4 packets spaced 2 seconds apart -
perhaps 1 or 2 packets are sufficient if you assume that the L2 is
forwarding frames by the time the ACD protocol runs.

> (c) If a host has been configured such that it should not give up its
> address under any circumstances, perhaps because it is an important
> company server with a well-known IP address, then it MAY elect to

company vs. university vs. home server presumably doesn't matter.
s/company//
It isn't "well-known" (as in potentially hard-coded in applications)
that matter. Instead it is the assumption that the address be
temporarely stable because of long running connections and/or it being
in the DNS with a longish DNS TTL, that matters here.

Section 2.5 on broadcast arp replies
has a MAY and goes it to say that they should not be used universally.
I think the MAY refers to MAY implement. In order to be able to
operationally control the use I suspect it needs to be more strict
and e.g. say "MAY be implemented. When implemented, there MUST be a
knob to enable the use of broadcast arp replies, and this knob MUST
default to false" or something similar that gives control on the *use*
of this.

Finally, references should be split between normative and non-normative
per rfc-editor policy.
2003-06-16
06 Randy Bush
[Ballot discuss]
Section 1.2.1 et seq refer to "the widely-used natural interpretation
of" a particular kind of ARP packet not explictly described in the ARP …
[Ballot discuss]
Section 1.2.1 et seq refer to "the widely-used natural interpretation
of" a particular kind of ARP packet not explictly described in the ARP
specification (NB: I have not verified that this packet isn't
described in the ARP spec, I'm taking the author's word on this point
for the moment). Alarm bells here, there are enough independent ARP
implementations that this is almost certainly a statement of the
author's opinion rather than a testable fact. Does this play well
with, eg, the ARP code in your PDA? The boot ROM in your cable modem?

Section 1.2.3 suggests that broadcasting ARP responses is a good
thing. I have always viewed it as a necessary evil used primarily to
kludge around implementation issues for programs like DHCP servers on
operating systems that lack a mechanism by which the DHCP server can
stuff the ARP cache prior to responding when allocating an address.
Anything that encourages more broadcasts without a damned good reason
makes me nervous. I could be wrong, of course, but paranoia about
broadcast has served me well in the past (I was pretty sure that the
default setting required by RFC 1812 5.3.5.2 was a bad idea long
before Smurf attacks justified my paranoia).

I see no mention of DHCP relays anywhere in the document. Not
particularly relevant to the author's presumed main purpose (conflict
detection for IPv4 link local addresses), but since the document
mentions DHCP extensively it probably ought to mention that DHCP is
sometimes used in ways for which this mechanism won't help much.

I have not figured out yet whether the timing parameters in section
2.1 make this mechanism prone to synchronized broadcast storms. The
use of fixed length intervals after the initial random wait will keep
probes in step if they start out in step, the question is whether the
initial random wait is enough to avoid syncronized probes. To be
fair, if assume that the initial random wait is not sufficient, we may
be saying that we don't trust the random number generator being used
by the machines performing the probes, in which case the usual
solution (add some random jitter each time) may not help. So maybe
this is just a requirement that implementations had damned well better
be able to do the initial random wait properly (which may beg the
question of seed material on deeply embedded devices).

In view of my misgivings about section 2.1, the suggestion of much
shorter fixed timeout intervalss on wireless networks in section 2.2
does not improve my comfort level.

I have a vague memory that the step described in section 2.3
(so-called "gratuitous ARP") was considered somewhat controversial at
one point, but I no longer remember why unless it's just dislike of
the mandatory delay.

Section 2.4 doesn't worry me as much as the earlier sections. The
proposed mechanism for active defense seems like a fairly reasonable
way of handling a situation that is already demonstrably broken.
Note, however, that in pathological cases this mechanism could be used
as a means of triggering broadcast storms (trick a bunch of machines
into using the same address, then broadcast a packet that will make
them all try to defend it at once). I don't think this is a serious
risk, but something about it probably belongs in the security
considerations section.

Section 2.5 is more of the same optimism about broadcast ARP replies.
I've already commented on that, so I won't belabor the point.

Security Considerations section seems anemic. Aside from the specific
minor issue mentioned above, there's the general issue that this is a
mechanism by which an attacker can send packets via an unsecurable
protocol that will provoke a host to respond in predictable ways.
This is always a bit of a concern, and it's more of a concern with
broadcast protocols.
2003-06-16
06 Randy Bush Created "Approve" ballot
2002-12-11
03 (System) New version available: draft-cheshire-ipv4-acd-03.txt
2002-11-06
06 Thomas Narten State Changes to IESG Evaluation  :: Revised ID Needed from IESG Evaluation by Narten, Thomas
2002-10-10
06 Stephen Coya State Changes to IESG Evaluation from Wait for Writeup by scoya
2002-10-07
06 Stephen Coya State Changes to Wait for Writeup  -- 0 from In Last Call by scoya
2002-09-19
06 Stephen Coya responsible has been changed to Thomas from IETF Secretary
2002-09-05
06 Jacqueline Hargest State Changes to Last Call Issued from Last Call Requested by jhargest
2002-09-05
06 Jacqueline Hargest Due date has been changed to 2002-10-3 from
by jhargest
2002-09-05
06 Jacqueline Hargest responsible has been changed to IETF Secretary from narten
2002-09-05
06 Jacqueline Hargest State Changes to Last Call Requested from New Version Needed (WG/Author) by jhargest
2002-08-28
02 (System) New version available: draft-cheshire-ipv4-acd-02.txt
2002-07-30
06 Thomas Narten
State Changes to New Version Needed (WG/Author)                    from Pre AD Evaluation            …
State Changes to New Version Needed (WG/Author)                    from Pre AD Evaluation                                by narten
2002-04-26
06 (System) Area acronymn has been changed to int from 0
2002-04-25
06 Stephen Coya Draft Added by Steve Coya
2002-04-09
01 (System) New version available: draft-cheshire-ipv4-acd-01.txt
2001-11-12
00 (System) New version available: draft-cheshire-ipv4-acd-00.txt