|
To be fair, a lot of the growing pains with IPv6 were pains that had to be discovered as we went. I wish IPng had taken a totally different approach to addressing and routing: - for addressing, yes, very large (or even variable-length, like CNLP, see below) addresses fields in the IPng header - for routing, the IPng header should have had a source and destination ASN fields, with the source being filled in by the sender's router(s) (either immediately in the interior, or at the edge), and the destination ASN fields to be filled in by the sender by querying something like the DNS (but optimized for, essentially, CIDR-style IP->ASN lookups, though DNS can do it). This would have made routing much simpler and faster, since routing protocols would only have to exchange information about ASNs and not about any address prefixes, thus yielding much smaller routing tables. The address->ASN lookup service would have needed very little churn since its contents would change only when sites change Internet service providers. I wasn't there then, so don't blame me, but also honestly I probably wouldn't have thought of this either. In practice we ended up with something just like this but... without address number portability, which is a shame. |