AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)
Thema durchsuchen
Ansicht
Themen-Optionen

Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

Ein Thema von Phoenix · begonnen am 21. Dez 2008 · letzter Beitrag vom 22. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#1

Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 11:13
Hi,

ich habe ein kleines Tool auf meiner ToDo-Liste. Hintergrund ist Kostenoptimierung.

Darum gehts:
Mehre Server und drei USV's sind in einem Rack. Demnach hängen mehrere Server an einer USV. z.B. 3 Server an USV 1, zwei an USV 2 und wieder 3 an USV 3.

Jede USV hängt mittels Kabel aber nur genau an einem Server, um diesem den aktuellen Batteriezustand mitzuteilen. Will heissen: Nur einer von den zwei bis drei Servern an der USV wird im Stromausfallfall geregelt heruntergefahren. Die Software des USV-Herstellers die diese Lücke schliessen würde kostet etliche tausend Euro. Mein Tool soll das nun regeln.

Problemstellung:
Das ganze kann man auf verschiedenste Arten realisieren.

1.) Ein Dienst läuft auf dem einen Server, der unmittelbar von der USV benachrichtigt wird. Fährt er durch Signal der USV herunter, schickt der Dienst noch kurz ein UDP-Paket durchs Netz. Auf den anderen Servern läuft auch ein Dienst, die erkennen das Paket, wissen, wenn Paket von meinem 'Master' kommt muss ich auch runterfahren, und gut ist. Nur lassen sich solche UDP-Pakete leicht faken.

2.) Dienst auf Server wie in 1. Fährt der Rechner runter meldet sich der Dienst noch schnell per WMI an den abgänhgigen Rechnern an und fährt diese so herunter. Damit muss nichts auf den 'Clients' installiert werden, aber auf dem Master-Server sind die Credentials der abhängigen Server gespeichert, damit die WMI-Verbindung auch die anderen herunterfahren kann.

3.) Eine Client-/ Server Anwendung mit permanenten, auf jedem Rechner konfigurierten Verbindungen informiert sämtliche Rechner in einem Verbund jederzeit über den Energiestatus des Masters. Vor dem Runterfahren durch die USV (vor Abbauen der Verbindung) schickt der Master seinen Clients den Befehl zum runterfahren. Das hier ist großer Aufwand: Das Kommunikationsprotokoll muss geschrieben werden, das Ding muss auf Server und Client installiert und jeweils konfiguriert werden. Da wäre es wohl billiger, die Original-Software zu kaufen.

Meine Gedanken:
Eigentlich kann ausgeschlossen werden, dass jemand böswillig eine DOS-Attacke fährt. In dem Netz tummeln sich nur die zwei Chefs, ein Externer (ich), eine Mitarbeiterin und einmal in der Woche ein bestimmter Praktikant. Keiner von denen würde das Netz absichtlich sabotieren. Dennoch hätte ich ein extrem ungutes Gefühl dabei, das Unabgesichert zu programmieren. Schliesslich geht es um IT-Infrastruktur. Wenn es nicht funktioniert kann ein Rechner einfach so ohne Strom dastehen (nicht gut, insbesondere wenn viele VM's dort laufen). Wenn es zu einfach zu umgehen ist, dann kann jemand mit einfachen Mitteln den Serverraum bis auf die drei Master-Server runterfahren (auch wenn das niemand machen würde. Der Teufel ist ein Eichhörnchen).

Wie würdet ihr sowas angehen?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 11:34
Moin Sebastian,

so spontan fällt mir da eine Ergänzung zu Idee 1 ein.
Der Masterserver meldet an die anderen im Verbund, dass er, auf Grund des USV-Status herunterfahren soll/will.
Die benachrichtigen Server fragen, über den Masterserver, den tatsächlichen Status der Stromversorgung/USV ab, um sicherzustellen, dass hier nicht gefakt wurde.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 11:53
Hallo,

nur so eine Idee, da die Server ja anscheinend räumlich zusammenstehen...
Könnte man da nicht die entsprechende Kommunikation über die serielle Schnittstelle führen?
Die Einflussnahme von aussen wäre dann minimiert.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 12:54
Wieso nicht UDP mit Port-Knocking?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#5

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 14:35
Zitat von Klaus01:
nur so eine Idee, da die Server ja anscheinend räumlich zusammenstehen...
Könnte man da nicht die entsprechende Kommunikation über die serielle Schnittstelle führen?
Die Einflussnahme von aussen wäre dann minimiert.
Erstens beinhaltet das zusätzliche Hardware die angeschafft werden müsste, und zum zweiten weiss ich nicht mal, ob die Rechner noch sowas wie serielle Schnittstellen haben. Und dann bräuchte der Master ja sogar 3 davon, um drei andere Rechner zu benachrichtigen. Das ist glaube ich nicht wirklich die perfekte Lösung

Zitat von alzaimar:
Wieso nicht UDP mit Port-Knocking?
Prinzipiell ne gute Idee. Aber gibts da schon was fertiges für Delphi (oder .NET)? Schliesslich muss man sich unmittelbar hinter die Firewall hängen damit sowas klappt. Und sowas dann selber zu schreiben dass es den Rechner nicht noch unsicherer macht kostet wahrscheinlich doch mehr Zeit, als es das Wert ist.

Zitat von Christian Seehase:
Der Masterserver meldet an die anderen im Verbund, dass er, auf Grund des USV-Status herunterfahren soll/will. Die benachrichtigen Server fragen, über den Masterserver, den tatsächlichen Status der Stromversorgung/USV ab, um sicherzustellen, dass hier nicht gefakt wurde.
Dann muss sichergestellt sein, dass der Master noch lang genug online bleibt, um allen Clients den USV-Status zu bestätigen. Kann ein Dienst den Shutdown eines Servers eigentlich verzögern? Aber diese Rückfrage macht die Sache schon sicherer, und treibt den Aufwand nicht zu hoch.

Danke. Noch mehr Ideen?
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 14:58
Zitat von Phoenix:
Dann muss sichergestellt sein, dass der Master noch lang genug online bleibt, um allen Clients den USV-Status zu bestätigen. Kann ein Dienst den Shutdown eines Servers eigentlich verzögern?
Auf jeden Fall. Vor Windows Vista und Windows Server 2008 hat ein Service etwa 20 Sekunden Zeit für Aufräumarbeiten. Ab Vista und Server 2008 hat ein Service, der sich für den Code SERVICE_CONTROL_PRESHUTDOWN registriert, unbegrenzt Zeit, wenn das mit ChangeServiceConfig2 so konfiguriert wird.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#7

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 15:01
Cool. 20 Sekunden sollten eigentlich in jedem Fall ausreichen, um mal kurz zwei, drei Pakete durchs Netz zu schicken.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 15:45
Hi,

Zitat von Phoenix:
Noch mehr Ideen?
Wie wär es mit einer Named Pipe, dann kannst Du schon entsprechende Rechte vergeben und mußt das nicht auf Protokollebene aussortieren.

Gruß Assertor

Frederik
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#9

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 18:58
Hm würde doch noch mal darüber nachdenken ob das nicht Hardwaremässig so zu lösen ist, das jeder Server Datenverbindung zu seiner USV hat. Gestzt den Fall, das einer der Server aufgrund eines internen Defektes herunterfährt (überhitzter Prozessor mit Rechenfehlern, Virus,..) dann würden die anderen noch weiterlaufen. ImFalle eines Banalen Stromausfalles für alle geht das mit dem Netz auch nur, wenn keine Switch ohne Strom im Weg ist.

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Grundsatzfrage: Wie vorgehen? (Netzwerk-Tool)

  Alt 21. Dez 2008, 22:08
Wenn auf dem Master ein Dienst läuft, der auf Nachfrage seinen Status sendet, sollte es doch für die Clients einfach sein, darauf zu reagieren. Wenn der Master "online" zurückgibt, weisst Du, sie laufen auf Power. Bei "usv" kannst vielleicht sogar die Restzeit mitsenden. Und wenn der Master "shutdown" sendet, wird er gerade heruntergefahren. Sollte der Master innerhalb einer gewissen Zeit sich nicht melden (kannst Du zur Sicherheit ja mehrfach abfragen), den Client herunterfahren.
Somit ist auch der Sicherheit genüge getan, Du musst ja nur den Master bei den Clients eintragen. Von aussen kann dann keiner mehr manipulieren.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz