On Sat, Mar 21, 2009 at 1:03 PM, Henning Brauer <lists-open...@bsws.de> wrote: > * Garry Dolley <gdol...@arpnetworks.com> [2009-03-21 20:32]: >> > > If everyone continues to avoid IPv6, then it will remain less than >> > > useful. I understand IPv6 has less than 1% uptake at the moment, but I >> > > don't understand why employing it (in addition to IPv4 NATing hacks) is >> > > "about the least smart" thing an ISP could do? >> > > >> > > Is it a cost issue? >> > >> > no, a lack of brain issue. v6 is broken by design in a thousand ways >> > and way worse than you can imagine. of course it has been detailed >> > here numerous times. >> >> So what are you going to do when all of IPv4 is exhausted? Do you >> have all the IPs you need so it won't matter? > > personally? yes I have enough as far as I can tell today. > > globally? I fear we are going to see a v6-- which still has way too > much shit in it. That is the way v6 standards (hey, there is not even a > STD RFC for v6 today!) went in the previous years, cutting some crap. > but waaaaaaaaayyyyy too much is still there, and some issues are > fundamental. > > whoever claims v6 would be any good has never written network code > dealing with it. > > hey, compare these two which do the same, one for v4 and one for v6: > > u_int8_t > mask2prefixlen(in_addr_t ina) > { > if (ina == 0) > return (0); > else > return (33 - ffs(ntohl(ina))); > } > > u_int8_t > mask2prefixlen6(struct sockaddr_in6 *sa_in6) > { > u_int8_t l = 0, i, len; > > /* > * sin6_len is the size of the sockaddr so substract the offset of > * the possibly truncated sin6_addr struct. > */ > len = sa_in6->sin6_len - > (u_int8_t)(&((struct sockaddr_in6 *)NULL)->sin6_addr); > for (i = 0; i < len; i++) { > /* this "beauty" is adopted from sbin/route/show.c ... */ > switch (sa_in6->sin6_addr.s6_addr[i]) { > case 0xff: > l += 8; > break; > case 0xfe: > l += 7; > return (l); > case 0xfc: > l += 6; > return (l); > case 0xf8: > l += 5; > return (l); > case 0xf0: > l += 4; > return (l); > case 0xe0: > l += 3; > return (l); > case 0xc0: > l += 2; > return (l); > case 0x80: > l += 1; > return (l); > case 0x00: > return (l); > default: > fatalx("non continguous inet6 netmask"); > } > } > > return (l); > } > > don't get me started on the 160bit addresses (128 + 32 scope ID) which > fuck up all alignment. > > just v4 with addresses extended to 64bit (that is still an integer!) > would have been sweet, with minor adjustments/additions like hopcount > instead of ttl. maybe better crypto integration than ipsec today (v6 > doesn't solve that problem despite the claims it would either).
But then network admins would have been able to keep track of hosts in their own networks. ;) -B