• Verein
  • Freifunk
  • namespace
  • Hey, Alter!
Gantry 5

Freifunk Gera-Greiz

  • Mitmachen
  • Firmware
  • Wiki
  • Kalender
  • Karte
  • Netzwerk
  1. Aktuelle Seite:  
  2. Startseite
  3. Wiki
  4. Freifunk
  5. Dokumentation
  6. Server

batman-adv und alfred übersetzen (Debian)

Pakete

# sudo apt-get install linux-headers-amd64
sudo apt-get install build-essential cmake bison libcap-dev libsodium-dev libjson-c-dev bridge-utils xz-utils wget pkg-config libnl-genl-3-dev libnl-3-dev
sudo apt-get remove batctl

batman-adv

cd /usr/local/src

wget https://downloads.open-mesh.org/batman/releases/batman-adv-2021.1/batman-adv-2021.1.tar.gz
tar -xf batman-adv-2021.1.tar.gz
cd batman-adv-2021.1/
make
sudo make install

batctl

cd /usr/local/src

wget https://downloads.open-mesh.org/batman/releases/batman-adv-2021.1/batctl-2021.1.tar.gz
tar -xf batctl-2021.1.tar.gz
cd batctl-2021.1/
make
sudo make install

alfred

libuecc

cd /usr/local/src

wget https://git.universe-factory.net/libuecc/snapshot/libuecc-7.tar
tar -xf libuecc-7.tar
cd libuecc-7/
cmake .
make
sudo make install
sudo ldconfig

alfred

{{{ cd /usr/local/src

wget https://downloads.open-mesh.org/batman/releases/batman-adv-2017.3/alfred-2017.3.tar.gz tar -xf alfred-2017.3.tar.gz cd alfred-2017.3/ make CONFIG_ALFRED_GPSD=n sudo make CONFIG_ALFRED_GPSD=n install }}}

Details
Geschrieben von: Eric
Kategorie: Server
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 04. Juli 2021

Mesh für Server (Debian, Tunneldigger, Respondd)

Dies ist eine stark verkürzte Anleitung wie man Mesh auf seinen Server bekommt. Wichtig: die IPs anpassen!

Software

Tunneldigger

cd /opt/
git clone https://github.com/wlanslovenija/tunneldigger.git
cd tunneldigger/client/

cmake .
make

/etc/modules:

l2tp_eth

/etc/systemd/system/tunneldigger.service

[Unit]
Description=Tunneldigger-client
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root
PIDFile=/run/tunneldigger.pid
ExecStart=/opt/tunneldigger/client/tunneldigger -u "%H" -b 1.vpn.freifunk-gera-greiz.de:20181 -b 2.vpn.freifunk-gera-greiz.de:20181 -b 3.vpn.freifunk-gera-greiz.de:20181 -i mesh-vpn-l2tp-1 -a
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
{{{ systemctl daemon-reload systemctl enable tunneldigger.service systemctl start tunneldigger.service }}}

Respondd

cd /opt/
git clone https://github.com/ffggrz/ext-respondd.git
cd ext-respondd/
cp alias.json.example alias.json
cp config.json.example config.json

alias.json anpassen!

/opt/ext-respondd/config.json:

{
  "batman": "bat0",
  "bridge": "br-client",
  "wan": "eth0",
  "mesh-vpn": [ "mesh-vpn-l2tp-1", "mesh-vpn-l2tp-2", "mesh-vpn-l2tp-3"]
}

/etc/systemd/system/ext-respondd.service:

[Unit]
Description=ext-respondd (respondd Status for Servers)
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/ext-respondd
ExecStart=/opt/ext-respondd/ext-respondd.py

[Install]
WantedBy=multi-user.target
{{{ systemctl daemon-reload systemctl enable ext-respondd.service }}}

Netzwerk

Interfaces

/etc/network/interfaces.d/freifunk:

{{{ auto br-client iface br-client inet static mtu 1380 bridge-stp no bridge-fd 0 bridge-hello 10 bridge_ports none address 10.181.0.161 netmask 255.255.192.0

iface br-client inet6 static address fdb5:78b:64cc::161/64 post-up sysctl net.ipv6.conf.$IFACE.accept_ra=0 post-up sysctl net.ipv6.conf.$IFACE.accept_redirects=0 post-up ip -6 addr add 2a03:2260:100b::161/64 dev $IFACE

allow-hotplug bat0 iface bat0 inet manual pre-up ip link set address $(cat /sys/class/net/eth0/address) dev $IFACE post-up ip link set up dev $IFACE post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1

  1. prevent Gateway-Traffic

post-up batctl meshif $IFACE hop_penalty 100 post-up batctl meshif $IFACE bridge_loop_avoidance 1 post-up batctl gw client 45 post-up batctl orig_interval 5000 post-up batctl multicast_mode 0 post-up brctl addif br-client $IFACE

allow-hotplug mesh-vpn-l2tp-1 iface mesh-vpn-l2tp-1 inet manual post-up ip link set up dev $IFACE post-up ip link set mtu 1406 $IFACE post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1

post-up batctl if add $IFACE

allow-hotplug mesh-vpn-l2tp-2 iface mesh-vpn-l2tp-2 inet manual post-up ip link set up dev $IFACE post-up ip link set mtu 1406 $IFACE post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1

post-up batctl if add $IFACE

allow-hotplug mesh-vpn-l2tp-3 iface mesh-vpn-l2tp-3 inet manual post-up ip link set up dev $IFACE post-up ip link set mtu 1406 $IFACE post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1

post-up batctl if add $IFACE }}}

Details
Geschrieben von: Eric
Kategorie: Server
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 04. Juli 2021

Proxmox Erstellung Hochverfügbarkeit's-Clusters, Shared Storage

Hochverfügbarkeit's-Cluster; Shared Storage

In diesem Beitrag erstelle ich step by step ein Hochverfügbarkeit's-Cluster und füge ein Shared Storage ( RAID 10 ) hinzu. Final soll eine hohe Ausfallsicherheit, bei maximaler Performance bestehen. 

Folgende Konfiguration ist in diesem Szenario vorhanden:

3x AMD Opteron 6238/32GB Ram/3x240GB SSD ( RAID5)

1x Intel Celeron J4105/8GB RAM/3x240GB SSD ( RAID 5 )/3ware SAS 9750-16i4e Controller

1x HP MSA P2000 Storage 16x4TB RAID 10

Installation Celeron J4105 & HP MSA P2000 Storage:

Das Celeron System dient als lokale Anbindung ( NAS ) zum Storage.

Als erstes wird das interne RAID 5 bestehend aus 3x 240GB erstellt, folgende Werte ergeben sich:

Kapazität: 0.48TB

Schutz:0.24TB

Im zweiten Schritt erstelle ich das RAID10 des extern angebundenen Storages. Bestückt ist dieses mit 16x4 TB, was folgende Werte ergibt:

Kapazität: 32TB

Nicht verwendet: 2.2TB

Nach Erstellung der RAID's wird auf dem Celeron System ein OS installiert ( intern RAID 5 ). Das angebundene Storage wird ins OS eingebunden und als NAS verfügbar gemacht, hierfür vergebe ich folgende statische IP: 192.168.1.230 

Erstellung des Cluster's:

Vorab sollten gewisse Vorrausetzungen gegeben sein, hierzu gehören folgende Dinge:

- mind. 3 "Baugleiche Systeme" ( Befehlssätze der CPU's müssen identisch sein, RAM und Speicherplatz ebenfalls )

- jedes System muss zwingend die gleiche Vers. von Proxmox VE vorweisen.

- Die Uhrzeit aller Systeme muss identisch sein.

Szenario:

Ich werde folgende 3 Systeme in das Cluster "Delta3" aufnehmen;

- Server 1 ( 192.168.1.240 )

- Server 2 ( 192.168.1.241 )

- Server 3 ( 192.168.1.242 )

Konfiguration RAID 5 Server 1-3:

Bei allen 3 Systemen wird über den internen RAID Controller ein RAID5 erstellt,

folgende Werte ergeben sich:

Kapazität: 0.48TB

Schutz:0.24TB

Installation Proxmox. Nach erfolgreicher Installation wird mit folgendem Befehl in der Shell ein Update durchgeführt:

apt-get update

apt-get dist-upgrade

reboot

Auf dem ersten System ( Server 1 ) erstelle ich das Cluster:

pvecm create DELTA3

Weitere Systeme zum Cluster hinzufügen, Eingabe lokal an Server2:

pvecm add  192.168.1.240 

Weitere Systeme zum Cluster hinzufügen, Eingabe lokal an Server3:

pvecm add  192.168.1.240 

Es erfolgt jeweils die Abfrage des SSH Passwortes bzw. des Fingerprints von Server 1, dieser ist unter Cluster Beitrittsinformationen ersichtlich.

Anbindung Shared Storage:

An Server 1 wird die WebOberfläche von Proxmox aufgerufen, dort navigiere ich zum Reiter "Storage" und wähle "NFS" aus. 

ID: Sharedstorage

Server: 192.168.1.230

Export: Das Storage sollte sichtbar sein

Content: Angabe der Datenart

Rechenzentrum:

Im Menü sehen wir nun unser Cluster "DELTA3", bestehend aus den 3 Opteron Systemen. Jeder Node hat Zugriff auf das Shared Storage, so das die ersten VM's erstellt werden können. 

Hierzu wähle ich "Create VM" und folge dem Verlauf, im Reiter "Node" sind nun alle 3 Systeme ersichtlich und ich kann diese manuell wählen. Alternativ übernimmt Proxmox per Zufall die Verteilung der VM's auf den Systemen. Unter dem Reiter "Hard Disk" wähle ich "Shared Storage", so das die VM auf dem Storage RAID10 abgelegt wird.

Details
Geschrieben von: Frank
Kategorie: Server
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 13. Februar 2022
  • Proxmox

Proxmox entfernen eines Cluster's

Folgendes Szenario beschreibt das auflösen eines Cluster's unter Proxmox 5.-3

Das Cluster besteht aus 3 nodes mit der Kennung "Server4","Server7" & "Server8", wobei das Cluster zu anfangs über "Server4" erstellt wurde.

Bei physischen wegfall der "Server7" & "Server8", sind an "Server4" keinerlei Änderungen     ( edit's, start/stop etc. ) an den vorhandenen VM's aufgrund u.a fehlender Brechtigungen mehr möglich.

Mit folgenden Schritten wird das Cluster aufgelöst, bzw. besteht erneuter Zugriff auf die VM's an "Server4".

Datensicherung beachten!!!

( in genanntem Szenario lagen alle Daten auf einem zentralen Raid10, so das keine Sicherung nötig war )

Eingabe via Shell an "Server4":

systemctl stop pve-cluster

systemctl stop corosync

pmxcfs -l

rm /etc/pve/corosync.conf

rm /etc/corosync/*

killall pmxcfs

systemctl start pve-cluster 

Details
Geschrieben von: Frank
Kategorie: Server
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 13. Februar 2022
  • Proxmox

lokaler Gateway

!!! unvollständig !!!

Diese Anleitung basiert auf andere Anleitungen und beschreibt nur die Unterschiede von einen normalen Mesh-Server zu einen lokalen GatewayAlle angegebenen IPs, MACs, VLANs, Interfaces müssen passend zum System geändert werden!

DNS+DHCP

### DNS

# DNS Server
server=192.168.178.1
server=193.28.153.254
server=213.73.91.35
server=8.8.8.8
server=8.8.4.4

local=/ffggrz/
domain=ffggrz


### DHCP / RA
#dhcp-authoritative
# abschalten der Namensaufloesung fuer DHCP-Clients
dhcp-ignore-names
#quiet-dhcp
#quiet-dhcp6
quiet-ra

####IPv4
dhcp-range=10.181.11.2,10.181.12.254,1h
#dhcp-option=option:router,10.181.0.202
dhcp-option=option:dns-server,10.181.0.202
dhcp-option=option:ntp-server,10.181.0.202
dhcp-option=option:domain-search,ffggrz
# IP-Fragmentierung am Client um die batman-adv-Fragmentierung zu reduzieren
# 1406 (fastd) - 24 (batman-adv) - reserve = 1380
#dhcp-option-force=26,1350

####IPv6
# ra-stateless: A+O-Bit fuer stateless-Adressen aber DHCPv6 (DNS+NTP)
dhcp-range=set:v6,::,constructor:br-freifunk,slaac,ra-stateless,1h
# ohne IPv6 nimmt dnsmasq selbst eine der IPv6-Adressen vom Interface
dhcp-option=tag:v6,option6:dns-server,::
dhcp-option=tag:v6,option6:ntp-server,::
dhcp-option=tag:v6,option6:domain-search,ffggrz

enable-ra
####low Priority
#ra-param=br-freifunk,low,600,0
ra-param=br-freifunk,low,600,1800

batman-adv

allow-hotplug bat0
iface bat0 inet manual
  hwaddress ether de:ad:be:60:05:01
  up ip link set up dev $IFACE
  down ip link set down dev $IFACE
  post-up sysctl net.ipv6.conf.$IFACE.disable_ipv6=1

  post-up echo 60 > /sys/class/net/$IFACE/mesh/hop_penalty
  post-up echo 1 > /sys/class/net/$IFACE/mesh/bridge_loop_avoidance
  #post-up batctl gw client 45
  #post-up batctl orig_interval 5000
  post-up batctl gw server 96mbit/96mbit
  post-up batctl orig_interval 30000
  post-up batctl multicast_mode 0

Firewall+NAT

IPV4

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-N DEFAULT_EXIT
-A DEFAULT_EXIT -m connmark --mark 0 -j CONNMARK --set-mark 8

-N BYPASS_exitVPN
-A BYPASS_exitVPN -m pkttype --pkt-type multicast -j RETURN
-A BYPASS_exitVPN -m pkttype --pkt-type broadcast -j RETURN
-A BYPASS_exitVPN -d 10.0.0.0/8 -j RETURN
-A BYPASS_exitVPN -d 169.254.0.0/16 -j RETURN
-A BYPASS_exitVPN -d 172.16.0.0/12 -j RETURN
-A BYPASS_exitVPN -d 192.168.0.0/16 -j RETURN
-A BYPASS_exitVPN -d 100.64.0.0/10 -j RETURN
-A BYPASS_exitVPN -d 192.0.2.0/24 -j RETURN
-A BYPASS_exitVPN -d 198.51.100.0/24 -j RETURN
-A BYPASS_exitVPN -d 203.0.113.0/24 -j RETURN
-A BYPASS_exitVPN ! -s 10.181.0.0/16 -j RETURN
-A BYPASS_exitVPN -m connmark --mark 0 -j DEFAULT_EXIT

-A INPUT -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark

-A OUTPUT -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark

-A PREROUTING -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark
-A PREROUTING -i br-freifunk -m conntrack --ctstate NEW -m connmark --mark 0 -m mark --mark 0 -j BYPASS_exitVPN
-A PREROUTING -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark
COMMIT

IPv6

*mangle

:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

-N DEFAULT_EXIT
-A DEFAULT_EXIT -m connmark --mark 0 -j CONNMARK --set-mark 8

-N BYPASS_exitVPN
-A BYPASS_exitVPN -m pkttype --pkt-type multicast -j RETURN
-A BYPASS_exitVPN -m pkttype --pkt-type broadcast -j RETURN
-A BYPASS_exitVPN -d fdb5:078b:64cc::/48 -j RETURN
-A BYPASS_exitVPN -d 2a03:2260:100b::/48 -j RETURN
-A BYPASS_exitVPN -d fe80::/10 -j RETURN
-A BYPASS_exitVPN -d ff00::/8 -j RETURN
-A BYPASS_exitVPN ! -d 2000::/3 -j RETURN
-A BYPASS_exitVPN -m connmark --mark 0 -j DEFAULT_EXIT

-A INPUT -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark

-A OUTPUT -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark

-A PREROUTING -m mark ! --mark 0 -m connmark --mark 0 -j CONNMARK --save-mark
-A PREROUTING -i br-freifunk -m conntrack --ctstate NEW -m connmark --mark 0 -m mark --mark 0 -j BYPASS_exitVPN
-A PREROUTING -m mark --mark 0 -m connmark ! --mark 0 -j CONNMARK --restore-mark
COMMIT

Allgemein


*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -m connmark --mark 8 -j MASQUERADE
COMMIT

*filter
-A FORWARD -i br-freifunk -o br-freifunk -j ACCEPT
-A FORWARD -i eth0 -o br-freifunk -m connmark --mark 8 -j ACCEPT
-A FORWARD -i br-freifunk -o eth0 -m connmark --mark 8 -j ACCEPT
-A FORWARD -i eth0 -o br-freifunk -j DROP
-A FORWARD -i br-freifunk -o eth0 -j DROP
COMMIT

Probleme

  • fällt ein Gateway irgendwo aus verlieren zufällige Knoten ihre ganzen Gateway-Einträge, wodurch kein DHCP für eine kurze möglich ist.
  • kein intercity-VPN
  • nur bedingt IPv6 (falls überhaupt beim Uplink vorhanden)
  • statisches DHCP
Details
Geschrieben von: Marcus
Kategorie: Server
Veröffentlicht: 23. November 2021
Zuletzt aktualisiert: 13. Dezember 2017

Seite 1 von 2

  • 1
  • 2
RSS

Freifunk Community Feeds

  • VPN Abschaltung – Firmware-Update notwendig
    26. Januar 2023
  • Mitgliederversammlung 2023
    19. Januar 2023
  • Wie es 2023 weiter geht
    17. Januar 2023
  • Förderverein Freie Infrastruktur hält Mitgliederversammlung ab
    11. Januar 2023
  • Kursänderung
    11. Januar 2023
  • Firewall/DMZ + Freifunkrouter
    10. Januar 2023
  • Wöchentlicher Beratungstisch – Online
    10. Januar 2023
  • Freifunk-Treffen am 09. Januar 2023 – vor Ort und virtuell
    08. Januar 2023
  • Neue Firmware auf Basis von Gluon 2022.1
    07. Januar 2023
  • Neue Firmware im Anmarsch!
    05. Januar 2023

Veranstaltungen / Ereignisse

Mi Feb. 01 @18:00 - 22:00
<name>space geöffnet
Mi Feb. 08 @18:00 - 22:00
<name>space geöffnet
  • Willkommen
  • Impressum
  • Kontakt
© 2023 Bürgernetz Gera-Greiz e.V.