]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r345264:
authorae <ae@FreeBSD.org>
Sun, 14 Apr 2019 12:39:09 +0000 (12:39 +0000)
committerae <ae@FreeBSD.org>
Sun, 14 Apr 2019 12:39:09 +0000 (12:39 +0000)
commit033379e5aa3aa117c9e8117c559e4cb6ff0039f1
tree50b59a2007c787996ff37f285c42f78aae95cd01
parentabcfb4aece52fd4716228f8d6630f505ef2ce4bb
MFC r345264:
  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
  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]