Main Server

Aus Freifunk Dresden - Anwender-Wiki
Version vom 27. November 2016, 16:01 Uhr von Stephan (Diskussion | Beiträge) (Hauptserver inial)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Einleitung

Freifunk Dresden nutzt einen Hauptserver, der verschiedene Dienste bereit stellt. Generell kann das Freifunknetz in Dresden dezentral betrieben werden. Da wir hier eine automatische Registrierung der Knoten nutzen (könnte auch manuell auf jedem Knoten konfiguriert werden), wird zu mindestens ein zentraler Server benötigt, der die Registierung der Knoten und die Verteilung der Knotennummern übernimmt.

Der Hauptserver nutzt Linux Container, um einzelnen Aufgaben besser zu trennen. Jeder Linux Container wird über ein Installation-Script konfiguriert, welches in einem privaten GIT Repository gesichert wird. Das Prinzip entspricht der Installation des basic-vservers (auf github), nur eben mit den Anpassungen für einen bestimmten Dienst.

Der große Vorteil für die Verwendung von Linux Containern liegt darin, dass eine Funktionalität durch einfaches Kopieren auf einen anderen physischen Server umziehen kann.

Struktur des Servers

Technische Daten des Servers

Linux Container Struktur

----------+---------+--------------------------------+------+------------+-----------+
|   NAME   |  STATE  |              IPV4              | IPV6 |    TYPE    | SNAPSHOTS |
+----------+---------+--------------------------------+------+------------+-----------+
| bt2      | RUNNING | 192.168.1.14 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| database | RUNNING | 192.168.1.15 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| ddmesh   | RUNNING | 192.168.1.99 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| devel    | RUNNING | 192.168.1.21 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| download | RUNNING | 192.168.1.13 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| git      | RUNNING | 192.168.1.20 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| icvpn    | RUNNING | 192.168.1.16 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+
| mail     | RUNNING | 192.168.1.11 (eth0)            |      | PERSISTENT | 1         |
+----------+---------+--------------------------------+------+------------+-----------+
| vpn1     | RUNNING | 192.168.1.10 (eth0)            |      | PERSISTENT | 1         |
|          |         | 172.31.242.46 (vpn0)           |      |            |           |
|          |         | 10.200.1.1 (bmx_prime)         |      |            |           |
+----------+---------+--------------------------------+------+------------+-----------+
| www      | RUNNING | 192.168.1.12 (eth0)            |      | PERSISTENT | 0         |
+----------+---------+--------------------------------+------+------------+-----------+

Installation eines leeren Containers

1. login in Hauptserver via ssh 2. Container image aktualisieren. Dabei wird ein images von Ubuntu aus dem Internet lokal kopiert und davon ein Container erzeugt. 3. Netzwerk Konfiguration

  Host: /etc/hosts
  Container: /etc/network/interfaces

4. ssh login Einrichten 5. Optional: Alias fuer lxc console und ssh login (+X11 forwarding)

alias icvpn='lxc exec icvpn -- bash'
alias sicvpn='ssh root@icvpn.lxc

6. Installieren von git