Subject: NATv6 hesitation
To: None <tech-net@netbsd.org>
From: Miles Nordin <carton@Ivy.NET>
List: tech-net
Date: 04/06/2005 17:14:32
--pgp-sign-Multipart_Wed_Apr__6_17:14:31_2005-1
Content-Type: text/plain; charset=US-ASCII
>>>>> "pj" == Pelle Johansson <morth@morth.org> writes:
pj> [NAT] would be needed to completely get rid of an IPv4
pj> internal network but still provide connectivity to IPv4 sites.
That sounds useful, but it would need support on the client as well.
Is this the RFC1933 stuff mentioned in the comment in
/etc/rc.d/network?
It seems like that would be a special case of NAT not totally
analagous to ipnat.conf NAT, because the destination address and the
packet's AF are being translated, not just the source address/port as
with normal NAT. Extending NAT analagously would leave you without
this feature, and this feature could be provided cleanly and narrowly
without inviting sysadmins to create complicated unwholesome v6-to-v6
NAT networks.
I just want to avoid being responsible for pressuring engineers to
invent the next PPPoE disaster, avoid by not asking for functionality
that isn't best-common-practice. I thought there was a consensus to
avoid NAT for IPv6, though I'm not very up-to-date, i think i just saw
some mumbling on kame.net. Maybe the tide turned.
For the load balancing, I can think of three non-NAT ways.
* BGP anycast (for DNS servers spread out geographically) or
equal-cost-multipath (for DNS servers on one subnet) routing.
works for UDP services like DNS, stateless NTP, maybe spam-DCC. I
heard of one person actually using this for DNS. You configure the
server cluster's advertised address, the same address, on each
member's lo0 and assign different addresses to each member's
physical interfaces.
* an extension of this idea. PF claims to support round-robin pools
as the destination of the 'route-to' (like fastroute,
firewall-layer routing not using the regular routing table except
for arp/ndp) verb. You could use 'pass out inet6 tcp from any to
<cluster::address_on_lo0's> route-to { pool of physical interface
next-hops, ... } keep state' so that one TCP session always goes to
the same cluster member. I don't know if this works well now, but
since it is clean and well-defined, you could fix it if necessary
rather than invent NAT from scratch.
* multicast. someone in connection with carp/ucarp mentioned
clusters using L2 (not L3) multicast addresses and servers
configured to receive all traffic but pay attenton only to disjoint
sets of clients. I think this can't work at L3 since multicast
address should never appear in a packet's source address, but I
don't know multicast well, and you can always ask to change the
standard if you can think of something well-defined. If you
threaten to use NATv6 if ignored, people will probably listen
because it is so unwanted.
--pgp-sign-Multipart_Wed_Apr__6_17:14:31_2005-1
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (NetBSD)
iQCVAwUAQlRROInCBbTaW/4dAQJmgQP/YEZ8PjunCEKtnKk68yhccP+w5KaLL8zZ
34a4eZ2d4MHwiBaXl5YMkZLops4lp3R6AxQaCSgyYtBgBLudk5Bc30uHvVuhTRZ/
4BjxL+f46HiMTXbDDWtI0x9SrsRvmuMxeUdChPCYKd1+oeijieOVFAlyLrRK1oLn
aEUj2cO8Nxc=
=nuwo
-----END PGP SIGNATURE-----
--pgp-sign-Multipart_Wed_Apr__6_17:14:31_2005-1--