Benutzer-Werkzeuge

Webseiten-Werkzeuge


doku:rz:shackdns

shackDNS

Entwickler / Ansprechpartner: xq

Service-Name: shackdns.shack

Repository: rz/shackdns

Konfiguration: rz/dns

Projektbeschreibung

Die Netzwerk-Infrakstruktur auf einem Blick:

  • Anzeige der aktuell vergebenen DHCP-Leases
  • Anzeige aller verfügbaren DNS-Einträge
  • Anzeige der aktuell im Space verweilenden Personen (opt-in)
  • Anzeige der Netzwerk-Infrastruktur (to be done)

Leases

In dieser Tabelle werden alle aktuell vom DHCP-Server vergebenen Leases angezeigt. Für jedes Lease werden folgende Daten angezeigt:

  • Gerätename
  • MAC-Adresse
  • Hersteller des PHYs
  • IP-Adresse des Geräts
  • Zeitpunkt des Erhalts des Leases
  • Zeitpunkt des letzten Refreshs.

Services

In dieser Tabelle werden die im shack vergebenen DNS-Einträge angezeigt. Für jeden Eintrag gibt es folgende Angaben:

  • Service / Hostname des Geräts
  • Kontaktadresse zum Service (to be done)
  • Primärer DNS-Eintrag
  • IP-Adressen
  • Zeitpunkt, zudem der Service das letzte mal erreichbar war
  • Verfügbarkeit (Erreichbarkeit des Service in den letzten 48h) (to be done)
  • Links (Links zu Wiki-Seite o.ä.) (to be done)

Infrastruktur-Dokumentation

Hier könnte ihre Infrastruktur dokumentiert sein.

Geplant ist es, hier die Struktur der V-Lans sowie Subnetze graphisch darzustellen.

Einstellungen / Konfiguration

shackDNS wird komplett über das GitLab-CI und dem rz/dns-Repository konfiguriert.

leases

Die Lease-Liste wird aus den Daten des ICS DHCP Servers, der auf infra01 deployed ist, bezogen. Diese wird alle paar Sekunden geparsed und dann in den Datensatz übernommen.

services

Die Liste an Services wird im Moment aus der Bind-Konfiguration erzeugt.

shackles

shackles wird über die shackles.db konfiguriert. Jede Zeile stellt einen Eintrag für eine Einstellung dar.

Zur Zeit ist nur eine Konfigurations-Option möglich: *user* mac *mac*

Diese hinterlegt für den Benutzer *user* eine MAC-Adresse, die, falls verfügbar als Quelle für die Online-Information hinterlegt wird.

Entwicklung

Das Projekt besteht aus einem Server-Backend in C# ohne Framework und benötigt Newtonsoft.Json sowie eine .NET/Mono-Runtime mit Support für .NET 4.5.

Das Frontend ist in HTML/CSS/JavaScript entwickelt und besitzt zur Zeit noch keine mobile Ansicht.

Deployment

Der Service läuft zur Zeit auf infra01, da dieser Host die meisten V-LANs direkt erreichen kann und kein Routing benötigt. Die Software ist unter /opt/shackDNS installiert und greift direkt auf die benötigten Dateien zu. Diese sind in der /opt/shackDNS/shackDNS.cfg eingestellt.

Zudem wird über eine nginx-Konfiguration unter /etc/nginx/sites-enabled/shackdns.shack ein Reverse-Proxy konfiguriert, der den shackDNS-Service über den normalen HTTP-Service anbietet. Der Service selbst ist als systemd-Service konfiguriert, dieses File liegt unter /etc/systemd/system/shackDNS.service.

Das Deployment kann, mit ausreichend Rechten, direkt via „make deploy“ durchgeführt werden. Dies kopiert die benötigten Dateien aus dem Repository auf infra01 und startet den Service neu.

doku/rz/shackdns.txt · Zuletzt geändert: 2020-01-09 22:32 von xq