Tinc

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

tinc ist ein Virtual Privat Network (VPN) Dienst der Tunnels und Verschlüsselung verwendet, um sichere Verbindungen zwischen zwei Hosts herzustellen. tinc ist freie Software und unter der GNU General Public License veröffentlicht.

Features

  • Verschlüsselung, Authentifizierung und Daten-Kompression
  • Automatisches mesh-routing
  • Einfaches Erweitern des VPNs
  • Möglickeit Ethernet Segmente zu brücken (Bridging)
  • Unterstützung für viele Betriebssysteme (Linux, FreeBSD, OpenBSD, NetBSD, MacOS/X, Solaris, Windows 2000 und XP)
  • Unterstützung von IPv6

(Quelle: http://www.tinc-vpn.org/)

tinc im Freifunk-Netz

In Freifunk-Netzen ist tinc besonders attraktiv, da darüber mehrere getrennte Funkwolken über das Internet miteinander verbunden werden können. Der Dienst arbeitet dabei zugleich als Server und Client und erlaubt mehrere Verbindungen gleichzeitig. Fällt ein VPN-Zugangspunkt aus, wird automatisch einer der Anderen konfigurierten Zugangspunkte verwendet. Durch die Dezentralität sind die abgelegenen Funkwolken nicht von einem zentralen VPN-Server abhängig.


Startscript FreifunkFirmware WhiteRussian

#! /bin/sh
#
# System startup script for tinc
# $Id: init.d,v 1.14.2.4 2000/12/05 09:03:41 zarq Exp $
#
# Based on Lubomir Bulej's Redhat init script.
#
# Modified for openWrt by Daniel Paufler <d.paufler@leo34.net>
#
# Create a file $NETSFILE (/etc/tinc/nets.boot), and put all the names of
# the networks in there.  These names must be valid directory names under
# $TCONF (/etc/tinc).  Lines starting with a # will be ignored in this
# file.
#

DAEMON="/usr/sbin/tincd"
NAME="tinc"
DESC="tinc daemons"
TCONF="/etc/tinc"
NETSFILE="$TCONF/nets.boot"
NETS=""

test -f $DAEMON || exit 0

find_nets () {
  if [ ! -f $NETSFILE ] ; then
    echo "Please create $NETSFILE."
    exit 0
  fi
  NETS="`egrep '^[ ]*[a-zA-Z0-9_-]+[ ]*$' $NETSFILE`"
}

case "$1" in
  start)
    find_nets
    echo -n "Starting $DESC:"
        #do load the tun module - dpa
        insmod tun

    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA
    done
    echo "."
  ;;
  stop)
    find_nets
    echo -n "Stopping $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
    done
    echo "."
  ;;
  reload|force-reload)
    find_nets
    echo -n "Reloading $DESC configuration:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -kHUP
    done
    echo "."
  ;;
  restart)
    find_nets
    echo -n "Restarting $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
      sleep 1
      $DAEMON -n $n $EXTRA
    done
    echo "."
  ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|reload|restart|force-reload}"
    exit 1
  ;;
esac

exit 0

Startscript Kamikaze

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=49

DAEMON="/usr/sbin/tincd"
NAME="tinc"
DESC="tinc daemons"
TCONF="/etc/tinc"
NETSFILE="$TCONF/nets.boot"
NETS=""

find_nets () {
  if [ ! -f $NETSFILE ] ; then
    echo "Please create $NETSFILE."
    exit 0
  fi
  NETS="`egrep '^[ ]*[a-zA-Z0-9_-]+[ ]*$' $NETSFILE`"
}

start () {
    find_nets
    echo -n "Starting $DESC:"
        #do load the tun module - dpa
        insmod tun

    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA
    done
    echo "."
}

stop() {
    find_nets
    echo -n "Stopping $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
    done
    echo "."
}

restart () {
    find_nets
    echo -n "Restarting $DESC:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -k
      sleep 1
      $DAEMON -n $n $EXTRA
    done
    echo "."
}

reload () {
    find_nets
    echo -n "Reloading $DESC configuration:"
    for n in $NETS ; do
      echo -n " $n"
      $DAEMON -n $n $EXTRA -kHUP
    done
    echo "."
}

OpenBSD und switched mode

Tinc erkennt derzeit (1.0.8) bei OpenBSD nicht, ob das Device tun (Layer 3) oder tap (Layer 2) ist. Um dennoch den switched mode mit OpenBSD zu verwenden:

  • Tunnel auf Layer 2 stellen mit link0: ifconfig link0 tun0 ...
  • undokumentierte Option "DeviceType = tap" in tinc.conf hinzufügen

Das Problem soll in kommenden Versionen gefixt werden.

Weblinks

Freifunk-Anleitungen


Siehe auch