rince1984
Goto Top

Einem Programm eine feste TCP-Portnummer zuweisen

Hallo zusammen,

ich habe auf einem Windows Server 2008 (SP2) ein Programm (kein Dienst) installiert das Lizenzen verwaltet. Das Programm wird folgend als Lizenzmanager bezeichnet.
Konkret liest der Lizenzmanager einen USB-Dongle aus auf dem x Benutzer/Lizenzen eingetragen sind. Der Lizenzmanager "lauscht" dabei auf den UDP-Port 7777 ob ein Client-Rechner über das Netzwerk eine Lizenz abrufen möchte. Dem Lizenzmanager wird für die tatsächliche Kommunikation mit dem Client eine dynamische TCP-Portnummer zugewiesen (von Windows). D.h. nach jedem Neustart des Lizenzmanagers oder Servers erhält der Lizenzmanager einen neuen TCP-Port zugewiesen. Im Normalfall ist das kein Problem, da der UDP-Port die Anfrage des Clients an den aktuellen TCP-Port weitergibt.
Es gibt aber auch Fälle in denen diese Kommunikation nicht funktioniert (Client bekommt keine Rückmeldung - Stichwort: Zeitüberschreitung). Auf dem betroffenen Client kann dann in einer .ini Datei die aktuelle TCP-Portnummer des Lizenzmanagers eingetragen werden und die Kommunikation/der Lizenzabruf funktioniert.

Randnotiz: Auf dem Server ist keine Firewall aktiv.

Nun zu meiner Frage/Anforderung:
Gibt es in Windows eine Möglichkeit dem Lizenzmanager eine feste TCP-Portnummer zuzuweisen? D.h. ich möchte erreichen, dass der Lizenzmanager nicht mit einer dynamischen Portnummer ausgestattet wird, sondern auch nach einem Server- oder Programmneustart eine festgelegte TCP-Portnummer behält.

Im Lizenzmanager selbst habe ich keine Möglichkeit diese Einstellung vorzunehmen. Dort kann ich nur die UDP-Portnummer anpassen, was mir in meinem Fall leider nichts bringt.


Ich hoffe ich habe meine Frage verständlich formuliert und es finden sich hier Experten die mir einen entscheidenden Tipp geben können. Vielleicht gibt es sogar ein Freeware Tool mit dem man dies bewerkstelligen kann? Bei meinen Recherchen bin ich leider nicht fündig geworden.


Danke vorab an alle die sich mit dem Thema auseinandersetzen.

Viele Grüße
Thomas

Content-Key: 299478

Url: https://administrator.de/contentid/299478

Ausgedruckt am: 28.03.2024 um 17:03 Uhr

Mitglied: beidermachtvongreyscull
beidermachtvongreyscull 18.03.2016 um 14:18:31 Uhr
Goto Top
Jein,
denn das hängt ab von der Programmierung. Wenn das Programm programmiert ist, einen Zufallsport anzufordern, wird dies auch weiterhin passieren.

Das sowohl Sende- als auch Empfangsports statisch sind, kenne ich eigentlich nicht (muss auch nichts heißen).
Feste Empfangsports ist eher normal. Das erlaubt, dass die oberen Ports nicht auch noch fest zugewiesen sind.
Mitglied: rince1984
rince1984 18.03.2016 um 15:23:26 Uhr
Goto Top
Danke auf jeden Fall für die Antwort. Das Problem bei mir scheint zu sein, dass der eine Client sich in einem anderen Subnetz befindet und deshalb nicht über den Port 7777 kommunizieren kann, sondern direkt auf den TCP-Port gehen müsste (so hat es mir der Netzwerktechniker des Kunden mitgeteilt).
Mitglied: Pjordorf
Pjordorf 18.03.2016 um 22:11:47 Uhr
Goto Top
Hallo,

Zitat von @rince1984:
scheint
Immer dieses scheint. Das ist raterei im Akkord aber keine fehlersuche... Orakeln sagt man auch....

der eine Client sich in einem anderen Subnetz befindet
Kann derLizenzmangetr denn mit anderen netzen umgehen?

und deshalb nicht über den Port 7777 kommunizieren kann
Warum sollte das über Netze hinweg nicht gehen? Das Internet beweist es doch täglich das es geht? Nennt sich Routing.

sondern direkt auf den TCP-Port gehen müsste (so hat es mir der Netzwerktechniker des Kunden mitgeteilt).
Ich frage mich hier was denn der Hersteller dazu zu sagen hat, der sollte es Wissen ohne zu Orakeln... Ansonsten hilft ein Wireshark ungemein um dies in 3 Minuten zur gewissheit zu machen ohne Orakeln zu müssen.

Gruß,
Peter
Mitglied: rince1984
rince1984 21.03.2016 um 12:32:20 Uhr
Goto Top
Hallo Peter,

danke für deine Antwort.
Nachdem ich kein Netzwerkexperte bin kann ich nur auf Basis der von meinem Kunden gelieferten Informationen Vermutungen anstellen. Meine Frage hier war ja nur ob es möglich ist einem Programm unter Windows eine feste TCP-Portnummer zuzuweisen.

sondern direkt auf den TCP-Port gehen müsste (so hat es mir der Netzwerktechniker des Kunden mitgeteilt).
Ich frage mich hier was denn der Hersteller dazu zu sagen hat, der sollte es Wissen ohne zu Orakeln...

Der Hersteller hat dieses Programm vor über 10 Jahren entwickelt und seitdem nicht mehr verändert (vor allem, da es diesen Hersteller so nicht mehr gibt). Die äußerst spärliche Dokumentation zum Lizenzmanager besagt, dass eine Kommunikation durch Router und Firewalls nicht funktioniert. Tatsächlich funktioniert die Kommunikation bei vielen Kunden trotz Firewall und Router. In diesem speziellen Fall handelt es sich aber um ein standortübergreifendes Intranet mit einer Citrix-Umgebung.

Ansonsten hilft ein Wireshark ungemein um dies in 3 Minuten zur gewissheit zu machen ohne Orakeln zu müssen.
Mit Wireshark kenne ich mich nicht aus (wie gesagt bin ich kein Netzwerkexperte). Ich habe für Testzwecke TCPView von MS Technet installiert um die aktuellen Ports anzeigen zu lassen.

Ich hatte gehofft, dass es eine Option gibt die Netzwerkanfrage des Clients an einen bestimmten TCP-Port zu leiten der den aktuellen TCP-Port des Lizenzmanagers kennt und die Anfrage dorthin weiterleitet.

Ansonsten ist es nicht meine Aufgabe dieses Problem für den Kunden zu lösen. Es hat mich vor allem selbst interessiert was für Möglichkeiten ich hier habe. Und wenn ich dem Kunden einen entscheidenden Tipp geben kann ist es umso besser.

Viele Grüße
Thomas
Mitglied: Pjordorf
Pjordorf 21.03.2016 um 12:51:51 Uhr
Goto Top
Hallo,

Zitat von @rince1984:
Meine Frage hier war ja nur ob es möglich ist einem Programm unter Windows eine feste TCP-Portnummer zuzuweisen.
Ja, sofern der Programmierer diese Option vorgesehen hat. Steht im Quellcode des Programms wie der Empfang aber auch wie das Senden von Informationen geschehen soll.

(vor allem, da es diesen Hersteller so nicht mehr gibt)
Deutet darauf hin das jemand anders es weiter geführt hat, oder?

zum Lizenzmanager besagt, dass eine Kommunikation durch Router und Firewalls nicht funktioniert
Deshalb mein rat zum Wireshark, den älteren Network Monitor oder den aktuellen Microsoft Network Analyzer nutzen, schau was auf den Kabel passiert. Anders wirst du es wohl nicht herausbekommen.

Tatsächlich funktioniert die Kommunikation bei vielen Kunden trotz Firewall und Router
Deine Kunden oder woher willst du es wissen?

In diesem speziellen Fall handelt es sich aber um ein standortübergreifendes Intranet mit einer Citrix-Umgebung.
Und was ist daran besonderes? Hat doch VPN Standort - Standort Verbindungen, oder? Routing ist hier dein Stichwort.

Testzwecke TCPView von MS Technet installiert um die aktuellen Ports anzeigen zu lassen.
Ein NetStat -ano hilft da schon ohne Zusatzsoftware. (CMD Fenster)

Ich hatte gehofft, dass es eine Option gibt
das hängt von deiner Software ab und was der Programmierer dort vorgesehen hat. Da du sowieso im Blinden rum rätst, würde es dir nichts nützen. Du musst schon wissen wie dein Lizenzmanager arbeitet. Erst wenn du die Ports kennst kannst du auch Ports umleiten bzw. weiterleiten.

Ansonsten ist es nicht meine Aufgabe dieses Problem für den Kunden zu lösen. Es hat mich vor allem selbst interessiert was für Möglichkeiten ich hier habe. Und wenn ich dem Kunden einen entscheidenden Tipp geben kann ist es umso besser.
Hmmmm

Gruß,
Peter