Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Hinweis

Wir verwendet seit geraumer Zeit Ansible zur Server Konfiguration und der Inhalt dieser Seite wurde nicht weiter gepflegt. Details findest du unter https://github.com/FreiFunkMuenster/Ansible-Freifunk-Gateway. Sprich uns bei Fragen gerne im Forum an.


In diesem Artikel wird beschrieben, wie du einen Server für Freifunk Münsterland als Gateway-Server mit fastd einrichten kannst.


Für den Zugang zum Internet benötigen die meisten Freifunk-Netze mindestens zwei Serverdienste:

...

Damit werden alle Pakete, die über die Bridge rein kommen, mit dem 0x1-Flag markiert, und damit über Routing-Tabelle 42 geschickt. Das bedeutet, diese gehen nicht über die standard Routing-Tabelle. Außerdem gibt es noch 2 Regeln für DNS, dass auch DNS-Pakete (Port 53 TCP/UDP) über die Tabelle 42 geschickt werden. Ansonsten würden DNS-Anfragen über deine normale Internetverbindung raus gehen.











Wiki-Markup
<file - iptables.up.rules>
*filter 
:INPUT ACCEPT \[0:0]
:FORWARD ACCEPT \[0:0]
:OUTPUT ACCEPT \[0:0]
COMMIT




















  1. Wiki-Markup
    Regeln zum markieren eingehender Pakete
    *mangle
    :PREROUTING ACCEPT \[0:0]
    :INPUT ACCEPT \[0:0]
    :FORWARD ACCEPT \[0:0]
    :OUTPUT ACCEPT \[0:0]
    :POSTROUTING ACCEPT \[0:0]
    -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -o tun-+ -j TCPMSS --set-mss 1280
    -A PREROUTING -i br0 -j MARK --set-xmark 0x1/0xffffffff
    -A OUTPUT -o eth0 -p udp --dport 53 -j MARK --set-xmark 0x1/0xffffffff
    -A OUTPUT -o eth0 -p tcp --dport 53 -j MARK --set-xmark 0x1/0xffffffff
    COMMIT



















  2. Wiki-Markup
    Route nach extern per nat.
    *nat
    :PREROUTING ACCEPT \[0:0]
    :INPUT ACCEPT \[0:0]
    :OUTPUT ACCEPT \[0:0]
    :POSTROUTING ACCEPT \[0:0]
    -A POSTROUTING -o tun-+ -j SNAT --to-source <öffentliche IPv4 des Gateway>
    COMMIT
    </file>










Diese Regel sorgt dafür, dass dein Router auch das NAT übernimmt.

...

Codeblock
        return (net ~ [::/0]);

}

  1. own networks











Wiki-Markup
function is_self_net() \{
return net ~ \[ fd68:e2ea:a53::/48+ ];
}











  1. freifunk ip ranges in general











Wiki-Markup
function is_freifunk() \{
return net ~ \[ fc00::/7\{48,64},
2001:bf7::/32+];
}











filter hostroute {

Codeblock
        if net ~ 2a03:2260:115::/48 then accept;
        reject;

...

  1. Bind to a fixed address and port, IPv4 and IPv6











Wiki-Markup
bind EXTERNE-IPv4-ADRESSE:14242 interface "eth0";
bind \[EXTERNE-IPv6-ADRESSE]:14242 interface "eth0";











  1. Set the user, fastd will work as

...

  1. It is not safe to start if we don't have a default configuration...











Wiki-Markup
if \[ ! -f "$DHCPD_DEFAULT" ]; then











Codeblock
        echo "$DHCPD_DEFAULT does not exist! - Aborting..."
        if [ "$DHCPD_DEFAULT" = "/etc/default/isc-dhcp6-server" ]; then
                echo "Run 'dpkg-reconfigure isc-dhcp-server' to fix the problem."
        fi
        exit 0

...

  1. Read init script configuration











Wiki-Markup
\[ -f "$DHCPD_DEFAULT" ] && . "$DHCPD_DEFAULT"











NAME=dhcpd
DESC="ISC DHCP6 server"

...

  1. try to read pid file name from config file, with fallback to /var/run/dhcpd.pid











Wiki-Markup
if \[ -z "$DHCPD_PID" ]; then











Codeblock
        DHCPD_PID=$(sed -n -e 's/^[ \t]*pid-file-name[ \t]*"(.*)"[ \t]*;.*$/\1/p' < "$DHCPD_CONF" 2>/dev/null | head -n 1)

...

  1. Regexps for files to ignore











Wiki-Markup
ignore_file \[\#~]$
ignore_file DEADJOE$
ignore_file \.bak$
ignore_file %$
ignore_file \.dpkg-(tmp|new|old|dist)$
ignore_file \.rpm(save|new)$
ignore_file \.pod$











  1. Set this if the client doesn't report the correct hostname when
  2. telnetting to localhost, port 4949
    #
    host_name freifunk-gateway-zz

...

  1. Which address to bind to;
    #host *
  2. host 127.0.0.1











Wiki-Markup
host \[2a03:2260:115::z]











  1. And which port

port 4949
</file>
Hierbei ist der Eintrag host gegen die IPv6-Adresse deines Servers im Freifunknetz (also des br0-Interfaces) zu ersetzen, und host_name gegen den gewünschten Hostnamen.

...