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

Re: failure detection



On 15-aug-2005, at 18:08, Paul Jakma wrote:

I'd also like to potentially add source-address-selection (for the globally routable shim address) to this list.

[...]

Again, SAS is simply *not* something shim6 should do, or something which it has remotely near enough information to do. Let normal IP routing and SAS handle this task.

The thing is that for TCP, the source address is only selected at the beginning of the session. After that, it can't be changed because the other side wouldn't recognize the session anymore, i.e., it's needed for demultiplexing.


The shim MUST be prepared to set the source address because there may be ingress filtering at some point, and the wrong source address will make communication impossible. If the shim is going to rewrite the source address at the destination, we're no longer limited by TCP demux, but of course the shim itself must also demux. It's possible to do this without considering the source address, or at least the first 64 bits of the source address, but it's not entirely non-trivial.

If you follow your line of thinking about the source address to its logical conclusion, then obviously the site exit router must select the source address. We've talked about this A LOT in multi6 and its various design teams, and (others jump in if you don't agree) the conclusion was that this is certainly a capability we would like to have, but since it has its own difficulties (routers must know which packets they can and can't touch) and it will take a long time before we can depend on routers to do this, we have to make the shim work without this capability.

I'd suggest it would be more fruitful to ensure state between two shim6 speakers /not/ depend on the 'outside' (ie globally routable) addresses, and let shim6 be able to handle messages between two endpoints arrive with any 'outside' source address.

Not sure what you mean...

It also eliminates the need for hideous n^2 address-to-address probing which is being considered.

There is no getting around it, except for giving up before you reach n^2...


(You can of course move this problem to another layer.)

- A may load-balance outbound packets between the two ISPs

Not really. Suppose A sends packets to router R which connects to both ISPs. How is A going to influence to which ISP R sends any given packet?


However, I feel it is a *really* bad idea to even consider trying to solve the problem of "internet cloud" path failures,

I'm afraid you've come to the wrong wg. :-)

    - Existing protocols already live with this today, and
      generally we're happy

Are you saying there is no requirement to multihome, even for people who go out of business when their link to the net fails for a significant amount of time?


    - It can be solved/mostly-mitigated by running a routing
      protocol (ie BGP)

Not without an information explosion. If you have address dada::dead:beef, and I see in BGP that dada::/16 is up, I'm going to send the packet as per this route. If it then turns out that your link to this ISP is down the packet isn't going to make it. And sending out a route for dada::dead:0/112 over another ISP won't scale.


- If you don't need to specify complexity, don't -> KISS

Ever looked inside the cockpit of a modern airliner? Not simple. And these people care A LOT more about their "redundancy protocols" that we do.


Keeping it simple is good advice when the choice is gaining advantage X in a simple way or gaining advantage X in a complex way. If keeping it simple means you only get X/2 rather than X, then simplicity isn't necessarily the right choice.

    - In trying to specify such a thing in shim6 you'll have to
      consider interaction with underlying IP routing, yet
      another layering violation.

Layers may interact, no violation per se.

Please drop the locator-selection crap for now.

What "crap" are you referring to?

Iljitsch