Zum Netzwerkdesign gibt es wohl fast mehr Philosophien als zu beinahe jeder anderen Frage (außer vielleicht der einen nach dem Leben, dem Universum und dem ganzen Rest). Das ist im Grunde sehr verwunderlich, da die Technik, so vielseitig sie auch sein mag, im Kern so komplex nun auch wieder nicht ist. Trotzdem kommt es immer wieder vor, dass zwei gegebene Netzwerkadministratoren höchst unterschiedliche Auffassungen darüber haben, wie ein zu einer gegebenen Aufgabenstellung passendes Netzwerk aussehen soll. Wie das kommt, ist bestimmt ein interessantes Thema, aber heute nicht meins. Ich will mich hier darauf beschränken, meine eigene Philosophie darzulegen.
Im Grunde lassen sich meiner Meinung nach die Anforderungen an ein gegebenes Computernetzwerk folgendermaßen zusammenfassen:
1. Es soll die an es angeschlossenen Computer dazu in die Lage versetzen, miteinander zu kommunizieren. Natürlich.
2. Es soll stabil sein, also seine Arbeit zuverlässig verrichten. Ausfallzeiten sollen, wenn überhaupt, nur geplant stattfinden und kurz sein.
3. Es soll verhindern, dass angeschlossene Computer auf eine Weise kommunizieren, die nicht erwünscht ist, also hinsichtlich Kommunikationspartnern und Kommunikationsinhalten exakt so selektiv sein wie gewünscht.
Das ist im Grunde alles. Alles andere ergibt sich aus diesen drei Anforderungen:
Funktionsfähigkeit, Stabilität und Schutz.
Glücklicherweise gibt es von den verschiedensten Herstellern allerlei technische Lösungen, um diese drei Aufgaben zu erfüllen. Manchmal schießen die Hersteller da ein wenig über das Ziel hinaus, aber im Großen und Ganzen ist es gut, dass das Arsenal der Technik so vielfältig ist.
Nur, aus dieser Vielfalt ergeben sich eben auch Schwierigkeiten: Welches Produkt, welchen Standard nehme ich wofür? Dabei ist es meiner Erfahrung nach hilfreich, sich klarzumachen, was aus den drei Anforderungen an Netzwerke, Funktionsfähigkeit, Stabilität und Schutz, folgt.
Die Funktionsfähigkeit ist dabei auf den ersten Blick das kleinste Problem - funktionieren werden die Produkte erst mal alle. Aber die Frage, wie lange es dauert, das Netzwerk aus den Produkten zu formen und die aktiven Netzwerkkomponenten zu konfigurieren, mag von der Wahl des Produkts stärker beeinflusst werden, als man denkt. Manche Router lassen sich beispielsweise nur über SNMP konfigurieren, während viele andere Hersteller ein Kommandozeileninterface oder gar ein Webinterface anbieten - und manche nur ein Webinterface, jedoch keine Kommandozeile. Abhängig von der Größe des geplanten Netzes und der voraussichtlichen Geschwindigkeit seines Wachstums können solche Merkmale sehr wichtig werden: Was nur über ein Webinterface konfiguriert werden kann, ist Automationsversuchen gegenüber bemerkenswert resistent. Das kann man sich mit ein wenig Nachdenken relativ leicht klar machen.
Bei der Stabilität sieht es dann schon komplizierter aus: Wie erreiche ich sie? Wie halte ich sie? Das ist üblicherweise der Punkt, an dem sich die Geister zu scheiden beginnen. Ich meine: Stabilität in einem Netzwerk setzt in aller erster Linie
Einfachheit voraus, und erst danach solche Dinge wie die Zuverlässigkeit der zugrundeliegenden Hardware. Ein Netz, das einfach strukturiert ist, verhindert dadurch oft, dass ein Administrator bei einer Planung Denkfehler begeht, die zu einem teilweisen Ausfall oder zu einem unnötig verlängerten Wartungsfenster führen könnten - und es ermöglicht es, die Ursache eines Fehlers schneller einzugrenzen. Das heisst, einerseits wird die
Zahl der Ausfälle reduziert, und andererseits verringert sich ihre potentielle
Dauer.
Aber natürlich ist Einfachheit für die Stabilität nicht alles. Ein Netz, das einfach ist, mag für einen Administrator komfortabel zu managen sein und so dessen Arbeitsqualität verbessern, aber wenn ein zentraler Router aufgrund eines defekten Netzteils keinen elektrischen Strom erhält, dann ist es nur begrenzt nützlich, dass der Administrator diesen Umstand schnell herausfinden konnte: Dann muss Ersatz her, und zwar schnell! Glücklicherweise lassen uns die Hersteller und die offenen Standards hier nicht im Stich: Lösungen wie HSRP, VRRP, GLPB, aber auch simple Konzepte wie alternative Routen oder Chassis mit mehr als einem Netzteil finden sich zu Hauf, um
Redundanz zu ermöglichen, also die absichtliche Überdimensionierung der Zahl der Komponenten zum Zwecke der Abfederung des Ausfalls einer Komponente oder Gruppe von Komponenten.
Allerdings erhöht Redundanz zwangsläufig die Komplexität, das Netz ist mit ihr also nicht mehr so einfach und wird schwieriger zu verwalten. Hier muss genau abgewogen werden, was wichtiger ist - in den meisten Netzen wird ein bisschen zusätzliche Komplexität durch Redundanz aber verkraftbar sein, denn die existierenden technischen Lösungen und Lösungsstrateguen sind in der Handhabung bewusst einfach gehalten (Wie beispielsweise bei HSRP und VRRP: Zwei Router, von denen stets einer als Stellvertreter für den anderen bereitsteht, sehen logisch wie ein einziger Router aus, so dass man den Stellvertreter im Normalfall einfach ausblenden kann - das Netz hat so also eine nur kaum spürbar höhere Komplexität.)
Nun hat man also ein funktionsfähiges Netz, dessen Komplexität niedrig ist und das auch als Folge davon sehr stabil läuft. Aber was ist mit der Anforderung des Schutzes? Hier lauern in der Tat lauter kleine Einfachheitsfresser, die sich oft nicht vermeiden lassen, die man aber immer im Auge behalten sollte.
Die klassische Schutzmethode schlechthin sind Paketfilter, also Regelsätze auf Routern (was man gemeinhin eine "Hardware-Firewall" nennt, ist dabei im Grunde nichts anderes als ein spezialisierter Paketfilter-Router), die festlegen, welche Arten von Netzwerkverbindungen erlaubt sind und welche nicht. Welche Computer mit welchen Computern auf welche Weise Daten austauschen dürfen. In den allermeisten Netzen wird man dabei den Ansatz verfolgen, nur ausdrücklich zu erlauben, was gewünscht ist, und alles andere zu verbieten. Auf diese Weise stellt man sicher, dass tatsächlich nur die Art von Kommunikation stattfindet, die auch vorgesehen ist. Theoretisch.
Praktisch passiert aber im Netzwerkbetrieb üblicherweise folgendes: Die Regeln werden nach einer sorgfältigen Analyse erstellt und umgesetzt, und es wird ein formalisiertes Verfahren etabliert, mit dem Änderungen von diesem Profil möglich sind, wenn die Anforderungen an das Netz sich ändern. Solche Änderungen finden in größeren Netzen vom ersten Tag an statt, und daher ist das Regelwerk stets einer gewissen Drift unterworfen: Es verändert sich, man könnte sagen, es wächst.
Die Natur des Menschen bringt es nämlich mit sich, dass nicht mehr benötigte Regeln normalerweise nicht entfernt werden, weil niemand den Netzwerkadministratoren mitteilt, dass er die betreffende Kommunikation nicht mehr benötigt. Warum auch? Es besteht ja nur Leidensdruck, wenn etwas
nicht funktioniert. Das bedeutet, dass die Zahl der Einträge in den Filterlisten mit der Zeit zunimmt. Und jeder zusätzliche Eintrag bedeutet natürlich: Eine Erhöhung der Komplexität und damit eine (wenn auch für sich genommen geringe) Abnahme der Stabilität, zugleich aber auch eine Abnahme des Schutzes mit der Zeit, weil eben mehr und mehr Kommunikation erlaubt wird. Aber auch die Gegenmaßnahme, eine regelmäßige Überprüfung des Regelwerkes, ist schlecht für die Stabilität: Es besteht die Gefahr, Einträge zu entfernen, die tatsächlich noch benötigt werden (wenn auch möglicherweise nur selten). Außerdem ist eine solche Überprüfung zeitintensiv und kann daher aus wirtschaftlichen Gründen, sofern sie überhaupt stattfindet, nicht oft passieren.
Neben Filterregeln gibt es natürlich noch andere Ansätze, den Schutz eines Netzes zu erhöhen, die meist in Kombination mit Filterregeln eingesetzt werden: Proxies, um direkte Verbindungen zwischen fremden Systemen und eigenen Computern im eigenen Netz unnötig zu machen, Netzwerküberwachungssysteme, die im erlaubten Datenverkehr verdächtige Muster ermitteln sollen, sogar das Unterbinden der Kommunikationsmöglichkeiten einzelner Teilnetze durch Nichtverbreiten der Routen mag unter Umständen Sinn ergeben.
Aber alle diese Maßnahmen und Designkniffe erhöhen die Komplexität, und für die Stabilität ist es essentiell, diese Komplexität des Netzes so niedrig zu halten wie irgend möglich, und nur genau so hoch anzuheben wie nötig. Für jede Schutzmaßnahme muss stets klar sein, dass sie die einfachste zu sein hat, die diese Anforderung erfüllen kann, sonst ist sie zu komplex.
Ingo lässt sich allgemein über Netzwerke deren Konzeption und vor allem deren Komplexität aus.Ein Grund für schleichend wachsende Komplexität und der damit zunehmenden Unsicherheit von Firewalls ist dabei laut Ingo ja:Die Natur des Menschen bringt es näml
Aufgenommen: Sep 18, 22:15