freebsd-skq/sys
ae 8c03d2551f Add ipfw_nat64 module that implements stateless and stateful NAT64.
The module works together with ipfw(4) and implemented as its external
action module.

Stateless NAT64 registers external action with name nat64stl. This
keyword should be used to create NAT64 instance and to address this
instance in rules. Stateless NAT64 uses two lookup tables with mapped
IPv4->IPv6 and IPv6->IPv4 addresses to perform translation.

A configuration of instance should looks like this:
 1. Create lookup tables:
 # ipfw table T46 create type addr valtype ipv6
 # ipfw table T64 create type addr valtype ipv4
 2. Fill T46 and T64 tables.
 3. Add rule to allow neighbor solicitation and advertisement:
 # ipfw add allow icmp6 from any to any icmp6types 135,136
 4. Create NAT64 instance:
 # ipfw nat64stl NAT create table4 T46 table6 T64
 5. Add rules that matches the traffic:
 # ipfw add nat64stl NAT ip from any to table(T46)
 # ipfw add nat64stl NAT ip from table(T64) to 64:ff9b::/96
 6. Configure DNS64 for IPv6 clients and add route to 64:ff9b::/96
    via NAT64 host.

Stateful NAT64 registers external action with name nat64lsn. The only
one option required to create nat64lsn instance - prefix4. It defines
the pool of IPv4 addresses used for translation.

A configuration of instance should looks like this:
 1. Add rule to allow neighbor solicitation and advertisement:
 # ipfw add allow icmp6 from any to any icmp6types 135,136
 2. Create NAT64 instance:
 # ipfw nat64lsn NAT create prefix4 A.B.C.D/28
 3. Add rules that matches the traffic:
 # ipfw add nat64lsn NAT ip from any to A.B.C.D/28
 # ipfw add nat64lsn NAT ip6 from any to 64:ff9b::/96
 4. Configure DNS64 for IPv6 clients and add route to 64:ff9b::/96
    via NAT64 host.

Obtained from:	Yandex LLC
Relnotes:	yes
Sponsored by:	Yandex LLC
Differential Revision:	https://reviews.freebsd.org/D6434
2016-08-13 16:09:49 +00:00
..
amd64 The pmap_delayed_invl_wait() function blocks on turnstile, it does not 2016-08-11 12:37:11 +00:00
arm sys: replace comma with semicolon when pertinent. 2016-08-09 19:42:20 +00:00
arm64 Implement promotions and demotions in the arm64 pmap code. For now we don't 2016-08-12 10:29:34 +00:00
boot Add defines needed to export SMBIOS serial numbers 2016-08-12 19:47:20 +00:00
bsm
cam cam/da: Add quirk for I-O Data USB Flash Disk 2016-08-11 03:12:56 +00:00
cddl fix a zfs cross-device rename crash introduced in r303763 2016-08-09 06:11:24 +00:00
compat Provide the CloudABI vDSO to its executables. 2016-08-10 21:02:41 +00:00
conf Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
contrib Consistently use device_t 2016-08-09 19:32:06 +00:00
crypto Connect the SHA-512t256 and Skein hashing algorithms to ZFS 2016-05-31 04:12:14 +00:00
ddb Fix ddb "show proc" to show full arguments 2016-08-01 22:41:50 +00:00
dev Avoid taking PROC_LOCK in syscalls if not being traced. 2016-08-12 16:05:53 +00:00
fs Update the nfsstats structure to include the changes needed by 2016-08-12 22:44:59 +00:00
gdb
geom Do not invoke resize event if initial disk size is zero. Some disks 2016-08-01 20:54:54 +00:00
gnu Revert changes for local testing, inadvertantly commited in r300811. 2016-05-26 23:59:42 +00:00
i386 Unconditionally perform checks that FPU region was entered, when #NM 2016-08-10 13:44:03 +00:00
isa sys/isa: minor spelling fixes. 2016-05-03 21:51:52 +00:00
kern Remove unused "X" vnode lock assertion, somehow missed in r303743. 2016-08-12 22:22:11 +00:00
kgssapi kgssapi: insignificant spelling fix. 2016-05-03 22:05:03 +00:00
libkern sys: Make use of our rounddown() macro when sys/param.h is available. 2016-04-30 14:41:18 +00:00
mips Consistently use device_t 2016-08-09 19:32:06 +00:00
modules Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
net Update iflib to support more NIC designs 2016-08-12 21:29:44 +00:00
net80211 sys: replace comma with semicolon when pertinent. 2016-08-09 19:42:20 +00:00
netgraph Avoid panic from ng_uncallout when unpluggin ethernet cable with active 2016-08-08 19:31:01 +00:00
netinet Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
netinet6 Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
netipsec Get closer to a VIMAGE network stack teardown from top to bottom rather 2016-06-21 13:48:49 +00:00
netnatm
netpfil Add ipfw_nat64 module that implements stateless and stateful NAT64. 2016-08-13 16:09:49 +00:00
netsmb sys/net*: minor spelling fixes. 2016-05-03 18:05:43 +00:00
nfs Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
nfsclient
nfsserver
nlm When sleeping waiting for either local or remote advisory lock, 2016-06-26 20:08:42 +00:00
ofed mthca: Add a wrapper for the firmware's DIAG_RPRT command. 2016-08-05 21:34:09 +00:00
opencrypto opencrypto AES-ICM: Fix heap corruption typo 2016-08-01 22:57:03 +00:00
pc98 Move 'device pci' for the PCI bus driver to the MI NOTES file. 2016-04-29 23:53:55 +00:00
powerpc Revert r303890 for now here as camdd fails to build on powerpc* 2016-08-11 15:06:12 +00:00
riscv o Remove operation in machine mode. 2016-08-10 12:41:36 +00:00
rpc Hide the boottime and bootimebin globals, provide the getboottime(9) 2016-07-27 11:08:59 +00:00
security Add AUE_WAIT6 handling to the BSM conversion switch statement, reusing 2016-07-11 13:06:17 +00:00
sparc64 sys: replace comma with semicolon when pertinent. 2016-08-09 19:42:20 +00:00
sys Update iflib to support more NIC designs 2016-08-12 21:29:44 +00:00
teken
tests
tools Consider CROSS_BINUTILS_PREFIX environment variable so we use correct 2016-08-10 13:49:17 +00:00
ufs Replace all remaining calls to vprint(9) with vn_printf(9), and remove 2016-08-10 16:12:31 +00:00
vm Correct errors and clean up the comments on the active queue scan. 2016-08-12 03:22:58 +00:00
x86 sys: replace comma with semicolon when pertinent. 2016-08-09 19:42:20 +00:00
xdr
xen xen: Correct typo in #undef for symbol NBPL 2016-06-06 14:55:46 +00:00
Makefile