On Fri, Feb 22, 2013 at 07:17:04PM +0900, Lorenzo Colitti wrote: > On Fri, Feb 22, 2013 at 6:52 PM, Ray Hunter <v6...@globis.net> wrote: > > > But given that route determination is a distributed algorithm, and that > > Homenet devices will not always run the latest and greatest code, > > what action should nodes that are running older code take regarding any > > TLV options that they don't understand? > > > > Isn't there a danger that extensibility will lead to more routing loops, > > instability, and black holes? > > Yes. If intermediate devices don't understand SADR, you can get routing > loops. We should document that clearly and find out how to avoid it.
[quoting the earler loop sketch for convenience] | If 4. is not given, this scenario will lead to a loop: | All links assumed at equal cost, r2 does not support simplified SADR, | R1,R3,R4 do. | | ISP_A, pfx_A ::/0 ISP_B, pfx_B, ::/0 | | | | R1 ------ r2 ------ R3 ------ R4 | | | Host | | Host now selects an address from pfx_B to reach some site on the | internet. R1 forwards to r2 because the ::/0 from R4 is more specific | on the source. r2 forwards back to R1 because it didn't consider source | specific-ness and just went by lower cost... [/quote] Since I complained about this earlier, I feel obliged to throw possible approaches around. I'm excluding the prefix-assignment-integrated approach to distributing SADR routing information since that would supposedly by design require all participants to support SADR. For both "simple" and "full-blown" OSPFv3 the following loop/interop mechnisms come to my mind: 1. refusing adjacencies between SADR and non-SADR routers. Easily implemented with a Hello bit, this is the crowbar solution. Quite sufficient for homenet I guess, but probably less acceptable for anything else. 2. flagging SADR support in router LSAs/LSPs. Provides enough information to avoid loops. Three things can be done with this information: 2a. install null/reject routes for paths that cross non-SADR routers. Provides adequate failure semantics, instead of looping packets around we get an ICMP unreachable. Easy to implement. Downside: if there really is a non-SADR router, "not working" is now a state that is part of the result set of the dynamic route calculations. Users (and admins) probably do not expect this. 2b. calculate SPF around non-SADR routers Gets us a working network, but at a cost: there may now be 2 different paths to reach some faraway router, one for SADR-routed packets and a different one for non-SADR packets. Depending on how the router performs its SPF calculations, this can be hard to implement correctly - it's essentially a very narrowly and exactly specified case of multitopology routing. 2c. on encountering non-SADR routers, figure whether they'll do the right thing with the packet. ... complicated and of questionable use IMHO. Just listing this for completeness. 2a and 2b can be mixed with each other; packets will get passed along by 2a-type routers until they get discarded at a 2b-type router. My personal opinion at this point is that 2a and 2b should both be specified, with a requirement to indicate support level in the router documentation. We're unlikely to encounter normal OSPFv3 speakers in a plain "production/final" homenet, so they could take the easy way. If this gets implemented on routers for enterprise use, I'd expect 2b behaviour. (With the Baker OSPF/ISIS SADR specs quite independent from homenet as they are right now, I think getting homenet-only solutions in those is an unwise idea; homenet optimisation possibilities like allowing fallback to 2a on the other hand should be acceptable.) -David _______________________________________________ homenet mailing list homenet@ietf.org https://www.ietf.org/mailman/listinfo/homenet