]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r345264:
authorAndrey V. Elsukov <ae@FreeBSD.org>
Sun, 14 Apr 2019 10:44:06 +0000 (10:44 +0000)
committerAndrey V. Elsukov <ae@FreeBSD.org>
Sun, 14 Apr 2019 10:44:06 +0000 (10:44 +0000)
commit5ba983e0f011d49cee858293796e62c9c746f702
tree4d497b25d55d8ac7935d2dc58f9317e4e7b085e4
parentb5784eb502a680bfcc6cea9f7e0115d8dfd45756
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]