On Sun, 2016-03-06 at 01:57 +0200, Saku Ytti wrote:
Technically speaking there is no reason not to support SLAAC on arbitrary size networks. I believe Cisco happily will autogenerate address for smaller subnets.
To support SLAAC with prefix lengths other than 64 you would have to break numerous standards. RFC2464 is very clear on the matter, at least for Ethernet interfaces, though RFC 4862 is carefully non-committal. Even if the router supports it, as far as I know a standards-conforming host MUST ignore such prefixes for purposes of SLAAC on Ethernet. As far as "technically speaking" goes, recall that the host generates its own address; the only information supplied by the router is the prefix and an A flag. There is no way for the router to tell hosts *how* to generate the address. The hosts would have work out where in the shorter (or longer) prefix the MAC address should go. If the prefix is too short the hosts would have to work out which bits to discard, and would have to work out which bit (if any) should be complemented to indicate local vs global assignment. Might be a good idea to keep least significant bits, to minimise impacts on solicited node multicast addresses. Dunno what would happen to solicited node multicast if you increased the prefix length beyond 104. Temporary and privacy addresses might be easier - all you would need to do would be randomise whatever bits were available to you, though as prefixes got longer your protection would decrease. There might be more to it than that - haven't really thought it through. So to change the prefix length for SLAAC I think you would have to own the whole ecosystem including host stacks. So while Cisco may support it on router interfaces, I suspect it wouldn't actually *work* in practice. But I have been wrong oh, so many times... Regards, K. -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Karl Auer (kauer@biplane.com.au) http://www.biplane.com.au/kauer http://twitter.com/kauer389 GPG fingerprint: E00D 64ED 9C6A 8605 21E0 0ED0 EE64 2BEE CBCB C38B Old fingerprint: 3C41 82BE A9E7 99A1 B931 5AE7 7638 0147 2C3C 2AC4