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

source address rewriting and shim6 proxies



Paul Jakma wrote:
On Tue, 27 Sep 2005, Brian E Carpenter wrote:

Shim6 is not 8+8; the address changes take place in the end system.


There is not as yet any technical reason why this should be so. And if shim6 is to work with ULP's like UDP, then there isn't any good technical reason why the connection between ULP and the shim must be on the same host.

If a technical reason comes along to restrict shim6 to having to be on same host, fine. If it doesn't, no reason to be arbitrary.

There are technical reasons that make this hard relating to the interaction of the shim, the way things are secured with HBA/CGA, and IPv6 address assignment.

But we could actually talk about two different things in this space:
1. A shim aware host sitting in a site and the host defers "source address selection" to the border routers.

2. A legacy IPv6 host in a site and there is some shim6 proxy mechanism in the site that provides shim6 capabilities on behalf of the unmodified host.

I and Tony Li explored the former a bit and one way to do such border router rewriting is in the NOID draft (which is probably expired by now).

A couple of difficulties came up with border router rewriting:
1. It is far from clear that there is a well-defined border router between a site and the Internet. Take a Univerisity and ask three people where the border router is and see if they have the same idea:
 - the network admin for one of the departments
 - the central IT organization
 - the ISP

2. Blind border router rewriting (just replace the top N bits of the source address) assumes the host is configured with an IPv6 address in each prefix that the border routers know about, and is capable of "proving" that this is one of its locators. ("proving" using whatever means a shim solution uses to prevent attackers from redirecting your packets somewhere else). Thus there has to be some coordination between the allowable rewriting by the border router and the hosts; worst-case this implies rewriting rules on a per-host granularity.

3. Folks have raised privacy concerns around shim6 (for small sites) if a host is using the same low-order 64 bits on all paths, and desire that different bit patterns be used for different prefixes. Such a requirement would conflict with blind rewriting by the border routers. The WG could of course decide which of such conflicting requirements one wants to handle and which one to skip.

There are actually two approaches that can avoid the above issues, but as usual there is no free lunch. A. (I think Paul Francis suggested something like this a while back) Add an option to every data packet which indicates the allowed alternative source addresses. Thus the host says "I'm sending this with source address A1, but it's OK if a border router rewrites the source address to be one of A2, A3, or A4".

 This would make every packet header bigger.

B. Put a hook in the RFC 3484 address selection mechanism to ask a site-wide oracle for advise on which <source, destination> addresses to prefer. This presumably only handles things when a new connection is setup thus can't deal with dynamic changes. Doing it for every (short-lived) connection might imply a lot of overhead and high load on the oracle.

If you were thinking about the legacy IPv6 hosts and shim6 proxies, then there was some discussion on the mailing list (shim6 or multi6?) a while back. I can try to restate things on that front if there is interest.

   Erik