[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: failure detection
On Tue, 30 Aug 2005, Erik Nordmark wrote:
Paul Jakma wrote:
But SAS is inherently tied in with routing. Let it do its magic.
According to which RFC? ;-)
Don't think there are any standards-track for IPv4, not even sure if
there are informational ones. There is something for IPv6 isn't
there? However, in implementation, that tends to be how things are
done in order to be able to get packets to the right place.
The source address selection is influenced by which interface is
used (I think RFC 3484 says that), but I know of no text in an RFC
that ties the source address selection to the first hop router
being used.
Indeed, but it makes sense, and that's generally how source is
selected for unspecified packets. Pick the nexthop, then pick an
appropriate source according to connected network being output to
for that next-hop.
Yes, draft-huitema already points this out.
Excellent ;)
But here is where the out-of-the-box behavior of the hosts doesn't
match your expectations. The host will pick a source address that
is appropriate for the network interface,
Right.
but apart from that there isn't any correlation between the source
address and the 1st hop router it is using.
In practice, there likely is a very strong correlation between the
output interface and the address(es) on that interface, the latter of
which were used to decide which interface is appropriate for the
chosen next-hop. So in practice, there's a very strong correlation
between next-hop used and source address selected for addr-any
sockets sending packets that will go via that next-hop.
You *can* setup really strange scenarios where you use a next-hop for
a route (eg your default) for which none of your interfaces have
addresses which they share with that nexthop. But then you must
specify the output interface manually anyway, and hence you can
easily specify the appropriate source too at that stage.
But we also need to capture the slightly larger case where there
might be a handful of routers in the site, thus the host might not
be directly attached to the border routers.
Right, but there still must be a router attached to same network as
one of its interfaces.
draft-huitema suggests different approaches for doing this, and the
simplest one for multiple border routers is to have the border
routers setup tunnels between themselves so that they can pass
packets to an exit that is appropriate for the source address. In
the case of the border routers being on the same link, they can
discover each other automatically, but manual configuration might
be needed when such discovery isn't possible.
Tunnels between routers in the /same/ IGP AS does not seem ideal.
Just distribute the required source-routing information to those
routers which need to be aware of it, eg using Opaque-LSAs. Have each
border router originate a "I am a packet-sink for address-range X"
LSA. Would require OSPF though - which isn't ideal.
A simple standalone flooding protocol, to distribute knowledge of
available prefixes to interior and work alongside RAs, might be an
idea.
This could be combined with some automatic protocol by which the
border routers can inform the interior routers of which prefixes
have failed, and the interior routers can advertise that in their
RAs. (Something like an extension to RFC 2894 "router renumbering
protocol" could be made to work.) However, such a protocol requires
some security configuration, otherwise anybody on the Internet
could use this to reconfigure the RAs your interior routers send.
One would hope this would this be a link-local protocol at least..
preferably with an HMAC or IPSec AH.
Thus I don't think we can assume that some such, not yet invented
mechanism for propagating information from border routers to
interior routers, exist.
This leads me to conclude that we can't assume that source address
selection can solve the ingress filtering interaction.
I disagree with this. Just because the required router protocol
infrastructure does not exist is not a good reason to try bypass
developing such infrastructure.
If there's customer demand for IPv6 multihoming (eg cause of shim6 ;)
) and then customers require facilities for steering packets to right
ISP according to the source, and require a way to reflect
prefix-availability AS-wide, the router vendors will respond.
In both the single and multiple border router cases, the host will
need to pick a source address before the packet leaves the host.
The source-based routing in the border router(s) ensure that when
both paths are working, the packet will leave on an exit where it
doesn't get filtered out.
Right.
And surely it's more sane to have border-routers be able to affect
which prefixes are posted as 'available' by interior routers within
an AS, to the hosts *before* they ever try pick a source?
That prefix-propogation protocol could, at the same time, be used to
install the required source-routes in the routers concerned to direct
the packets to the border-router appropriate for the prefix
concerned.
That seems achievable and also more proactive and sane than having
hosts sending a multitude of packets with every combination of source
and destination they have to hand, simply for the reason that "well,
the routers don't have that mechanism yet".
I don't understand why a protocol for /tomorrows/ networks should be
trying to hack around a lack of functionality in /todays/ interior
routing, when the correct place is obviously to extend capabilities
of interior routing (and IPv6 RAs).
However, when there is a failure then presumably the border routers
will send packets up the exits they know are working; in any case,
after a failure towards ISP1 packets with the source address from
ISP1's prefix will not make it through (either they are sent out
the exit to ISP1 and experience the failure, or they are sent out
the exit to ISP2 and are ingress filtered away).
As a result, the host must be prepared to try sending packets with
different source addresses.
How do you reach that conclusion? The conclusion I would draw:
You need your routers to do what they're supposed to do: Direct
packets to the appropriate next-hop. If that will require
source-prefix routing and means to distribute source-specific routes,
then let the routing area figure that out.
It could be done as a vendor specific hack with opaque LSAs pretty
easily.
Did it work without any manual configuration of the host?
*hosts*, and yes it did.
ISP1-gw ISP2-gw
| |
| |
R R
| |
-----------
| | | | |
<hosts>
The hosts were configured with an address for each PA range, the
routers did the magic.
I think that is the crux of the matter; we can automate this for the single
SOHO router case by adding a "failed" notion to the prefixes in the RAs.
Positive signalling of failure is problematic though.
But slightly larger networks would require a secure way for border
routers to inform interior routers, which I think requires
configuring some security somewhere.
Sure.
regards,
--
Paul Jakma paul@clubi.ie paul@jakma.org Key ID: 64A2FF6A
Fortune:
Integrity has no need for rules.