Freifunk-Gateway aufsetzen/VPN/vxlan: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
(Die Seite wurde neu angelegt: „==vxlan vpn auf dem Gateway einrichten == als erstes die vxlan interfaces in /etc/network/interfaces../... anlegen: <pre> auto vxbat0 iface vxbat0 inet manual…“)
 
 
(28 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==vxlan vpn auf dem Gateway einrichten ==
== Funktion ==
als erstes die vxlan interfaces in /etc/network/interfaces../... anlegen:
Layer2 Tunnel zwischen node und Gateway.
 
== Installation ==
Keine weitere Installaton notwendig.
 
== Konfiguation ==
 
===vxlan===
Als erstes die vxlan interfaces in /etc/network/interfaces../... anlegen:
<pre>
<pre>
auto vxbat0
auto vxbat0
iface vxbat0 inet manual
iface vxbat0 inet manual
pre-up ip l a dev $IFACE type vxlan id 7 dstport 8472 srcport 8472 8473 local 2a01:4f8:1c0c:70c4::2
pre-up ip l a dev $IFACE type vxlan id 7 dstport 8472 srcport 8472 8473 local ipv6:vom:gate:way
pre-up ip l s dev $IFACE mtu 1422
pre-up ip l s dev $IFACE mtu 1422
post-up batctl -m bat0 if add $IFACE
post-up batctl meshif bat0 if add $IFACE


pre-down batctl -m bat0 if del $IFACE
pre-down batctl -m bat0 if del $IFACE
Zeile 16: Zeile 24:
</pre>
</pre>


Achtung! port ist immer 8472. Nur id, local und die Interfaces anpassen
Achtung! port ist immer 8472. Nur id, local und die Interfaces anpassen.
 
'''id = hoodid'''
 
Jetzt braucht man noch das vxmon.sh Skript


Jetzt braucht man noch das vxmon.sh Skript von hier(Link fehlt noch!!!!)
Nach /usr/local/sbin/vxmon.sh


<pre>
<pre>
Zeile 87: Zeile 99:
WantedBy=multi-user.target
WantedBy=multi-user.target
</pre>
</pre>
Unit enablen -> systemctl enable vxmon


Wie man sieht, können jetzt die Interfaces in /etc/default/vxmon eingetragen werden:
Wie man sieht, können jetzt die Interfaces in /etc/default/vxmon eingetragen werden:
Zeile 94: Zeile 108:
</pre>
</pre>


===Batman===
vxmon starten -> sysemctl start vxmon
Um vxlan zu bevorzugen müssen wir noch was mit batman machen. (kommt noch)
 
===vxlan bevorzugen===
Mit einem neuern batman-adv (batman-adv: 2020.3) kann man eine hop_penalty pro hardif einstellen.
Default ist 30 per hop. Wenn wir für fastd eine hop_penalty von 30 einstellen, wird fastd einen hop teurer.
 
<pre>
/etc/fastd/fff-xxx/up.sh
 
#!/bin/bash
ip l s dev $INTERFACE up
batctl meshif bat0 if add $INTERFACE
batctl hardif $INTERFACE hp 30
</pre>
 
===Eintrag im keyserver===
 
Änderungen am keyserver werden als pullrequest in diesem git gemacht:
https://git.freifunk-franken.de/fbl/keyserver
 
'''Neuer VPN-Eintrag'''
 
'''
        {
            "name": "my_gateway",
            "protocol": "vxlan",
            "address": "url.from.gateway",
            "contact": "mailaddress"
        }
'''

Aktuelle Version vom 30. Mai 2024, 21:45 Uhr

Funktion

Layer2 Tunnel zwischen node und Gateway.

Installation

Keine weitere Installaton notwendig.

Konfiguation

vxlan

Als erstes die vxlan interfaces in /etc/network/interfaces../... anlegen:

auto vxbat0
iface vxbat0 inet manual
pre-up ip l a dev $IFACE type vxlan id 7 dstport 8472 srcport 8472 8473 local ipv6:vom:gate:way
pre-up ip l s dev $IFACE mtu 1422
post-up batctl meshif bat0 if add $IFACE

pre-down batctl -m bat0 if del $IFACE
post-down ip l d dev $IFACE

auto vxbat1
iface vxbat1 inet manual
.... usw.

Achtung! port ist immer 8472. Nur id, local und die Interfaces anpassen.

id = hoodid

Jetzt braucht man noch das vxmon.sh Skript

Nach /usr/local/sbin/vxmon.sh

#!/bin/bash

DEVS=$@

handle_add() {
        mac="${1:?}"
        dev="${2:?}"
        dst="${3:?}"

        echo "bridge fdb append 00:00:00:00:00:00 dst $dst dev $dev"
        bridge fdb append 00:00:00:00:00:00 dst "$dst" dev "$dev"
}

handle_cleanup() {
        mac="${1:?}"
        dev="${2:?}"
        dst="${3:?}"

        if ! bridge fdb show dev "$dev" | grep -v 00:00:00:00:00:00 | grep "$dst"; then
                bridge fdb del 00:00:00:00:00:00 dst "$dst" dev "$dev"
        fi
}

handle_entry() {
        cmd=handle_add

        if [ "$1" = "Deleted" ]; then
                shift
                cmd=handle_cleanup
        fi

        mac="${1:?}"
        dev="${3:?}"

        grep -w "$dev" <<<"$DEVS" || return

        if [ "$mac" = "00:00:00:00:00:00" ]; then
                echo "skipping" "$@"
                return
        fi

        $cmd "$mac" "$3" "$5"
}


bridge monitor fdb | while read args; do
        handle_entry $args
done

Zum Starten des Skriptes kann man sich eine unit anlegen:

# cat /etc/systemd/system/vxmon.service 
[Unit]
Description=vxlan monitoring to add peers
Before=networking.service

[Service]
Type=simple
EnvironmentFile=/etc/default/vxmon
ExecStart=/usr/local/sbin/vxmon.sh $INTERFACES
Restart=on-abort

[Install]
WantedBy=multi-user.target

Unit enablen -> systemctl enable vxmon

Wie man sieht, können jetzt die Interfaces in /etc/default/vxmon eingetragen werden:

# cat /etc/default/vxmon 
# Hier alle vxlan interfaces eintragen. z.B
# INTERFACES="vxbat0 vxbat2"

vxmon starten -> sysemctl start vxmon

vxlan bevorzugen

Mit einem neuern batman-adv (batman-adv: 2020.3) kann man eine hop_penalty pro hardif einstellen. Default ist 30 per hop. Wenn wir für fastd eine hop_penalty von 30 einstellen, wird fastd einen hop teurer.

/etc/fastd/fff-xxx/up.sh

#!/bin/bash
ip l s dev $INTERFACE up
batctl meshif bat0 if add $INTERFACE
batctl hardif $INTERFACE hp 30

Eintrag im keyserver

Änderungen am keyserver werden als pullrequest in diesem git gemacht: https://git.freifunk-franken.de/fbl/keyserver

Neuer VPN-Eintrag

       {
           "name": "my_gateway",
           "protocol": "vxlan",
           "address": "url.from.gateway",
           "contact": "mailaddress"
       }