Skip to content
This repository has been archived by the owner on Oct 3, 2019. It is now read-only.
/ shinano Public archive

(Stateless) NAT64 user-mode implementation for Linux

License

Unknown, BSL-1.0 licenses found

Licenses found

Unknown
COPYING
BSL-1.0
LICENSE_1_0.txt
Notifications You must be signed in to change notification settings

Flast/shinano

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

(Stateless) NAT64 user-mode implementation for Linux

Author

Pre-requirements

Getting Started

  1. Clone Boost development branch

    git clone -b develop --recursive https://github.com/boostorg/boost.git
    
  • Note: develop branch is strongly recommended.
  1. Apply OvenToBoost

    cd boost/libs/range
    git fetch https://github.com/Flast/range.git refs/heads/oven
    git merge FETCH_HEAD
    
  2. Build Boost

    cd boost
    ./bootstrap/sh --with-libraries=chrono,system
    ./b2 headers
    ./b2
    ./b2 install --prefix=/path/to # if desired
    
  • Note: Installing Boost is unnecessary but strongly recommended to lookup .so correctly.
  1. Clone shinano

    git clone -b develop https://github.com/Flast/shinano.git
    
  • Note: develop branch is strongly recommended.
  1. Configure and make

    cd shinano
    libtoolize
    aclocal
    autoheader
    automake -a --foreign
    autoconf
    ./configure CPPFLAGS=-I/path/to/boost LDFLAGS=-L/path/to/boost/stage/lib
    
  2. Run

    sudo firewall-cmd --zone external --change-interface <eth-if-name> # to NAPT44 be enabled
    sudo ip tuntap add dev <tun-if-name> mode tun
    sudo ip link set <tun-if-name> up
    sudo ip -4 route add 100.64.0.0/10 dev <tun-if-name>
    sudo ip -6 route add 64:ff9b::/96 dev <tun-if-name>
    sudo ./src/shinano <tun-if-name>
    

References

  • RFC2765 - Stateless IP/ICMP Translation Algorithm (SIIT)
  • RFC5382 - NAT Behavioral Requirements for TCP
  • RFC6052 - IPv6 Addressing of IPv4/IPv6 Translators
  • RFC6144 - Framework for IPv4/IPv6 Translation
  • RFC6145 - IP/ICMP Translation Algorithm
  • RFC6146 - Stateful NAT64: Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers
  • RFC6791 - Stateless Source Address Mapping for ICMPv6 Packets

License

          Copyright Kohei Takahashi 2014
 Distributed under the Boost Software License, Version 1.0.
    (See accompanying file LICENSE_1_0.txt or copy at
          http://www.boost.org/LICENSE_1_0.txt)

About

(Stateless) NAT64 user-mode implementation for Linux

Resources

License

Unknown, BSL-1.0 licenses found

Licenses found

Unknown
COPYING
BSL-1.0
LICENSE_1_0.txt

Stars

Watchers

Forks

Packages

No packages published

Languages