herbrich19
Goto Top

Srv records aus dem dns abfragen unter vb.net

Hallo,

Ich würde gerne unter vb.net srv dns einträge für mein eigenes Netzwerk Protokoll abfragen. Ich bin gerade dabei Server 2 Server Kommunikation zu implementieren und dafür brauche ich ein srv dns eintrag (zumindest habe ich mir das so überlegt), diesen müsste ich jetzt halt nur noch unter Visual Basic auslesen.

Gruß an die IT-Welt,
J Herbrich

Content-ID: 344244

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

Ausgedruckt am: 21.11.2024 um 22:11 Uhr

maretz
maretz 24.07.2017 um 06:04:25 Uhr
Goto Top
Moin,

das wird so nicht gehen - es sei denn du machst das über ein Standard-protokoll. Aber ich vermute mal du gehst bei SRV-Record von Server-Record aus - was aber leider falsch ist (es ist Service-Record). Gedacht u.a. um im Netzwerk das "autodiscover" für SIP, LDAP usw. zu erleichtern...

Du möchtest aber vermutlich nen normalen Host-Eintrag (IN A) - um deine Server zu finden. Denn deine Applikation weiss ja bereits wie der Server heissen soll (entweder doof und statisch oder über eine Konfig-File/Konfig-Eintrag). Das kannst du dann ganz normal auflösen, üblicherweise "verlässt" sich der Entwickler dann darauf das der DNS den richtigen Eintrag zurückliefert...

Wenn du dagegen wirklich ein Autodiscover machen willst würde ich persönlich nicht über DNS gehen sondern davon ausgehen das die Anwendung im lokalen Netz läuft und das ganze dann per Broadcast auf einem Port erledigen. Allerdings wäre bei mir immer noch die "alte" Version über die Konfig-File das Mittel der Wahl (oder beim Start den Anwender fragen wenn die Konfig nicht existiert). Das ist zwar nicht "High Tech" aber funktioniert immer noch am zuverlässigsten. Ich kann selbst hinter Firewalls und sonstigen Geraffel immer sicher sagen das es kein Problem beim Autodiscover gibt wenn es nicht genutzt wird. Wird der DNS-Name nicht aufgelöst kann man da auch ne IP angeben wenn man lustig ist - und somit selbst DNS-Probleme ausgrenzen.
emeriks
emeriks 24.07.2017 um 08:15:09 Uhr
Goto Top
Hi,
schaum mal C# .NET DNS query component
Ich habs nicht weiter getestet, aber es hörts sich vielversprechend an. Das kann man sicher ganz einfach in VB.Net konvertieren.

Ansonsten wäre da noch ne Abfrage über WMI, wobei ich aber jetzt nicht auswendig weiß, welche Rechte dafür erforderlich sind.
DNS WMI Provider Samples—Managing DNS Resource Records

Oder einfach NSLOOKUP ausführen und die Ausgabe umlenken und einlesen.

E.
Herbrich19
Herbrich19 24.07.2017 um 09:24:24 Uhr
Goto Top
Hallo,

Ja ich weiß was SRV Einträge sind. Und ja, Server zu Server Kommunikation über SRV macht durch aus sin. Ich hinterlege ein SRV Eintrag den der Server in der Ziel Domäne finden kann und dann einfach mit einen entsprechenden Server in dieser Domäne Connecten kann.

Ich werde mir mal das Query Component anschauen. Ist das Open Source?

Gruß an die IT-Welt,
J Herbrich
atze187
atze187 24.07.2017 um 09:29:38 Uhr
Goto Top
Hi,

ich würde auch auf die Config-Variante setzen und - falls du mehr als zwei Server verbinden möchtest - einen Master definieren bei dem sich alle anderen Slaves anmelden und im Gegenzug die Adressen der anderen Slaves erhalten. Dabei wäre der Master ein ganz normaler Slave mit all seinen Aufgaben der allerdings zusätzlich als Verbindungsbroker agiert. Damit wäre der Aufwand beim Einrichten eines Clients überschaubar und du sparst dir das ganze Broadcast-Gedöns. Das Verteilen von Messages (z.B. "Slave hinzugefügt" oder "Slave entfernt") könnte dann beispielsweise über SignalR laufen.

Atze
emeriks
emeriks 24.07.2017 um 09:30:13 Uhr
Goto Top
Ich werde mir mal das Query Component anschauen. Ist das Open Source?
Einfach lesen
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)
Herbrich19
Herbrich19 24.07.2017 um 15:16:14 Uhr
Goto Top
Hallo,

Einziges Problem wen man nur seinen eigenen Server konfigureren kann face-smile Weil das ganze ein Server P2P Ding werden soll wo sich die User nicht mal kennen muss DNS zum Einsatz kommen.

Gruß an die IT-Welt,
J Herbrich
atze187
atze187 24.07.2017 um 16:04:18 Uhr
Goto Top
Um Himmels Willen!
maretz
maretz 25.07.2017 um 22:30:59 Uhr
Goto Top
Ok - das müsstest du jetzt mal näher erklären... Bei P2P muss DNS zum Einsatz kommen? Glaubst du allen ernstes das es irgendwo einen SRV-Record für BitTorrent gibt? Oder für das eMule-"Protokoll"? Ich bin mir sicher die Anwälte würden sich freuen und liebend gerne solche Records bereitstellen - aber ich vermute mal das es nicht im Sinne des Erfinders ist.

Wenn du nur deinen eigenen Server konfigurieren kannst - dann hilft dir DNS ja auch nicht. Weil du dann nur deinen DNS konfigurieren kannst - und ob ich nun auf meinem Server ne Config-File ändere oder nen DNS (der ja auch nicht wirklich was anderes als Konfigs enthält) macht keinen grossen Unterschied.

Also - was dir bleibt ist entweder _ein_ zentraler Server bei dem sich die Clients registrieren. Du kannst es natürlich rekursiv aufbauen: D.h. Client 1 fragt den ersten Server an. Dann kommt Client 2 und bekommt alle Clients von Client 1 UND dessen Adresse. Dann fragt der alle Clients an die er von Client 1 bekommen hat (oder eben eine Teilmenge) und bekommt von denen wieder die Clients. Selbstverständlich übermittelt er auch jedesmal seine Liste - und jeder Client pflegt halt eine Liste mit Clients die er kennt (um duplikate auszuschliessen). Wenn du diese Liste jetzt noch auf deinem Client speicherst und er eben nur beim ersten Start (mit leerer Liste) den Server benötigt hast du es bereits. (Was natürlich den Spass daran bringt: Dafür zu sorgen das du mit diesen Clients weder irgendwelche Loops erzeugst noch irgendwann soviel Traffic für die IP-Listen hast das nix anderes mehr durchkommt).

Natürlich kannst du dir sowas auch mit nem SRV-Eintrag bauen - keine Frage. Aber dann bist du noch keinen Schritt weiter da du ja immernoch irgendwo deine Listen pflegen müsstest. Und DNS wäre hier aufgrund des Cache eine eher bescheidene Wahl für ein P2P-Netz bei dem sich die Anzahl der Teilnehmer naturgemäß schnell ändern kann (nicht nur bei Filesharing auch durch z.B. Disconnects bei dynamischen IPs).
Herbrich19
Herbrich19 25.07.2017 um 23:25:58 Uhr
Goto Top
Hallo,

Srv deswegen weil die Verbindung nach <Dienst/Object oder was anderes>@domäne aufgebaut wird. Und das von Server zu Server und von Client zu Server in autodiscovery modus.

Gruß an die IT-Welt,
J Herbrich
emeriks
emeriks 26.07.2017 um 08:25:31 Uhr
Goto Top
Ich finde die Idee mit diesem SRV record gar nicht so dumm. Kann man zumindest versuchen.
atze187
atze187 26.07.2017 aktualisiert um 09:14:15 Uhr
Goto Top
Ich bin eher bei @maretz und denke dass ohne zentralen Server schon das Konzept zum Scheitern verurteilt ist.

  • Szenario 1 = P2P im public internet: Es hat ja keinerlei Informationen über andere Server. Bleibt also nur das Abfragen auf Verdacht. Ganz schlechte Idee.
  • Szenario 2 = P2P im privaten Netz: Selbst wenn die verantwortliche Stelle/Person das genehmigt (was ich stark bezweifele, da es dafür schon erprobte Lösungen gibt, z.B. DFS) wird das Abfragen des AD nach möglichen Objekten und die daraufhin notwendige DNS-Abfrage das Netzwerk viel zu stark belasten (da es ja von jedem Server und logischerweise auch in Intervallen erfolgen muss, um neue hinzugekommene und verschwundene Server zu identifizieren).
Herbrich19
Herbrich19 27.07.2017 um 00:32:14 Uhr
Goto Top
Hallo,

Wen Alice Bob zugrif auf xyz@alice.example geben will. Muss Bob das Objeckt kennen und kann dann auf xyz@alice.example zugreifen. Der Server wird über den SRV identifiziert. Also P2P nicht in Sinne von Discovery sondern nur Server2Server Verbindungen so ähnlich wie bei SIP wo auch der SRV zum einsatz kommt.

Gruß an die IT-Welt,
J Herbrich
atze187
atze187 27.07.2017 um 06:42:56 Uhr
Goto Top
Wenn er das Objekt kennen muss dann kannst du dir den SRV-Record aber auch sparen. Und nur weil Standards wie LDAP und SIP das so machen heißt das noch lange nicht dass du mit deiner P2P-Bastelei derartige Konfigurationen notwendig machen solltest. Das würde meines Erachtens auch nicht unbedingt zur Attraktivität deiner Lösung beitragen.
Herbrich19
Herbrich19 27.07.2017 um 13:01:42 Uhr
Goto Top
Hallo,

Es geht um ein System was gewisse Sachen die ich mit meinen Freunden mache vereinfachen. Also er eine bastel Lösung. Ich bau das teil in die Herbrich J Plattform ein, andere nutzen Python und einer hat es schon in C für Linux. Also existiert ein gewisses Protokoll was SRV Einträge voraussetzt. Will jetzt nicht umbedingt der Spielverderber sein face-smile

Gruß an die IT-Welt,
J Herbrich