[Jool-list] BIB-less NAT64 (was: NAT64 performance)

Tore Anderson tore at fud.no
Tue Sep 5 05:24:05 CDT 2017


* Alberto Leiva

> There should (in theory) exist a quick way for Jool to tell whether the
> pool4 has been exhausted (ie. there is one existing BIB entry for every
> available pool4 address). If this information were available, it should
> be able to skip *an entire tree traversal* for every translated packet
> that needs the creation of a new BIB entry.

This reminds me of something I've been wondering about. Would it be
possible to do NAT64 with the BIB completely disabled?

The reason I'm asking is a «problem» I've seen with Jool's NAT64: it can
only handle 2^16 * $number_of_addresses_in_pool4 concurrent connections
(per protocol). That means you need quite a lot of IPv4 addresses to
service a large IPv6 user base.

I think it should be possible to re-use IPv4 transport addresses between
IPv6 clients though. You could could end up with session table
containing entries like this:

    IPv6 client:port         Public v4:port        Dest v4:port
#1: [2001:db8::1]:60000  ->  192.0.2.1:54321  ->   ebay.co.uk:443
#2: [2001:db8::a]:40000  ->  192.0.2.1:54321  ->   amazon.com:443
#n: [.................]  ->  192.0.2.1:54321  ->   [............]

This would of course not be RFC compliant, and would break externally
initiated sessions. But that might be an acceptable trade-off, as you
can now support much larger IPv6 user populations behind the same amount
of public IPv4 addresses.

Sander: Nice work with the performance testing! I would be interested in
seeing results for SIIT[-DC] too - what's the baseline performance with
a small (or no) EAMT, and what impact does adding a lot of EAMs have?

Tore


More information about the Jool-list mailing list