Subject: default router selection based on network topology

From: JINMEI Tatuya / 神明達哉<[email-masked]>
Date: Sat, 11 Nov 2000 21:48:29 +0900

I have a question about how to configure "multi-router in a singe
link" environments.

Consider the following topology:

segment1
   |
  routerA            routerB--->(backbone)
      |                 |
      +----segment2-----+

and assume that host in segment2 usually communicate with nodes in the
backbone side, but sometimes communicate with hosts in segment1.  In
other words, routerB is the "primary" router for hosts in segment2.

Now I have a question. Should routerA advertise RA messages on
segment2?

If A advertises RAs, it will have to issue many redirects, because
traffic from hosts in segment2 usually go to the backbone (based on
the assumption above).

However, if A does not advertises RAs, communication between segment1
and segment2 would fail when routerB died.

So, what should we do?

1. routerA should not advertise RAs on segment2. We should just give
   up communication between segment 1 and 2 if routerB dies.
2. routerA should advertise RAs. We should put up with redirects.
3. hosts in segment2 should participate in the routing protocol
   running on the segment to know the better router.

Of course, the answer could depend on the precise situation
(e.g. number of hosts in segment2, the ratio of traffic to the
backbone, etc.) But if there has been a generic opinion on this, I'd
like to know it.

I also thought about a possibility to intorude a new RA option
(e.g. containing a router's preference value) to tell the hosts the
better router in the segment. Is this kind of approach worth
considering? (I recalled a discussion on a new RA option that tells
hosts the better router for particular prefixes around December 1998,
and reread the discussion, but I'm not sure if it was exact the same
issue.)

Thanks,

					JINMEI, Tatuya
					Communication Platform Lab.
					Corporate R&D Center, Toshiba Corp.
					[email-masked]
--------------------------------------------------------------------
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: Sun, 12 Nov 2000 15:56:23 +0700

Date:        Sat, 11 Nov 2000 21:48:29 +0900
    From:        JINMEI Tatuya / =?ISO-2022-JP?B?GyRCP0BMQEMjOkgbKEI=?=
		 <[email-masked]>
    Message-ID:  <[email-masked]>

  | Now I have a question. Should routerA advertise RA messages on
  | segment2?

Yes, without a doubt, this has always been a part of the IP model.

Router preferences have been something of an issue over time - the
difficulty being that it is very hard to assign a linear metric
set to any more than 2 routers (and even to 2, not always) in general.

kre

---

From: [email-masked]
Date: Sun, 12 Nov 2000 18:10:50 +0900

>set to any more than 2 routers (and even to 2, not always) in general.

	from RFC2461 5.1 (conceptual data structures) I feel that the authors
	assumed that:
	- autoconfigured hosts are at the very edge of the site only
	- if we put a host onto a link with more than 2 routers, they will not
	  automatically be configured, and do something tricky (like running
	  routing daemon on hosts in receive-only mode).

	router
	  |
	==+=======+==	<--- no autoconfigured hosts here
	  |	  |
	router	router
	  |	  |
	==+==	==+==
	  |	  |
	host	host

	but anyway, we need to talk about how the non-leaf case should be
	handled in terms of host autoconfiguration.  even today, we see almost
	no use of DHCPv4 static route option (RFC2132 5.8) - we just
	autoconfigure default router(s) to DHCPv4 client, that's all.

itojun

---

From: JINMEI Tatuya / 神明達哉<[email-masked]>
Date: Mon, 13 Nov 2000 09:53:49 +0900

>>>>> On Sun, 12 Nov 2000 18:10:50 +0900, 
>>>>> [email-masked] said:

> 	  routing daemon on hosts in receive-only mode).

From which part of RFC2461 do you think so? I don't see such
assumptions in the RFC...

By the way, the wording is a bit confusing here. In my understanding,
RFC2461 itself does not handle "autoconfiguration". Did you mean the
(auto) router discovery mechanism defined in the neighbor discovery
spec?

					JINMEI, Tatuya

---

From: JINMEI Tatuya / 神明達哉<[email-masked]>
Date: Mon, 13 Nov 2000 09:49:12 +0900

>>>>> On Sun, 12 Nov 2000 15:56:23 +0700, 
>>>>> Robert Elz <[email-masked]> said:

> Yes, without a doubt, this has always been a part of the IP model.

Hmm, I see. Then we should just let the (leaf side) router advertise
RAs, and use redirects if necessary. I think it's enough.

> set to any more than 2 routers (and even to 2, not always) in general.

Okay, I basically agree with you.

Thanks,

					JINMEI, Tatuya

---

From: [email-masked]
Date: Mon, 13 Nov 2000 11:12:29 +0900

>assumptions in the RFC...

	the conceptual data structure says that there's default router list
	and neighbor cache, not routing table.  RFC2462 configures (routing-
	wise) default router only to the host.  so, we end up having
	default route on host, no other routes.  if we only have default route,
	it fits best if hosts are on leaf network.

	maybe i'm guessing too much.

itojun

---

From: Erik Nordmark <[email-masked]>
Date: Mon, 13 Nov 2000 09:45:35 -0800 (PST)

> 	  routing daemon on hosts in receive-only mode).

Why doesn't advertising all 3 routers (without any preferences) plus
redirects solve this problem?

  Erik

---

From: [email-masked]
Date: Tue, 14 Nov 2000 05:30:58 +0900

>redirects solve this problem?

	if you pick a wrong router (like one of two downstream router)
	as the default and stick to that one, i'm afraid you will see so many
	redirects.  if redirect traffic are okay for you, i have no objection
	with your plan.

itojun

---

From: JINMEI Tatuya / 神明達哉<[email-masked]>
Date: Tue, 14 Nov 2000 10:06:26 +0900

>>>>> On Mon, 13 Nov 2000 11:12:29 +0900, 
>>>>> [email-masked] said:

> 	and neighbor cache, not routing table.

Destination cache is also contained in the conceptual data
structures. I think it is a host version of routing table.

> 	RFC2462 configures (routing-
        ^^^^^^^??? You mean 2461?
> 	default route on host, no other routes.

Except per-destination routes in Destation Cache.

> 	if we only have default route,

I can't understand the conclusion. I think there is a logical leap...

					JINMEI, Tatuya

---

From: Robert Elz <[email-masked]>
Date: Tue, 14 Nov 2000 12:50:27 +0700

Date:        Tue, 14 Nov 2000 05:30:58 +0900
    From:        [email-masked]
    Message-ID:  <[email-masked]>

  | 	if you pick a wrong router (like one of two downstream router)
  | 	as the default and stick to that one, i'm afraid you will see so many
  | 	redirects.

You should only see many, in comparison with the traffic volume to the
destination, if the traffic volume is very low.   In that case, who cares?

For what it is worth, the case you brought up is the easy one, that
redirect handles just fine.

The difficult case is...

	--- ppp link to the world ---   world router
	|				    |||
	|				    |||  GB (or ATM or similar)
	|				    |||  link to the world
	|				    |||
     router-1				  router-2
	||				     ||
	=========== local ethernet ============
	     |
	    host

In that case, rather than getting a redirect when host picks router-1
to send to the world, the packet instead goes out over the wet string
instead of over the fibre (at least, that's often the way things will work).

This is where some kind of router preference is needed - and it will
be interesting to see what Rich Draves (et al) come up with that will
solve this.

If they can also cope with ...

	--- ppp link to the world ---   world router
	|				    |||
	|				    |||  GB (or ATM or similar)
	|				    |||  link to the world
	|				    |||
 === router-1				  router-2 ---
 |||	||				     ||       |
 |||	=========== local ethernet ============       |
 |||	     |					      |
 |||	    host				      |
 |||						      |
 |||						      |
 router-3 ---------------------------------------------
  ||
  ||
  (to internal intranet, or similar)

where router-1 is the best path for host to use to get to router-3,
but router-2 is the best past to use to get to the world (and then
generalise this to more routers and destinations) without turning the
router preferences into  buried routing protocol by stealth, then I
shall truly be impressed.

And Rich - no need to reply, I will await the draft.

kre

---

From: Thomas Narten <[email-masked]>
Date: Tue, 14 Nov 2000 06:37:45 -0500

> 	and neighbor cache, not routing table.

The destination cache is essentially a routing table. Rather than
getting built up from routing updates recieved via routing protocols,
it is built up on demand by:

1) when communication with a destination first starts. If no
   destination cache entry for that destination exists, it gets
   created. Later, should a redirect for that destination arrives, it
   updates that entry.

2) the default router list is exactly that. A list of default routers
   one can pick a router from to use in those cases where one doesn't
   already have a working router in the destination cache.

> 	- autoconfigured hosts are at the very edge of the site only

No such assumption was made by this author.

> 	  routing daemon on hosts in receive-only mode).

Not at all. They can configure themselves just as if they are on a
leaf network. Redirects correct the situation where the "wrong" router
is chosen for a particular destination.

Thomas

---

From: Erik Nordmark <[email-masked]>
Date: Thu, 16 Nov 2000 07:08:21 -0800 (PST)

> 	redirects.  if redirect traffic are okay for you, i have no objection

Even if you have just two routers (and no upstream/downstream issue) you will
see redirect traffic.  I don't see this as being a problem (one redirect
per IP destination the host ever sends to isn't a big deal - note that 
redirect routes don't need to be timed out in IPv6 since NUD protects
against stale information).

   Erik

---

From: [email-masked]
Date: Fri, 17 Nov 2000 06:30:11 +0900

>against stale information).

	i'm still having fuzzy feeling about ICMPv6 redirects - if we have
	famous web server in our network, and the web server picked
	wrong (downstream) router as its default router, i'm not sure if
	the amount of ICMPv6 redirects will be acceptable for us.

	another thing - you will want to timeout redirect routes, as they will
	chew your kernel memory space.  you cannot keep them forever.

itojun

---

From: Erik Nordmark <[email-masked]>
Date: Thu, 16 Nov 2000 13:49:05 -0800 (PST)

> 	the amount of ICMPv6 redirects will be acceptable for us.

I don't have any data to say how much it will be in such a case.
The worst case is clearly something that exchanges exactly one packet
with every IPv6 address on the planet where you'll see one redirect
per sent IP packet. A web server typically sends a lot more than
one IP packet per destination. But as I said I don't have any hard data
here.

> 	chew your kernel memory space.  you cannot keep them forever.

Our implementation keeps them around until the kernel gets low on
memory.

  Erik

---

From: Bob Hinden <[email-masked]>
Date: Thu, 16 Nov 2000 15:53:10 -0800

Itojun,

>         the amount of ICMPv6 redirects will be acceptable for us.

The issue you are raising is inherent in IP (IPv4 and IPv6) and the 
decision long ago of not having the hosts participate in routing.

I think a better solution is to change the topology to something like this:

        segment1
          |
        routerA            routerB--->(backbone)
           |                 |
        ---+--+-----------+--+---
              |           |
             Router     Router
              |           |
           ---+-+------+--+---
                |      |
               Web    Host
              Server

This puts your "famous web server" on a link where the outgoing router can 
pick the best next hop based on routing (and avoids the redirects).

Bob

---

From: JINMEI Tatuya / 神明達哉<[email-masked]>
Date: Fri, 17 Nov 2000 14:28:31 +0900

>>>>> On Thu, 16 Nov 2000 13:49:05 -0800 (PST), 
>>>>> Erik Nordmark <[email-masked]> said:

> one IP packet per destination. But as I said I don't have any hard data

So, how about letting all routers in the segment where our "famous"
web server is located advertise RA, and checking the ratio of outgoing
TCP (or IP6) packets to incoming redirects on the server?

					JINMEI, Tatuya