Subject: RE: Anycast address

From: "Dave Thaler" <[email-masked]>
Date: Fri, 20 Jul 2001 17:11:35 -0700

Sreeram Vankadari [mailto:[email-masked]] writes:
> Suppose the ipv6 prefix assigned to an interface is 2000::1234:5678/96.

First of all, RFC 2373 mandates that all 2000 addreses (and most others) are required to have 64-bit interface identifiers, so the prefix in question would have to be 2000::/64 (a /96 is illegal).  (Also keep in mind that you can assign many prefixes to the same interface.)

So I'll assume it's a typo and you meant:
"Suppose the IPv6 prefix 2000::/64 is assigned to an interface."

> now 2000::0/128 becomes the anycast address assigned to that interface.
> Suppose if there are multiple routers attached to that ethernet interface,
> and a packet comes with a destination address of 2000::/128 which
> router will respond to that packet.  (2000::/128 is an automatic anycast
> address assigned to all the ipv6 routers attached to that ethernet)

Technically "any" one of them would be legal, but the answer that makes the most sense is "the first one that the packet reaches" (i.e. the one closest to the source).

-Dave

--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [email-masked]
--------------------------------------------------------------------

---

From: Robert Elz <[email-masked]>
Date: Sat, 21 Jul 2001 18:40:58 +0700

Date:        Fri, 20 Jul 2001 17:11:35 -0700
    From:        "Dave Thaler" <[email-masked]>
    Message-ID:  <[email-masked]>

  | First of all, RFC 2373 mandates that all 2000 addreses (and most others)
  | are required to have 64-bit interface identifiers,

Not quite, I think what it mandates is that 64 bit interface identifiers
be used for all nets in that space.

It is perfectly OK to redefine smaller ID spaces if you know what you're
doing (and know that this disables autoconf).   Eg: it is quite common
to use /127 or /128 prefixes on p2p links.

  | so the prefix in question would have to be 2000::/64 (a /96 is illegal).

It makes no difference to the question asked, but I wouldn't say illegal,
just unlikely.

In particular, we do want to make sure that implementations make no
assumptions about prefix length, other than what is strictly required
for correct operation - you need a /64 (or wider) for autoconf, but if
autoconf isn't being used, there should be no limits.

  | > Suppose if there are multiple routers attached to that ethernet interface,
  | > and a packet comes with a destination address of 2000::/128 which
  | > router will respond to that packet.
  | 
  | Technically "any" one of them would be legal, but the answer that makes
  | the most sense is "the first one that the packet reaches" (i.e. the one
  | closest to the source).

If the source is off the net, that is the way it is.   I kind of suspect
though that the question more assumed that the source was on the 2000::/96
(or 2000::/64 ...) ethernet.

In that case the answer is "probably all of them".   And typically the
first response that arrives will be used, and the others will be discarded.

kre

---

From: Robert Elz <[email-masked]>
Date: Sat, 21 Jul 2001 19:31:42 +0700

Date:        Sat, 21 Jul 2001 18:40:58 +0700
    From:        Robert Elz <[email-masked]>
    Message-ID:  <[email-masked]>

  | In that case the answer is "probably all of them".   And typically the
  | first response that arrives will be used, and the others will be discarded.

Actually, I ought to correct, or qualify, that.

What will really happen, is that you'll do ND for for the anycast addr,
there all of the routers will reply to the (multicast) NS packet.   You
will typically pick the first of those (since NA for an Anycast address
is supposed to not have the O bit set).

So, at that point, you'll take the first response.

When you actually send the packet to the anycast address though, you'll
be sending it to a unicast MAC address (from the NA response) so whichever
router responded to the NS quickest will typically be the one which receives
the anycast packet, and hence be the one which responds.

kre