Actually had a conversation with our primary upstream provider yesterday about IPv6 (and why
they won't provide it to us). One of their lead engineers, once plied with beer, said that every
time they've deployed it they get 99% of it working well and 1% of things mysteriously
stop working, or go wonky. That was similar to our experience a few years ago. It mostly
helped a lot, but chasing down the "hey, this advertises a v6 address and doesn't actually
support it" issues drove us crazy.
Right now, we don't have enough IPv4 addresses, but that's being rectified. We mostly
do CGNAT and 10.64 addresses in the meantime, with public IPs assigned where they
are needed (mostly through a tunnel setup to avoid subnetting waste). Tunnels are a pain,
but they work (once you chase down all of the MTU issues).
Which reminds me, I have "can we support MPLS?" on my crazy notes list. I know that
Preseem and similar don't try, but we're already reading deeply enough into the ethernet
header that saying "this is an MPLS label, advance 4 bytes", "this is a VPLS label, advance
X (I forget) bytes" looks do-able. [Note, I personally don't enjoy MPLS. It's handy when
you want to pretend to have a flat network on top of a large routed network - and some
WISP consultants absolutely swear by it - but my experience is that you are adding
complexity for the sake of it. Routing works remarkably well.]