- Kohei Takahashi flast@tsukuba.wide.ad.jp
- C++11 ready compiler
- Boost C++ libraries
- OvenToBoost (a.k.a. Range Extensions)
- Autotools
-
Clone Boost development branch
git clone -b develop --recursive https://github.com/boostorg/boost.git
- Note:
develop
branch is strongly recommended.
-
Apply OvenToBoost
cd boost/libs/range git fetch https://github.com/Flast/range.git refs/heads/oven git merge FETCH_HEAD
-
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.
-
Clone
shinano
git clone -b develop https://github.com/Flast/shinano.git
- Note:
develop
branch is strongly recommended.
-
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
-
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>
- RFC2765 - Stateless IP/ICMP Translation Algorithm (SIIT)
- obsoleted by: RFC6145
- RFC5382 - NAT Behavioral Requirements for TCP
- RFC6052 - IPv6 Addressing of IPv4/IPv6 Translators
- references: RFC1918, RFC5735 - Section 3
- 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
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)