Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Server mit mehreren Nezwerkkarten: Verbindung wählen??? (https://www.delphipraxis.net/141463-server-mit-mehreren-nezwerkkarten-verbindung-waehlen.html)

romber 9. Okt 2009 12:45


Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Ein Server verfügt über zwei Netzwerkadapter. Sagen wir, ich möchte mit IdHTTP auf eine Webseite zugreifen. Kann irgendwie bestimmen, welcher der beiden Adapter benutzt werden soll?

mkinzler 9. Okt 2009 12:56

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Es wird der Standard-Gateway verwendet

MaBuSE 9. Okt 2009 13:06

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Zitat:

Zitat von mkinzler
Es wird der Standard-Gateway verwendet

Jein ;-)

ruf mal in der Shell folgenden Befehl auf:

Code:
route PRINT
Hier kannst Du sehen welche Adresse auf welche Netzwerkkarte gerouted wird.

Mit route bekommst Du einen Hilfetext angezeigt. Dort steht wie Du das Routing ändern kannst.

Code:
C:\>route

Manipuliert die Netzwerkroutingtabellen.

ROUTE [-f] [-p] [Befehl [Ziel]
                [MASK Netzmaske] [Gateway] [METRIC Anzahl] [IF Schnittstelle]

  -f           Löscht alle Gatewayeinträge in Routingtabellen.
                Wird der Parameter mit einem der Befehle verwendet, werden
                die Tabellen vor der Befehlsausführung gelöscht.
  -p           Wird der Parameter mit dem "ADD"-Befehl verwendet, wird
                eine Route unabhängig von Neustarts des Systems verwendet.
                Standardmäßig ist diese Funktion deaktiviert, wenn das
                System neu gestartet wird. Dies wird ignoriert für alle
                anderen Befehle, die beständige Routen beeinflussen.
                Diese Funktion wird von Windows 95 nicht unterstützt.
  Befehl       Auswahlmöglichkeiten:
                  PRINT    Druckt eine Route
                  ADD      Fügt eine Route hinzu
                  DELETE   Löscht eine Route
                  CHANGE   Ändert eine bestehende Route
  Ziel         Gibt den Host an.
  MASK         Gibt an, dass der folgende Parameter ein Netzwerkwert ist.
  Netzmaske    Gibt einen Wert für eine Subnetzmaske für den Routeneintrag
                an. Ohne Angabe wird die Standardeinstellung
                255.255.255.255 verwendet.
  Gateway      Gibt ein Gateway an.
  Schnittstelle Schnittstellennummer der angegebenen Route.
  METRIC       Gibt den Anzahl/Kosten-Wert für das Ziel an.

Alle symbolischen Namen, die für das Ziel verwendet werden, werden in
der Datei der Netzwerkdatenbank NETWORKS angezeigt. Symbolische Namen
für Gateway finden Sie in der Datei der Hostnamendatenbank HOSTS.

Bei den Befehlen PRINT und DELETE können Platzhalter für Ziel und
Gateway verwendet werden, (Platzhalter werden durch "*" angegeben),
oder Sie können auf die Angabe des Gatewayparameters verzichten.

Falls Ziel "*" or "?" enthält, wird es als Shellmuster bearbeitet und es
werden nur übereinstimmende Zielrouten gedruckt. Der Platzhalter "*" wird
mit jeder Zeichenkette überprüft, und "?" wird mit jedem Zeichen überprüft.
Beispiele: 157.*.1, 157.*, 127.*, *224*.
Diagnoseanmerkung:
   Eine ungültige MASK erzeugt einen Fehler unter folgender Bedingung :
   (DEST & MASK) != DEST.
   Beispiel> route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1
             Die Route konnte nicht hinzugefügt werden: Der angegebene
             Maskenparameter ist ungültig.
(Destination & Mask) != Destination.


Beispiele:

    > route PRINT
    > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2
                    Ziel^      ^Maske    ^Gateway    Metric^    ^
                                                     Schnittstelle^
      Sollte "IF" nicht angegeben sein, wird versucht die beste
      Schnittstelle für das angegebene Gateway zu finden.
    > route PRINT
    > route PRINT 157*          .... Zeigt passende Adressen mit 157* an.
    > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2

      CHANGE wird nur zum Ändern des Gateways und/oder des Metrikwert
             verwendet.
    > route PRINT
    > route DELETE 157.0.0.0
    > route PRINT

[edit]Das gilt ab WinNT, also nicht für Win9x ;-)[/edit]

romber 9. Okt 2009 14:11

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Vielen Dank für die schnelle Reaktionen!

Das mit dem "route"-Befehl habe ich auch schon gelesen. Doch mir fällt nicht ein, wie ich das in meinem Fall anwenden kann.

Ich habe einen Server mit zwei Netzwerkkarten drin mit jeweils 100 Mbit Anbindung. Dann habe ich mein Programm, dass praktisch aus zwei Teile (Threads) besteht. Das erste Teil greift sehr intensiv auf eine kostenpflichtige Web-Schnittstelle zu und nutzt einen erheblichen Teil der Bandbreite. Das zweite Teil analysiert die Daten und leitet diese an eine andere Schnittstelle weiter. Das benötigt auch jede menge Bandbreite und ich habe bemerkt, dass die sich beide Prozesse gegenseitig "bremsen". Dann habe ich mit gedacht, wenn ich ja sowieso zwei Netzwerkadapter habe, dass ich auch beide belasten kann, indem ich bestimme, welche Adapter für welche Anfragen genutzt wird. Geht das überhaupt?

Dax 9. Okt 2009 14:16

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Natürlich geht das. Indy sollte eine Möglichkeit bieten, einen Client/Server an eine bestimmte IP-Adresse zu binden - dort trägst du einfach die Adressen der entsprechenden Karten ein. Wenn es das aber nicht gibt.. Tja, dann hast du Pech gehabt :(

romber 9. Okt 2009 15:12

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Für IdHTTP habe ich keine entsprechende Eigenschaften gefunden. Weiss jemand, wie das mit Indy funktioniert?

romber 10. Okt 2009 11:44

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Keine Ideen?

Torpedo 10. Okt 2009 11:50

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Wenn du keine Lösung findest, kannst du dich vielleicht rückwärts verbinden. Auf dem Server läuft dann nicht der Client, sondern der Server und du verbindest dich dann über das Netz der richtigen Netzwerkkarte damit.

RWarnecke 10. Okt 2009 12:16

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Hallo,

Du kannst es eigentlich nur über das Routing lösen. Sind beide Adressen im Internet ? Wenn ja, da wird es schwierig. Sollte aber eine Adresse bei Dir lokal im Netzwerk sein, so könntest das Routing für eine Netzwerkkarte so einstellen, dass Sie nur lokale Adressen erreicht.

SirThornberry 10. Okt 2009 12:36

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
@RWarnecke: auch wenn beide Adressen (damit meine ich nicht die IP) im Internet sind kann man das über das Routing lösen. Man braucht einfach nur mit dem Befehl route die IP Adresse auf die entsprechende Schnittstelle legen.
Wenn beide Adressen jedoch die gleiche IP haben dann sollte es unmöglich werden dies über verschiedene Schnittstellen zu routen.

@romber: Hast du nur 2 Netzwerkkarten oder hängt auch an beiden Netzwerkkarten eine eigene Internetanbindung? Denn ich bezweifel das du einen Geschwindigkeitsvorteil haben wirst wenn letzendlich beide Netzwerkkarten über die gleiche Internetverbindung gehen (außer du hast recht langsame Netzwerkkarten und die Geschwindigkeit deines Internets übersteigt die der Netzwerkkarten)

romber 10. Okt 2009 13:59

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Zitat:

Zitat von SirThornberry
Hast du nur 2 Netzwerkkarten oder hängt auch an beiden Netzwerkkarten eine eigene Internetanbindung?...

Der Provider meinte, dass die zweite Netzwerkkarte an die alternative Leitung angeschlossen ist. Ich vermute aber, dass beide Netwerkkarten mit dem selben Switch verbunden sind und eine gemeinsame Anbindung haben, weil die IP-Adressen beider Server im Selben IP-Bereich liegen.

Dax 10. Okt 2009 14:55

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Der Indy TCP-Client hat die Property BoundIP; die bindet den Clienten an diese eine Adresse und damit auch an die Netzwerkkarte, die diese Adresse hält ;)

sx2008 10. Okt 2009 15:10

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Zitat:

Zitat von romber
Ich habe einen Server mit zwei Netzwerkkarten drin mit jeweils 100 Mbit Anbindung. Dann habe ich mein Programm, dass praktisch aus zwei Teile (Threads) besteht. Das erste Teil greift sehr intensiv auf eine kostenpflichtige Web-Schnittstelle zu und nutzt einen erheblichen Teil der Bandbreite. Das zweite Teil analysiert die Daten und leitet diese an eine andere Schnittstelle weiter. Das benötigt auch jede menge Bandbreite und ich habe bemerkt, dass die sich beide Prozesse gegenseitig "bremsen". Dann habe ich mit gedacht, wenn ich ja sowieso zwei Netzwerkadapter habe, dass ich auch beide belasten kann, indem ich bestimme, welche Adapter für welche Anfragen genutzt wird. Geht das überhaupt?

Ich kann mich an einen Vorfall erinnern, da hatte ein Administrator folgende Idee:
Zwei Netzwerkkarten (100MB, versch. IPs im gleichen Netz) in einem Server werden jeweils mit dem gleichen Switch verbunden.
Er dachte die eine Karte übernimmt den Downstream und die andere den Upstream (eine dumme Idee).
Im Ergebnis hatte das üble Konsequenzen:
Eine Anwendung, die einen MS-SQL-Server benutzt hat sporadisch die Verbindung zum Server verloren.
Wochenlanger Stress und böse Emails von der Geschäftsleitung.
Das Kopieren von Dateien von und zum Server war kein Problem, aber nach langer Fehlersuche vor Ort hat sich herausgestellt:
Die Clients können den Server zu 100% anpingen.
Wenn der Server einen Client anpingt gab es aber 25% Paketverlust!

Du bist also gewarnt; wenn du Schleifen in deinem Netz erzeugst, gibt das Störungen:
http://www.netzwerkassistent.de/fron...at=67&idart=51

MaBuSE 12. Okt 2009 08:54

Re: Server mit mehreren Nezwerkkarten: Verbindung wählen???
 
Zitat:

Zitat von romber
Zitat:

Zitat von SirThornberry
Hast du nur 2 Netzwerkkarten oder hängt auch an beiden Netzwerkkarten eine eigene Internetanbindung?...

Der Provider meinte, dass die zweite Netzwerkkarte an die alternative Leitung angeschlossen ist. Ich vermute aber, dass beide Netwerkkarten mit dem selben Switch verbunden sind und eine gemeinsame Anbindung haben, weil die IP-Adressen beider Server im Selben IP-Bereich liegen.

Mit wieviel MBit bist Du denn an das Internet angebunden?
Wie schnell ist Deine Netzwerkkarte?
Wie groß ist der Bandbreiten-Bedarf Deiner Anwendung?

Wenn Du mit weniger als 100MBit angebunden bist, kannst Du Dir das sparen, da die Netzwerkkarte schneller ist als Dein Internet.
Auf den neueren Rechnern ist meist eine GBit Netzwerkkarte enthalten.
Das typische DSL ist maximal 16MBit und VDSL 50 MBit schnell.

Bei uns war die Sache damals etwas anders. Wir haben 2 DSL Anschlüsse gehabt. Einen "billigen" mit viel Bandbreite und dynamischer IP Adresse und einen mit weniger Bandbreite aber einer festen IP Adresse.
Um auf ein Support System eines Herstellers zugreifen zu können wurde eine feste IP benötigt.

Wir haben das Routing so eingestellt, dass alle Zugriffe auf ein bestimmtes IP Segment (via Netmask) über ein Gateway gehen, der Rest über ein anderes. Der Rechner hatte auch 2 Netzwerkkarten. Wir hatten aber über die eine Karte einen Switch mit den 2 DSL Modems und auf der anderen Netzwerkkarte einen Switch mit dem internen Netzwerk. Das Routing hatte also Zufriffe auf das Lan über die eine und Zugriffe auf WAN über die andere gerouted.

Das kann man mit dem route Befehl durchaus einstellen.

Der Rechner mit den 2 Netzwerkkarten fungierte auch als Firewall, Proxy und MailServer (und lief unter Linux, wäre aber auch mit NT Server gegangen).

Aber in Deinem Fall hängen die 2 Netzwerkkarten am selben Switch. Damit kannst Du den Traffic ja nicht wirklich aufteilen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz