BOSixNet -- Build Own IPv6 Network

Copyright: 2013-2015 Boris Pek <tehnick-8@mail.ru>
License: Expat

Homepage: https://github.com/tehnick/bosixnet

Deb packages:
  https://github.com/tehnick/bosixnet-debian
  https://launchpad.net/~tehnick/+archive/bosixnet

Description:
Project should be useful when you have to administer many computers
distributed through different networks and connected via NAT. In most of cases
you may just install miredo, gogoc or any other tunnel broker's software and
these computers will be available via IPv6 addresses. BOSixNet includes the
collection of tools for automatic updating the list of such hosts.

Project consist of two parts:
1) bosixnet-webui -- FastCGI program which passively listens for incoming
   connections and generates list of hosts in your IPv6 network. This daemon
   prepares data which may be put directly into /etc/hosts.
2) bosixnet-daemon -- shell script which periodically sends information about
   current IPv6 address to remote server and updates local /etc/hosts based on
   data received from that remote server. It is expected that bosixnet-webui
   is launched on that remote server.

For building own IPv6 network you need to install miredo, gogoc or any other
tunnel broker software on all hosts where bosixnet-daemon will be launched.
Of course you do not need any of these programs if your Internet provider
gives you direct access to IPv6 network. Unfortunately this is too rare
situation now.

There are few possible solutions for remote server with bosixnet-webui:
1) Fixed IPv4 or IPv6 address. But if you have statical IP you may use other
   solutions (like VPN) and this project is not very useful in such case.
2) Dynamic IPv4 address + fixed domain name. For example, you may any DDNS
   provider.
3) Dynamic IPv6 address + fixed domain name. Some tunnel brokers give special
   domain names for their clients. For example, if you are registered on
   Freenet6 and use gogoc, you will have domain name like:
   <your-login>.broker.freenet6.net
4) etc.

bosixnet-webui is a small program with very few dependencies. It may be easily
launched on embedded devices.

Important notes:
1) In almost all cases the speed of access via teredo is much better than via
   tunnel brokers. Also miredo is very easy in use.
2) If two computers are in the same LAN, direct connection via teredo is not
   possible between them. So at least one of them should use tunnel broker.

Some useful links:
  https://en.wikipedia.org/wiki/IPv6
  https://en.wikipedia.org/wiki/Teredo_tunneling
  https://en.wikipedia.org/wiki/Miredo
  https://github.com/jorti/gogoc

Examples of using Web UI:
  http://ipv6.example.com/bosixnet/main-laptop?update=2001:0:53aa:64c:2f53:5e65:9258:72de
  http://ipv6.example.com/bosixnet/main-laptop
  http://ipv6.example.com/bosixnet/home-pc?update=2001:0:53aa:64c:3574:128e:9291:a021
  http://ipv6.example.com/bosixnet/home-pc
  http://ipv6.example.com/bosixnet/wife-netbook?update=2001:0:53aa:64c:26e0:3bf2:9258:72de
  http://ipv6.example.com/bosixnet/wife-netbook
  http://ipv6.example.com/bosixnet/counter
  http://ipv6.example.com/bosixnet/hosts
  http://ipv6.example.com/bosixnet/

Example of configuring nginx:
Edit file /etc/nginx/sites-available/default and paste something like this:
    location /bosixnet/ {
        fastcgi_pass   localhost:33169;
        include        /etc/nginx/fastcgi_params;
    }

Example of configuring lighttpd:
Edit file /etc/lighttpd/lighttpd.conf and paste something like this:
fastcgi.server = ( "/bosixnet/" =>
  (( "host" => "127.0.0.1",
    "port" => 33169,
    "check-local" => "disable",
    "docroot" => "/var/tmp/bosixnet",
  ))
)

