
Sounds like this would make everything be symmetrically routed.
No. It only means the end system's first hop is symmetrical. The intermediate systems might packet-stuff on multiple paths, or choose a different path based on private data, or whatever. My goal is not end to end path symmetry -- hot potato routing makes that impossible in any case. My goal is that an end system should be able to accept connections via multiple providers without needing a routing table from each of those providers. (Which can't be made symmetrical even in the average case, anyway.)
Has anyone researched whether this can scale?
I havn't. I know that right now, someone who wants to multihome has to do way too much work and they cannot reliably send packets back on the same first-hop as the last-hop they came in on, which makes it pretty much worthless to multihome unless you break your BGP listener to use round robin or pseudo random path selection -- and when we did this it made some things worse rather than better.
Will you handle the case where the interface a flow uses changes during the course of the flow?
If the link (or ARP) for the current next-hop dies, the route rehomes among the remaining interface defaults and then rehomes again next time a segment is received on some remaining-up interface.
I assume this will lead to "round robin default" until an inbound packet for the flow is received from a new interface.
That's what I remember saying, yes.
Will the "round robin default" favor uncongested or highest speed links?
Not initially. My test environment has a pair of 10baseT links and the congestion is all after the first hop, where interface statistcs can't help with local route selection. I won't entertain the above question seriously unless our initial results hint that it will be time well spent.
I can't wait to hear the results of doing this!
I expect to have an informal report for this mailing list by January 10th.