]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add NAT64 CLAT implementation as defined in RFC6877.
authorae <ae@FreeBSD.org>
Mon, 18 Mar 2019 11:44:53 +0000 (11:44 +0000)
committerae <ae@FreeBSD.org>
Mon, 18 Mar 2019 11:44:53 +0000 (11:44 +0000)
commit93a7173b744f01de6f104418db8654872cb618da
tree0964d00626b0f6d2a7866bc2f031410dd7d69083
parent2770fa04e109d5fd3ff596519216f6547c53f981
Add NAT64 CLAT implementation as defined in RFC6877.

CLAT is customer-side translator that algorithmically translates 1:1
private IPv4 addresses to global IPv6 addresses, and vice versa.
It is implemented as part of ipfw_nat64 kernel module. When module
is loaded or compiled into the kernel, it registers "nat64clat" external
action. External action named instance can be created using `create`
command and then used in ipfw rules. The create command accepts two
IPv6 prefixes `plat_prefix` and `clat_prefix`. If plat_prefix is ommitted,
IPv6 NAT64 Well-Known prefix 64:ff9b::/96 will be used.

  # ipfw nat64clat CLAT create clat_prefix SRC_PFX plat_prefix DST_PFX
  # ipfw add nat64clat CLAT ip4 from IPv4_PFX to any out
  # ipfw add nat64clat CLAT ip6 from DST_PFX to SRC_PFX in

Obtained from: Yandex LLC
Submitted by: Boris N. Lytochkin
MFC after: 1 month
Relnotes: yes
Sponsored by: Yandex LLC
15 files changed:
sbin/ipfw/Makefile
sbin/ipfw/ipfw.8
sbin/ipfw/ipfw2.c
sbin/ipfw/ipfw2.h
sbin/ipfw/main.c
sbin/ipfw/nat64clat.c [new file with mode: 0644]
sys/conf/files
sys/modules/ipfw_nat64/Makefile
sys/netinet/ip_fw.h
sys/netinet6/ip_fw_nat64.h
sys/netpfil/ipfw/nat64/ip_fw_nat64.c
sys/netpfil/ipfw/nat64/ip_fw_nat64.h
sys/netpfil/ipfw/nat64/nat64clat.c [new file with mode: 0644]
sys/netpfil/ipfw/nat64/nat64clat.h [new file with mode: 0644]
sys/netpfil/ipfw/nat64/nat64clat_control.c [new file with mode: 0644]