IPv6 NAT64 Whitepaper
IPv6 NAT64 Whitepaper
IPv6 NAT64 Whitepaper
20
Mark Halsall
Security Engineer
14 March 2019
2. IP address lookup
4. DNS64 response to client
With embedded IP address
(AAAA 64:ff9b::6841:2f03) 3. A record response with
DNS64
DNS64 104.65.47.3 disney.com
disney.com
server
server 104.65.47.3
104.65.47.3
7. Server response to NAT64
gateway
1. Client DNS request
5. Client request to
embedded IP address 6. NAT64 gateway request to
(64:ff9b::6841:2f03) IPv4 server using dual NAT
(198.53.113.x =>
Client 8. NAT64 response to client 104.65.47.3)
2001:470:8:ac1::3 64:ff9b::6841:2f03 =>
2001:470:8:ac1::3 NAT64
NAT64
Gateway
Gateway
2001:470:8:ac1::1
2001:470:8:ac1::1
internal
internal
198.53.113.1
198.53.113.1
external
external
External GW
CONS OLE
Check Point
Ò
10G 1 2 3 4 S YNC
S O F TW A R E T E C H N O L O GI E S L T D .
CONSO LE ?
1 2 Check Point
ENTER
RES E T 5800
ESC
CONS OLE
5 6 7 8 MGMT LOM
192.0.2.1
192.0.2.36
Lab GW
CONS OLE
Check Point
Ò
10G 1 2 3 4 S YNC
S O F TW A R E T E C H N O L O GI E S L T D .
CONSO LE ?
1 2 Check Point
ENTER
RES E T 5800
ESC
CONS OLE
5 6 7 8 MGMT LOM
192.168.250.1/24
198.51.113.1 –
192.168.250.4/24 198.51.113.10
NAT64 GW
CONS OLE
Check Point
Ò
10G 1 2 3 4 S YNC
S O F TW A R E T E C H N O L O GI E S L T D .
CONSO LE ?
1 2 Check Point
ENTER
RES E T 5800
ESC
CONS OLE
5 6 7 8 MGMT LOM
2001:470:8:ac1::3
192.168.250.5
DNS64
DNS64 Client
Server
Server 2001:470:8:ac1::3
2001:470:8:ac1::4
2001:470:8:ac1::4
Green gateway is an internet gateway. Not strictly necessary but used here.
Orange is the GW between ‘production’ (green) and lab networks.
Red is a dedicated IPv6 NAT64 gateway.
Blue is the address range that IPv6 client addresses are NATted to.
To define a source IPv6 Network object that represents the source IPv6 address, which you translate to
source IPv4 addresses:
1. Click Objects menu > New Network.
2. In the Object Name field, enter the applicable name.
3. In the Comment field, enter the applicable text.
4. Click the General page of this object.
5. In the IPv4 section:
Do not enter anything.
6. In the IPv6 section:
a. In the Network address field, enter the IPv6 address of your IPv6 network, which
you translate to source IPv4 addresses. (2001:470:8:ac1::)
b. In the Prefix field, enter the prefix of your IPv6 network. (96)
7. On the NAT page of this object:
Do not configure anything.
8. Click OK.
To define a translated destination IPv6 Host object with static IPv6 address that represents the IPv6 address,
to which the IPv6 sources connect:
1. Click Objects menu > New Host.
2. In the Object Name field, enter the applicable name.
3. In the Comment field, enter the applicable text.
4. Click the General page of this object.
5. In the IPv4 section:
Do not enter anything.
6. In the IPv6 section:
In the Network address field, enter the destination static IPv6 address, to which the IPv6 sources
connect.
7. On the NAT page of this object:
Do not configure anything.
8. Configure the applicable settings on other pages of this object.
9. Click OK.
To define a translated source IPv4 Address Range object that represents the IPv4 addresses, to which you
translate the source IPv6 addresses, follow the steps below. Our example uses the example IP range
198.51.113.1 – 198.51.113.10:
©2019 Check Point Software Technologies Ltd. All rights reserved | P. 6
1. Click Objects menu > More object types > Network Object > Address Range > New
Address Range.
2. In the Object Name field, enter the applicable name.
3. In the Comment field, enter the applicable text.
4. Click the General page of this object.
5. In the IPv4 section:
a. In the First IP address field, enter the first IPv4 address of your IPv4 addresses
range, to which you translate the source IPv6 addresses.
b. In the Last IP address field, enter the last IPv4 address of your IPv4 addresses
range, to which you translate the source IPv6 addresses.
Notes:
§ This IPv4 addresses range must not use private IPv4 addresses (see RFC
1918 and Menu > Global properties > Non Unique IP Address Range).
§ This IPv4 addresses range must not be used on the IPv4 side of the network.
§ We recommend that you define a large IPv4 addresses range for more concurrent
NAT64 connections.
6. In the IPv6 section:
Do not enter anything.
7. On the NAT page of this object:
Do not configure anything.
8. Click OK.
To summarize, you must configure only these Manual NAT64 rules (rule numbers are for convenience only):
Ruleset
IPv6 gateway
Security rule
NAT rule
Lab gateway
Security rule
IPv6NAT64range is 198.51.113.1 – 198.51.113.10 (same object as above). We are hiding it behind the
LabGW so that there aren’t any adjustments needed to the ‘prod’ network. These IPv4 addresses have to
be unused elsewhere in the configuration, and I had to set up routing and antispoofing, as well as
standard hide NAT so that they had internet access.
The other big piece is a DNS server that can do DNS64. It basically takes an IPv4 address and translates
it into the last 32 bits of an IPv4 address embedded in IPv6. The format is 64:ff9b::XX:XX where XX:XX is
the IPv4 address translated octet-by-octet into hex. This address is passed to the client, and the NAT64
rule actually turns the source (client) IPv6 as well as the destination IPv6 addresses into IPv4 addresses.
A standard, up to date bind DNS server can do DNS64 by default, and the config is very simple:
options {
directory "/var/cache/bind";
forwarders {
192.0.2.57;
};
dnssec-validation auto;
The two most important lines are the listen-on-v6 and dns64 lines, as they enable IPv6 support and
DNS64 support respectively.