* 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).

-- 
Henning Brauer, h...@bsws.de, henn...@openbsd.org
BS Web Services, http://bsws.de
Full-Service ISP - Secure Hosting, Mail and DNS Services
Dedicated Servers, Rootservers, Application Hosting - Hamburg & Amsterdam

Reply via email to