<> = Server Dokumentation = Link: [[Core/ServerDokumentationIntern|interner Teil]] {i} Diese Dokumentation beschreibt unsere Serverlandschaft. Die restliche Technische Dokumentation ist auf der Seite TechnischeDokumentation zu finden. Zurzeit gibt es an 3 Standorte Server von Funkfeuer Graz. Die Meisten Server befinden sich in unserem Rack im Keller des Spektrals. Ausserdem gibt es noch einen Server in der Leitnergasse im Serverhousing von [[http://mur.at|mur.at]] und einen Server im 19" Rack am Dach der TU Bibliothek. == Rack im Spektral/Housing == === KVM Wirt (spektral.ffgraz.net) === Ein leistungsfähiger Rechner im Rack im Spektral der uns als Wirtsystem für unsere KVM Instanzen dient. Er hängt mit je einem Netzwerkinterface im Funkfeuer VLAN des Housing Switches und im VLAN für das Housing selbst und hat somit direkten Zugang zum Internet über die SDSL Verbindung zur Citycom. Das Mainboard besitzt einen BMC mit Hilfe dessen die gesamte Maschine ohne Unterstützung des darauf laufenden Betriebssystems kontrolliert werden kann. Das funktioniert auch wenn der Rechner eigentlich ausgeschaltet ist. Solange das Mainboard Strom hat kann man also die Maschine so steuern als würde man davor stehen. Wir verwenden nur die die SOL (Serial over LAN) Fähigkeit des BMC. Dadurch kann der gesamte Bootprozess (BIOS, --(Bootloader)-- (Grub2 macht da leider Probleme), Kernel) überwacht und kontrolliert werden. Nähres dazu und über das gesamte Management VLAN kann man auf der Seite HousingManagementVlan herausfinden. Um IPMI am Wirt selbst zu verwenden werden über die Datei ''/etc/modules'' die Module ''ipmi_si'' und ''ipmi_devintf'' geladen. Die derzeitige Hardwareausstattung: * Intel !Core2Duo E8500, 2x 3.16 GHz * [[attachment:s3210shlc-manual.pdf|Intel S3210SHLC]] Entry Server Board, 2x GBit Ethernet onboard * 8GB (4x2GB) Kingston !ValueRam DDR2-800 * 1x Intel Pro-1000 Server Adapter * 2x Western Digital 5002ABYS 500 GB Raid Edition * Gehäuse Chenbro RM217-06, 6 Hot Swap SATA/SAS Buchten, 3x PCI normale Bauhöhe, 1x PCIe x1 Riser Karte, inkl 510 W EPS12V Netzteil 2HE Der Wirt selbst ist ein Debian Squeeze in einer sehr minimalen Basisinstallation. Die beiden Festplatten sind in 3 jeweils als Software Raid-1 gebündelte Partitionen geteilt. Die erste Partition enthält den Bootloader und alles was unter /boot liegt. Die zweite Partition ist mittels LVM (Volumegroup ''system'') weiter unterteilt und dient hauptsächlich als Systempartition. Der dritte Teil ist ebenfalls ein LVM (Volumegroup ''data'') und beherbergt neben einer kleinen Backuppartition (gemountet unter /backup) mit dem alten auf Debain Lenny basierenden System die einzelnen Volumes für die virtuellen Maschinen. Als Virtualisierungslösung wird KVM (aufbauend auf Intel VT) eingesetzt. Die Konfiguration und Steuerung der virtuellen Maschinen erfolgt über libvirtd. Die Konfigurationsdateien für die einzelnen VM's sind im XML-Format in ''/etc/libvirt/qemu/'' zu finden. Beim Booten werden alle als automatisch markierte VM's gestartet und bei einem Reboot werden alle laufenden Maschinen beendet (nicht suspended). Zur Steuerung und Konfiguration der virtuellen Maschinen sollte bevorzugt ''virsh'' verwendet werden. Diese kann entweder als ''root'' ausgeführt werden oder von allen Benutzern die zur Gruppe libvirt gehören gestartet werden. Im letzteren fall muss die ''virsh'' mit dem Kommando: {{{ # virsh --connect qemu:///system }}} gestartet werden. Zu bemerken ist dabei das die XML Dateien der einzelnen VM's nur vom user root gelesen oder geändert werden können allerdings können alle anderen Gruppenmitglieder virtuelle Maschinen steuern (rebooten etc). Alle bisher installierten VM's verwenden als tty die erste (virtuelle) serielle Schnittstelle (Bootloader + Kernel + getty) damit ist es möglich über das ''virsh'' Kommando ''console'' sich auf der Maschine einzuloggen auch wenn das über Netzwerk nicht funktionieren sollte. Auch dafür sind derzeit root Rechte von Nöten. {i} Besondere Vorsicht ist bei dem ''virsh'' Kommando ''undefine'' geboten da damit nicht nur die virtuelle Maschine aus der Hostliste entfernt wird sondern auch die dazugehörende XML Datei gelöscht wird. Also vor einem ''undefine'' unbedingt die XML Datei sichern. Als einziger erwähnenswerter Dienst läuft auf unserem Wirt eine ''munin-node'' mithilfe derer Langzeitstatistiken über die wichtigsten Systemparameter geführt werden. Näheres ist unter [[#Munin|Munin]] zu finden. === Nat-Gateway (oldgw.ffgraz.net) === Zurzeit gibt es einen Gateway der auf unsere SHDSL Leitung um Spektral das NAT für das gesamte Netzwerk übernimmt. Dieser Gateway ist als virtuelle Maschine auf unserem Wirt Server eingerichtet. Der Gateway natet auf die IP Adresse '''217.29.149.69'''. Die VM ist relativ minimalistisch ausgeführt. Die folgende Dienste laufen darauf: * olsrd (''/etc/olsrd/olsrd.conf'') - announced die default Route * lighttpd (''/etc/lighttpd/lighttpd.conf'', ''/var/www'') - Serviert eine minimale Webseite hauptsächlich für unseren Version Scan. * snmpd (''/etc/snmp/snmpd.conf'') - dient zum Auslesen der Interfacestatistik über MRTG * munin-node (''/etc/munin/*'') - Datensammelnode für Munin Die Firewall (NAT Regeln etc.) werden über das Initscript ''/etc/init.d/firewall'' konfiguriert. === Public IP Gateway (gw-cc.ffgraz.net) === Eine weitere virtuelle Instanz auf unserem Wirt. Dieser Router übernimmt gemeinsam mit ''gw-mur.ffgraz.net'' und ''gw-wien.ffgraz.net'' das BGP Announcment unseres Public IP Bereichs. Details zu dem Public IP Setup gibt es auf der Seite [[PublicIP]]. Dort ist auch eine Beschreibung der Gateway spezifischen Konfiguration zu finden [[PublicIPGateway]]. Weiters ist diese VM einer der Knoten des Anycast DNS Netzes Neben Quagga und olsrd laufen noch folgende Dienste: * lighttpd (''/etc/lighttpd/lighttpd.conf'', ''/var/www'') - Serviert eine minimale Webseite hauptsächlich für unseren Version Scan. * snmpd (''/etc/snmp/snmpd.conf'') - dient zum Auslesen der Interfacestatistik über MRTG * named (''/etc/bind/*'') - als Slave für die diversen Funkfeuer DNS-Zonen konfiguriert. Er verwendet 2 DNS Server der Citycom als Forwarder. * munin-node (''/etc/munin/*'') - Datensammelnode für Munin === Statistics (stats.ffgraz.net) === Auf diesem ebenfalls virtualisierten Server laufen diverse Scripte die statistische Informationen über das Funkfeuer Netzwerk sammeln. Weiters läuft ''lighttpd'' der die gesammelten Daten in Form ein Webseite präsentiert. Alle Datenbanken und Archive sowie der Documentroot des Webservers befinden sich im Verzeichnis ''/srv''. ==== Topologie ==== Für die Topolgie Daten läuft eine eigene ''olsrd'' Instanz von der mittels eines Perl Scriptes die Daten geholt werden. Danach versucht das Script die zu den IP Addressen passenden DNS Einträge zu finden und zeichnet dann mittels ''neato'' (graphviz) den Graphen. Das Script wird von ''cron'' alle 2 Minuten ausgeführt. Weiters wird alle 10 Minuten ebenfalls von ''cron'' ein Script aufgerufen das ein Snapshot der aktuellen .dot Datei in das Archiv kopiert. Die dazu passenden ''cron'' Einträge sind in der Datei ''/etc/cron.d/topo'' zu finden. Alle anderen Scripte befinden sich unter ''/srv/www/topo''. ==== Smokeping ==== ''smokeping'' zeichnet zu allen laut Datenbank dazu frei geschalteten Routern im Netz eine Erreichbarkeitsstatistik. Dazu wird die eigens dafür geschriebene Export Funktion des ''manman'' Systems verwendet (''/var/www/manman/app/controllers/export_controller.rb''). Prinzipiell wird ''smokeping'' über die Konfigurationsdateien im Verzeichnis ''/etc/smokeping'' gesteuert. 4x täglich (3:45, 9:45, 15:45, 21:45) wird mittels ''cron'' die Liste der zu testenden Router aus der Datenbank upgedatet. Der dazu passende ''cron'' Eintrag ist in der Datei ''/etc/cron.d/smokeping'' zu finden. Alle anderen Daten und Scripte liegen in ''/srv/www/smokeping'' bzw in ''/srv/var-lib-smokeping''. Auf letzeres Verzeichnis zeigt der Link ''/var/lib/smokeping''. ==== Firmware Version ==== Die derzeit im Netzwerk verwendeten Firmware Versionen werden 4 mal am Tag (4, 10, 16 und 22 Uhr) von einem Ruby Script ermittelt und dann in einem txt Format gespeichert. Ein weiteres Script kopiert die erstellte Statistik in ein Archiv und erstellt eine Ausgabe in HTML und eine Grafik. Alle dazu gehörenden Scripte und Daten befinden sich in oder unter dem Verzeichnis ''/srv/www/version/''. Der Script selbst wird von ''cron'' zu den angegebenen Zeitpunkten gestartet. Der dazu passende ''cron'' Eintrag ist in ''/etc/cron.d/version'' zu finden. Das Ruby Script liest das Webinterface aller derzeit im Netz aktiven Knoten (Topologie) aus und versucht dann daraus die Firmware Version zu ermitteln. Zurzeit wird die Freifunkfirmware sowohl im Freifunk als auch im Funkfeuer und im FFGraz Branding automatisch erkannt. Alle anderen Router sollten im Html Head ihrer index.html folgenden Meta Tag enthalten: {{{ }}} Wobei der String CONTENT natürlich die derzeit aktive OLSR Version wiederspiegeln sollte. Genau dieser String wird dann in der Tabelle bzw Grafik verwendet. Ausserdam kann mit dem Tag {{{ }}} der Script dazu angewiesen werden eine andere Seite vom selben Host zu laden die dann ebenfalls nach einem Meta Tag mit der Version durchsucht wird. {i} Da diese Links rekursiv aufgelöst werden ist darauf zu achten das keine unendliche Schleife produziert wird. Auf unseren Debian basierten Routern wird folgende Datei als index.cgi im Webserver Documentroot verwendet damit bei einem update von OLSR keine falsche Versionsnummer verwendet wird: {{{#!sh #!/bin/sh echo Content-type: text/html echo OLSR_VER=`dpkg -l olsrd | grep olsrd | awk '{ print $3 }' | sed s/-[^-]*$//` cat< .... .... EOF }}} ==== MRTG ==== Derzeit gibt es 2 Arten ''mrtg'' Statistiken. Eine liest die Daten aus allen verwalteten Switches aus und der zweite bietet eine Übersicht über alle Uplinks und die Aufteilung des Traffic's auf die verschiedenen Teilebereiche des Netzes. Während die Uplink Statisitik statisch konfiguriert ist werden die Switches Statistiken 4x täglich (3:45, 9:45, 15:45, 21:45) upgedatet um neu hinzugekommene Ports mitbeobachten zu können. Der dazu passende und alle anderen ''cron'' Einträge sind in der Datei ''/etc/cron.d/mrtg'' zu finden. Die restliche Konfiguration (incl. Scripte) findet sich im Verzeichnis ''/etc/mrtg/''. Die eigentlichen Daten, Bilder und Html Dateien liegen in ''/srv/www/mrtg/switch*'' bzw ''/srv/www/mrtg/uplink''. ==== Munin ==== Für Langzeitstatistiken der wichtigsten Systemparameter der einzelenen Server wird ''munin'' eingesetzt. Hierzu läuft auf jedem zu überwachnden System eine ''munin-node''. Der Statistik Server sammelt diese Informationen und stellt diese graphisch dar. === Webserver (www.ffgraz.net) === Der Webserver ist ebenfalls eine virtuelle Maschine auf unserem Wirt. Darauf läuft unsere Homepage, dieses Wiki die Google-Map sowie das Manman System samt der kompletten Datenbank und dem Webinterface zur Vergabe von IP Adressen. Genaueres ist unter ServerKonfigurationWeb zu finden. === Buildserver (build.ffgraz.net) === Diese virtuelle Maschine läuft ebenfalls auf unserem Wirt und dient uns als Buildserver für Debian Pakete und unsere Firmware Images. Der Server ist derzeit in Aufabu. === Tunnel (tun.ffgraz.net) === Eine virtuelle Maschine die uns als OpenVPN Server dient. Auf diesem Router enden alle über OpenVPN realisierten Tunnelverbindungen. Näheres dazu ist auf der Seite FunkInsel zu finden. Die Konfiguration des Routers kann auf FunkInselServer zu finden. == mur.at-Rack Leitnergasse == === KVM Wirt (mur.ffgraz.net) === Ein leistungsfähiger Router im Rack von mur.at in der Leitnergasse. Er hängt in dem VLAN das uns von mur.at geshaltet wird, einem VLAN das uns bis zum mur.at Knoten ''WRE'' geschaltet wird und am Core Router von mur.at (''r1ko''). Der Server wird als Wirt für diverse Services verwendet. Als Virtualisierungslösung kommt ''kvm'' und ''libvirt'' zum Einsatz. Auf der SSD liegen neben dem Root Filesystem noch die Logical Volumes der virtuellen Maschinen. Die beiden 500 GB Festplatten sind zu der Volume Group ''data'' zusammengefasst. Um die Abhängigkeit von ''gw-mur.ffgraz.net'' aufzutrennen läuft auf diesem Server eine eigene ''olsrd'' Instanz. Die derzeitige Hardwareausstattung: * Intel !Core2Duo E6550, 2x 2.33 GHz * Intel DG45ID Multimedia Board, 1x GBit Ethernet onboard * 2x 2GB Kingston HyperX DDR2-800 * 1x Intel Pro-1000 Server Adapter, low profile * 1x Realtek RTL-8139 Netzwerk Adapter, low profile (umgebaut) * 1x OCZ Vertex3 60 GB * 2x Western Digital WD5002ABYS-0 500 GB Raid Edition * Gehäuse Chenbro RM223, 6x PCI low profile, inkl 380W ATX Netzteil === Public IP Gateway (gw-mur.ffgraz.net) === Diese virtuelle Instanz auf ''mur.ffgraznet'' übernimmt gemeinsam mit ''gw-cc.ffgraz.net'' und ''gw-wien.ffgraz.net'' das BGP Announcment unseres Public IP Bereichs. Details zu dem Public IP Setup gibt es auf der Seite [[PublicIP]]. Dort ist auch eine Beschreibung der Gateway spezifischen Konfiguration zu finden [[PublicIPGateway]]. Weiters ist diese VM einer der Knoten des Anycast DNS Netzes. Neben Quagga und olsrd laufen noch folgende Dienste: * lighttpd (''/etc/lighttpd/lighttpd.conf'', ''/var/www'') - Serviert eine minimale Webseite hauptsächlich für unseren Version Scan. * snmpd (''/etc/snmp/snmpd.conf'') - dient zum Auslesen der Interfacestatistik über MRTG * named (''/etc/bind/*'') - als Slave für die diversen Funkfeuer DNS-Zonen konfiguriert. Er verwendet 2 DNS Server der Citycom als Forwarder. * munin-node (''/etc/munin/*'') - Datensammelnode für Munin * ntpd (''/etc/ntp.conf'') - NTP Server ntp.ffgraz.net === APT-Cacher (debian.ffgraz.net) === Eine weitere virtuelle Maschine. Sie beherbergt unseren APT-Cacher. Als Storage dafür ist das Logical Volume ''storage'' der Volume Group ''data'' von ''mur.ffgraz.net'' als ''vdb'' durchgereicht. Genaueres zu unserem APT-Cacher ist auf [[Services]] zu finden. Um die Abhängigkeit von ''gw-mur.ffgraz.net'' aufzutrennen läuft auf diesem Server eine eigene ''olsrd'' Instanz. * lighttpd (''/etc/lighttpd/lighttpd.conf'', ''/var/www'') - Reverse Proxy für den Apt-Cacher. * apt-cacher-ng (''/etc/apt-cacher-ng/*'', ''/srv/apt-cacher-ng/*'') - APT Cacher für Debian, Ubuntu und GRML (siehe [[Services]]) === Spider (spider.ffgraz.net) === Noch eine virtuelle Maschine die dazu verwendet werden soll um die Konvertierung in die neue Knotendatenbank zu erleichtern. Später soll hier eine neue zustätzliche Statistikinstanz (siehe ''stats.ffgraz.net'') laufen. Derzeit läuft auf dieser Maschine lediglich olsrd. == TUB Dach Technikerstrasse 4 == === KVM Wirt (tub.ffgraz.net) === Ein leistungsfähiger Server im Rack am Dach der TU Bibliothek in der Technikerstrasse 4. Der Server wird als Wirt für diverse Services verwendet. Als Virtualisierungslösung kommt ''kvm'' und ''libvirt'' zum Einsatz. Auf der SSD liegen neben dem Root Filesystem noch die Logical Volumes der virtuellen Maschinen. Neben den unten beschriebenen VMs läuft auf dieser Maschine noch eine VM die von Funkfeuer Wien verwaltet wird. Um die Abhängigkeit von ''gw-wien.ffgraz.net'' aufzutrennen läuft auf diesem Server eine eigene ''olsrd'' Instanz. Die derzeitige Hardwareausstattung: * Intel Xeon E3-1220V2, 4x 3.10GHz + Supermicro SNK-P0046P * Supermicro X9SCL-F retail, C202 * 2x 4GB Kingston !ValueRam DDR3-1333 ECC (KVR13E9K2/8I) * 1x Samsung SSD 830 Series 64GB * Gehäuse Supermicro 510L-200B schwarz, 1HE, 200W, 1x 2,5" Bracket (2x 2.5" Slot) === Public IP Gateway (gw-wien.ffgraz.net) === /!\ Achtung diese VM ist noch nicht fertig eingerichtet. Das hier beschriebene ist als Plan zu verstehen Diese virtuelle Instanz auf ''tub.ffgraznet'' übernimmt gemeinsam mit ''gw-cc.ffgraz.net'' und ''gw-mur.ffgraz.net'' das BGP Announcment unseres Public IP Bereichs. Details zu dem Public IP Setup gibt es auf der Seite [[PublicIP]]. Dort ist auch eine Beschreibung der Gateway spezifischen Konfiguration zu finden [[PublicIPGateway]]. Weiters ist diese VM einer der Knoten des Anycast DNS Netzes. Neben Quagga und olsrd laufen noch folgende Dienste: * lighttpd (''/etc/lighttpd/lighttpd.conf'', ''/var/www'') - Serviert eine minimale Webseite hauptsächlich für unseren Version Scan. * snmpd (''/etc/snmp/snmpd.conf'') - dient zum Auslesen der Interfacestatistik über MRTG * named (''/etc/bind/*'') - als Slave für die diversen Funkfeuer DNS-Zonen konfiguriert. Er verwendet 2 DNS Server der Citycom als Forwarder. * munin-node (''/etc/munin/*'') - Datensammelnode für Munin ---- . CategoryDocumentation