> > I know I can do NAT66, but I don't think it's feasible to emulate NPT
> > using NAT66 rules.
>
> No, NPT is different and can't be emulated by anything that OpenBSD's
> PF currently does.
Shoot. I was really hoping pfSense managed it through some feature that
predated FreeBSD's pf(4) import, but that I had merely overlooked. That sucks,
right now.
> The closest it can get is NAT with bitmask and "static-port", but
> 1) that's stateful, and 2) it doesn't do the "checksum neutral"
> modification that NPT uses (NPT doesn't replace just the network prefix;
> it also adjusts the host part of the address in a complementary manner
> so that the IPv6 checksum doesn't change).
Ah, thank you for that explanation - I wasn't clear on what the manipulations
were supposed to accomplish.
In my unfortunate scenario, NAT66 would probably work just as well, assuming my
intuition about how IPv4 NAT/SNAT/PNAT works in pf(4) extends to the IPv6
world. An HTTP proxy would also work, I suppose, but would require more
configuration on the inner hosts.
All I need is a way to give ULA-addressed hosts a way *out* to reach, e.g. DNS,
NTP, mirrors, probably various CDNs - all the maintenance traffic a modern
(non-OpenBSD) host generates by itself. As I write this, I'm starting to
wonder if NAT66 isn't the better solution anyway since it's (kind-of)
inherently unidirectional.
Oh, and in case anyone's wondering - this is all because a) VMware NSX 6.0
supports IPv6, but neglects to include any form of NAT or NPT or outbound
proxy; and b) OVH, even in their private cloud offering (which is where the
VMware NSX 6.0 comes in!), will not route public IP address space to a VLAN
behind my firewall... which works for IPv4 ("just use NAT!"), but not so well
for IPv6. And I need IPv6 on the protected hosts. *sigh* If anyone reading
this thinks they can see a better way around this pair of problems, please let
me know.
-Adam