[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: failure detection



Hi Marcelo,

On Thu, 18 Aug 2005, marcelo bagnulo braun wrote:

SHIM wg is about providing multihoming support for IPv6. In particular a solution for IPv6 multihoming must be able to preserve communications through outages in the communicating path. Such functionality is provided in IPv4 through BGP features but it requires the injection of site routes in the interdomain routing.

In IPv6 PA addressing is used, so we need additional mechanisms (the shim) to provide equivalent functionalities, in particular to preserve established communications through outages.

Ok. We're on the same page here I think.

1. Why this is a compelling argument given that it's been possible to publish multiple addresses in DNS for a long long time, yet there has been 0 demand for either applications to implement n^2 path-probing of each local address to every remote address, or for OSes to implement some kind of 'path-probe' shim to provide such functionality for all applications?


I am afraid you are missing our goal here. this is not a matter of oportunity but the way we can preserve established communication through outages. see above

But you can preserve comms without n^2 probing.

With the shim, path are closely related to addresses used, in particular exit paths of the multihomed site are related to source addresses used.

Agreed.

So in order to provide this type of features, source address selection has to be influenced, for instance using RFC 3484 policy table

So in order to determine the source, you're saying the table which affects source selection has to be influenced by shim6. Surely that's like saying "shim6 will use whatever source pleases it" (ie simply ignoring SAS for the final shim6 output packet).


The SAS aspects of this n^2 probing talk bother me greatly. It will ignore local policy, policy which might be there for very good reasons, which shim6 has no oversight of.

Ie: The best way to honour local policy is to use INADDR_ANY and let the OS decide the source address by consulting local routing policy - alternatively, an administratively specified address. Why exactly is shim6 so different from everything else on the internet and special that this would not work for it?


this is exactly how the shim would support policing see above

No, you said shim6 likely will have to influence SAS. Thats quite different from not worrying about SAS at all and letting the OS decide according to its local policy.


3. The traditional way on the internet to guard against path failures is to get a routing feed (and no, that does *not* imply you advertise anything), why is shim6 so special that it can't defer to existing practice?


scalability. traditional IPv4 routing based multihoming lacks of it

Note again "does *not* imply you advertise anything". Everyone is (sort of) agreed "multihome by advertising your prefix" doesn't scale and should not be considered for IPv6 - hence shim6.


I'm saying you can still get a "read-only" routing feed (BGP or whatever), purely for informational purposes, to help decide which of your ISPs has the best path.

That's entirely scaleable and well within reason for deployment at 'enterprise' shim6 sites.

4. How will you decide which path is best?

local policy can be expressed to some degree with the policy table defined in RFC 3484. If more fine grained expression is needed (e.g. per app) additional parameters need to be included in the policy table

Sorry, my question was more about the metrics you will use to determine whether path (local A, remote B) is better than (local C, remote D). Eg, RTT, packet loss, etc.


we seem to be assuming that multihoming support is something useful and that it will be needed in IPv6.

I'd agree with that assumption. :)

This multihoming support seems to require communications to be preserved through outages.

Agreed, but I still don't understand why this requires shim6 to specify overriding existing SAS policy and do n^2 probing.


6. If path-probing really is desired, explain why this is shim6 specific?

path exploration is a fundamental part of the shim protocol-. maybe is not shim specific and ideas from other similar protocols can be used, but it is imho a key part of the shim protocol and need to be part of it.

If it is not specific to shim6, why should it be solved in shim6? (In the 'for every possible path of the combinations of local and remote addresses')


- software that does local path-probing to determine reachability of
  locally attached gateways (eg IPMP in Solaris for one)

this seems to be local, while shim is defined e2e

Indeed. But it's already implemented. And local probing (with no SAS messing about) likely will do for many cases.


- BFD and some other protocols in development

B means bidirectional, and we are not assuming bidirectional paths here

Ah, yes.

- software that monitors the systems route-cache and does
  path-probing for destinations that currently see flows



not sure what you mean by those but in any case, i am sure we can benefit from these designs as well from the others you emntioned to design the shim path exploration.

Yes, shim6 could benefit from these potential designs by *not* getting involved in complex path probing and SAS. ;)


Eg, the local address probing proposed for shim6 is /counter/ productive to other possible external mechanisms (worst of all, including "get a read-only BGP feed from your ISPs", which is the most practical way to do this.)

If you are familiar with those, i am sure that your knowledge would be very useful to help with the design of the path exploration protocol of the shim

Drop the local source selection from shim6, things become easier, shim6 will interoperate better with other routing software, etc.


Note that it's the probing using every single local address which bothers the most. Simple heartbeats and monitoring which set of locators are reachable and just picking one and sticking to it till you needed to switch, I could agree with.

AFAICT this is the approach being considered here or at least one of them.

One of them yes, the n^2 probing is one of the options being considered - I hope to quash its further development :) - at least in terms of something that is mandated officially as part of shim6 specs (can still be mentioned in some kind of implementors note).


I mean, imho, we would only need to perform path exploration after an outage

You can do it more cleverly than that.

I fail to understand what you are missing. Failure detection and Path exploration are key components of the shim, and they are needed to preserve established communications through outages.

Sure, I agree. But why not do it in the simplest way possible?

on that. It's the n^2 probing I want to ensure is /not/ considered for inclusion in shim6 RFCs, other than as something mentioned as a possible implementation detail.


Ok, i think i see now. Your problem is with probing with different source locators, right?

Yup.

Well, this is needed because the source address determines the exit path from the multihomed site. I mean, because we are assuming PA addressing, changing the source address results in using a different ISP in the multihomed site. That is why different source address need to be explored

Explored and then dismissed as a bad idea, I strongly hope.

The source to use for the shim should be determined by the /destination/ address in the shim6 packet you receive (eg) first from the other side.

Ie, given two shim6 stacks, A and B, that want to talk to each other via the global internet (eg to exchange info needed to create shim mapping between them, A initiates), each with 3 addresses say (A1, A2, so on). The communication required is:

A retrieves the required locator information, and gets a list "B1, B2, B3". It then sends a packet to each remote address, n packets at a time, in series, with whatever shim6 control message is required:

A(IN6_ADDRANY) -> B1
A(IN6_ADDRANY) -> B2
A(IN6_ADDRANY) -> B3

some time later a reply is received:

A(x)  <-  B3

The source address A should prefer to use (if it must prefer one over IN6_ADDRANY) is 'x', as determined by which destination address was in the packet of B's that got through.

See, that's simple and works - no probing required.

If "n^2 probing is simply not an option" is in your mind, then you'll start realising there are other, simpler, better ways of achieving the same end-goal - which don't require messing with local SAS policy either, but rather use it as intended (without modification).

There's many many years of existing deployment of IP using systems and applications that simply don't consider such complex probing worth it.

right, because they are not assuming the usage of multiple PA addresses in a single host

That's a fair point, and likely part of the answer.

Another possibility is simply that path failures in the 'middle' of internet are rare and hence users and apps have not had any compelling need to explore this possibility.

When you include multiple PA addresses in hosts within a multihomed site, then you find out that you need to try with different source addresses.

No, you don't. Because you think it's an option (it isn't :) ), you've stopped trying to find better options (which there are).


Note that part of my definition of "better option" is one which includes "doesn't use n^2 probing and fiddle with SAS", so it may be a self-fulfilling definition.

sort of... you still lacking DoS protection and locator security but kind of what is being considered (with a couple of additional messages)

Yes, no security in that.

well, yes, but we are considering quite a few optimizations for this, like ULP feedback and traffic monitoring also but yes, This is in the lines of the failure detection mechanism being considered,

Ok.

ULP feedback - don't rely on it :) (I checked, it exists in Solaris TCP, for use by NDP, as you pointed out. I can't find anything in Linux though).

path exploration is more complex than that, because you need to change the source address to change the exit ISP. remeber that we are assuming PA addresses, and they are only routed through one of the ISPs of the multihomed site.

I know this fine well, I've had operational experience of PA multihoming using tunneling with IPv4. :)


See above, given above, you *do not* need to do anything clever with source-address selection at all, imho.

i think that most of this stuff is included in the current drafts, just that additional complexity is considered, for instance security stuff, unidirectional path support and cosniderations about the constraints imposed by the usage of multiple PA addresses in the multohomed site and ingress filtering

Sure.

regards,
--
Paul Jakma	paul@clubi.ie	paul@jakma.org	Key ID: 64A2FF6A
Fortune:
The mouse escaped.