Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von scientific » 03.09.2018 12:14:37

Hi!

Ich arbeite mich gerade ins Thema DNS und VPN ein. Und jetzt steh ich grad von einem Problem.
Ich verwende bind9 und openvpn als Software.

Ich habe von meinem Domain-Provider einen Nameserver, welcher mir meine Servernamen öffentlich auflöst. Das funktioniert sowet.
Da gibt es folgende Hosts:
  • vpn.example.tld
  • ns1.example.tld
  • cloud.example.tld
  • mail.example.tld
  • ldap.example.tld
Alle 5 Hosts sind Virtuelle Server bei einem Hoster und haben jeder eine eigene IP.
Die Servernamen sind ansich aussagekräftig, was darauf läuft. Hoffentlich.

Aus Kostengründen habe ich noch keinen 6. Server. Der sollte dann ns2.example.tld bekommen und einen gespiegelten Slave-DNS erhalten. Einstweilen läuft der gespiegelte DNS-Server noch auf vpn.example.tld.

Auf jedem dieser Hosts läuft ein openvpn-Client, der mit dem Host vpn.example.tld als VPN-Server ein VPN herstellt.

Die VPN-IP-Adressen sind
  • vpn.example.tld: 10.0.100.1
  • ns1.example.tld: 10.0.100.2
  • cloud.example.tld: 10.0.100.dyn
  • mail.example.tld: 10.0.100.dyn
  • ldap.example.tld: 10.0.100.dyn
Wobei dyn bedeutet, dass die IP-Adresse im Range von Openvpn vergeben wird. vpn und ns1 (später auch ns2) haben fixe IP-Adressen. Ich habe ein Skript, welches beim Up und Down einer VPN-Connection die jeweils aktuelle IP-Adresse eines Hosts bind9 mitteilt. welcher diese dann in das Zone-file einträgt. Das funktioniert auch.
Es werden vom openvpn-Client auch die korrekten Routen auf den Hosts eingetragen und beim Abmelden wieder ausgetragen. Und bind9 auf vpn wird automatisch geupdated, wenn sich auf ns1 ein Zonefile ändert. Das klappt auch.
Ich gebe den Searchpath für die Subdomain mit, der lautet "vpn.example.tld". Ein nslookup auf einem er hosts nach z.b. ldap spuckt mir auch die IP-Adresse aus:

Code: Alles auswählen

nslookup ldap
Server:		10.0.100.2
Address:	10.0.100.2#53

Name:	ns1.vpn.example.tld
Address: 10.0.100.1
jedoch

Code: Alles auswählen

nslookup vpn.example.tld
Server:		10.0.100.2
Address:	10.0.100.2#53

*** Can't find vpn.example.tld: No answer

Mein Domain heißt ja example.tld. Im öffentlichen Netz ist vpn.example.tld ein Host in der Domain mit einer eigenen IP-Adresse.
Im VPN ist vpn.example.tld eine Subdomain. Kann die nicht gleichzeitig auch ein Hostname sein? Also eine Abfrage
nslookup vpn.example.tld -> 10.0.100.1
nslookup.ldap.vpn.example.tld -> 10.0.100.dyn
nslookup ldap.example.tld -> public-IP
hätte ich gerne verwirklicht, wenn das VPN eingeschaltet ist.

Geht das, oder geht das nicht? Ich habe nach meiner Recherche mittlerweile die Befürchtung, dass das nicht unbedingt geht... oder ich durchschaue nur die Config nicht...

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von reox » 07.09.2018 08:21:22

Ich glaube wenn du den suchnamen vpn.example.tld vergibst, dann ist ein nslookup vpn.example.tld nichts anderes als vpn.example.tld.vpn.example.tld.

Probier mal einen lookup auf

Code: Alles auswählen

vpn.example.tld.
mit dem punkt hinten.

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von bluestar » 07.09.2018 13:07:13

scientific hat geschrieben: ↑ zum Beitrag ↑
03.09.2018 12:14:37

Mein Domain heißt ja example.tld. Im öffentlichen Netz ist vpn.example.tld ein Host in der Domain mit einer eigenen IP-Adresse.
Im VPN ist vpn.example.tld eine Subdomain. Kann die nicht gleichzeitig auch ein Hostname sein? Also eine Abfrage
nslookup vpn.example.tld -> 10.0.100.1
nslookup.ldap.vpn.example.tld -> 10.0.100.dyn
nslookup ldap.example.tld -> public-IP
hätte ich gerne verwirklicht, wenn das VPN eingeschaltet ist.

Geht das, oder geht das nicht? Ich habe nach meiner Recherche mittlerweile die Befürchtung, dass das nicht unbedingt geht... oder ich durchschaue nur die Config nicht...
Das geht natürlich schau dir einfach mal die Domain "debianforum.de" an ...
Es gibt einen A-Record für "debianforum.de" => 144.76.154.165 und es gibt den Host "www.debianforum.de" mit dem A-Record 144.76.154.165

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von scientific » 12.09.2018 21:48:40

Ich habs mittlerweile gelöst.

Und mittlerweile ganz umgebaut. Ich hab einen authoritativen DNS im VPN, welcher auf die tld ".vpn" hört und alle anderen Anfragen an den DNS des Providers weiterleitet.

Ich bin mir noch nicht ganz sicher, ob ich meine Server überhaupt ausschließlich über VPN erreichbar machen möchte, und alle Ports an öffentlichen IPs einfach abdrehe...
Dagegen spricht manches...

Nextcloud hab ich im Docker laufen und das holt sich selbst über den letsencrypt-companion die SSL-Zertifikate. Das funktioniert aber nur mit öffentlich erreichbarer Domain. Wie ich im Docker-Proxy eine gesplittete Config hinkriege, dass im VPN keine SSL-Verschlüsselung verwendet wird und nach draußen aber schon, weiß ich noch nicht. Andererseits... Chrome und wohl auch demnächst Firefox sollen ja unverschlüsselte Verbindungen in Zukunft gänzlich erschwert zugänglich machen... Und der Sinn einer "Cloud", nämlich von überall auf seine Daten zugreifen zu können, wäre damit auch ad absurdum geführt. Einen VPN-Client + Zertifikat auf einem Rechner zu installieren, wo ich nur einmal z.B. ein Foto herzeigen möchte oder ein Dokument bearbeiten, wäre dann doch ein Schuß mit Kanonen auf Spatzen... Abgesehen von fehlenden Admin-Rechten auf fremden Rechnern.

Bei Ausfall des VPN-Servers könnte ich dann auf die Rechner auch nicht mehr per SSH zugreifen und müsste die Webkonsole des Server-Providers nutzen... Andererseits... wozu dann überhaupt ein VPN?

Ich bin mit meinem Entscheidungsprozess noch nicht so weit fortgeschritten... :-)

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von scientific » 06.11.2018 09:34:14

bluestar hat geschrieben: ↑ zum Beitrag ↑
07.09.2018 13:07:13
scientific hat geschrieben: ↑ zum Beitrag ↑
03.09.2018 12:14:37

Mein Domain heißt ja example.tld. Im öffentlichen Netz ist vpn.example.tld ein Host in der Domain mit einer eigenen IP-Adresse.
Im VPN ist vpn.example.tld eine Subdomain. Kann die nicht gleichzeitig auch ein Hostname sein? Also eine Abfrage
nslookup vpn.example.tld -> 10.0.100.1
nslookup.ldap.vpn.example.tld -> 10.0.100.dyn
nslookup ldap.example.tld -> public-IP
hätte ich gerne verwirklicht, wenn das VPN eingeschaltet ist.

Geht das, oder geht das nicht? Ich habe nach meiner Recherche mittlerweile die Befürchtung, dass das nicht unbedingt geht... oder ich durchschaue nur die Config nicht...
Das geht natürlich schau dir einfach mal die Domain "debianforum.de" an ...
Es gibt einen A-Record für "debianforum.de" => 144.76.154.165 und es gibt den Host "www.debianforum.de" mit dem A-Record 144.76.154.165

Ich fange wieder von vorne an...

Wie muss ich meine Zonefiles gestalten, sodass vpn einen A-Record (oder CNAME?) welcher mir auf proxy.vpn zeigt?
Oder erweitert...

Ein http://vpn soll mir auf die IP-Adresse auflösen, welche mit http://proxy.vpn verbunden ist.
Ein http://superdomain.at ist ein CNAME auf vpn oder gleich auf proxy.vpn?

Ich brauche doch ein eigenes Zone-File für die tld .at, wenn ich so eine Auflöshung haben will. Oder? Dann klappen aber die Auflösungen für alle anderen .at-Domains nicht mehr...
Denn ein Zonefile für superdomain.at im VPN hab ich ja bereits. Und da klappt auch die Auflösung auf die hostnames nach .vpn...

Alles so kompliziert... :-(
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

reox
Beiträge: 2459
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von reox » 06.11.2018 10:17:31

Ich schätze mal das Stichwort was du suchst ist RPZ: https://jpmens.net/2011/04/26/how-to-co ... zones-rpz/

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von r4pt0r » 06.11.2018 15:29:35

Für solche split-horizon Konfigurationen verwendet man i.d.r. Views; allerdings würde ich diese dringend auf lokale Zonen begrenzen und niemals mit öffentlichen Zonen vermischen! Das endet meist im Chaos und erschwert debugging erheblich!

Die searchdomain wird _nur_ angehängt, wenn kein fqdn gesucht wird (=kein Punkt im suchstring). bei "search domain.tld" in der /etc/resolv.conf wird aus "host" "host.domain.tld" aber niemals aus "host.domain.tld" ein "host.domain.tld.domain.tld" - das wäre völliger humbug und würde DNS komplett unbrauchbar machen. I.d.r setzt man "search" auf eine lokale zone (company.lan), nicht auf eine öffentliche zone - sonst landen u.U. haufenweise queries nach lokalen hosts offen im internet und ggf sogar bei NS aus übergeordneten zonen; ausser man nutzt die selbe domain auch komplett im internen Netz mit lokalen resolvern/nameservern, was auch relativ schnell ziemlich haarig wird, speziell wenn nicht alles wirklich auch 'lokal' erreichbar ist und/oder manche Dienste intern und extern mit der selben url/fqdn erreichbar sind. Zudem verwischt man sich jegliche "Lesbare" Unterscheidung zwischen lokalen Netzen/Servern/Diensten und öffentlich zugänglichen Netzen/Servern/Diensten, was IMHO ein ziemliches sicherheitsrisiko darstellt.


In deinem Fall würde ich einfach bei Einwahl ins VPN auch den internen NS am Client setzen lassen (10.0.100.2), der für die lokalen Subnetze (also bei dir aus 10.0.100/24) authorativ ist. Dieser kann innerhalb des privaten Netzes auch problemlos als authorativer NS für die example.tld zone gesetzt werden, um z.b. ldap.example.tld zu beantworten.
Für die extern erreichbare zone + subnetz bleibt weiterhin auch der externe NS authorativ, der aber auch nur in öffentlich routbare IPs auflöst! RFC1819-Adressen sind explizit nur innerhalb lokaler Netze zulässig, somit darf auch kein öffentlich zugänglicher NS solche Adressen zurückgeben.

Mittels views kann/können die selben Server für die internen und externen Zonen zuständig sein. Mittels ACLs (z.b. IP-range 10.0.100/24) wird entschieden in welchem view ein query ausgeführt wird; lokal oder öffentlich.



Ich nutze views hier um in verschiedenen VLANs und Niederlassungen z.B. mit identischen Hostnamen für generische Dienste arbeiten zu können. So wird z.b. für ntp.domain.loc in jedem VLAN und jeder Niederlassung der jeweils lokale bzw im selben subnet befindliche NTP-server aufgelöst oder, falls nur einmal vorhanden, z.b. die IP des entsprechenden Servers in der DMZ am Hauptstandort.
Kurznamen werden nur per CNAME definiert, nie direkt mit IP - im Hintergrund wird alles hierarchisch in eigenen zonen verwaltet: <hostname>.<netz>.<standort>.<localdomain>.lan; also z.b. ns1.wlan.a.localdomain.lan ist der primäre NS für das wlan an standort a - die clients in diesem Netz lösen aber einfach nur ns1.localdomain.lan auf, was in deren view ein CNAME auf den genannten langen fqdn ist.
DNS ist ein hierarchischer dienst; man sollte ihn also auch so nutzen um die logischen Strukturen abzubilden und nicht alles krampfhaft direkt in der domain-zone zusammenwursten - und erst recht nicht globale und lokale Adressen vermischen!
Für externe domains sind ausschließlich unsere externen NS zuständig; das Subnetz das hier lokal von unserem AS announced wird und in das einige Einträge in den öffentlichen zonen aufgelöst werden, bleibt beim routing hier intern aber immer komplett von lokalen netzen isoliert; was dann auch immer durch die domainnamen sofort ersichtlich ist. Ich würde wahnsinnig werden wenn z.b. lokaler und externer mailserver in den logs mit dem selben fqdn auftauchen würden, weil lokal die selbe domain genutzt wird.



Zur eigentlichen Frage: Subdomain und Hostnamen können natürlich identisch sein; es können auch beliebige weitere Subdomains angelegt werden, was meistens wesentlich sinnvoller ist.
So habe ich auch meine "private" externe Infrastruktur im DNS logisch/hierarchisch komplett unterteilt um schnell und einfach zuordnen zu können wo sich was befindet. Als Schema kommt bei mir [jail|dienst].hostname.region.land.domain.tld zum Einsatz: Z.B. postfix.prometheus.fra1.de.domain.tld ist ein jail mit Hostname "postfix" (=Dienst der darin läuft) auf host (=server/VPS) prometheus im DC FRA1, Deutschland und gehört zu domain.tld.
Der host ist ganz normal per prometheus.fra1.de.domain.tld erreichbar.
Diese hierarchische Unterteilung vermeidet auch kollisionen bei SSL-Zertifikaten von Let's Encrypt und man kann die access tokens z.b. für die DNS-API zum erneuern der Zertifikate stark begrenzen - kein Host hat per API zugriff auf die übergeordnete Zone, immer nur auf eine möglichst tiefe subdomain (i.d.r. den hostnamen). Die höchste zone (domain.tld) wird nur manuell von mir verwaltet.

Das was dann von Menschen oder Usern (ja, oder :wink: ) per URL erreicht werden soll, bekommt einfach einen CNAME direkt in der primären zone; also z.B. webmail.domain.tld CNAME squirrelmail.atlas.ams2.nl.domain.tld. Das macht load-balancing, migrationen und updates wesentlich einfacher.

Benutzeravatar
bluestar
Beiträge: 2334
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von bluestar » 06.11.2018 17:09:50

scientific hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 21:48:40
Nextcloud hab ich im Docker laufen und das holt sich selbst über den letsencrypt-companion die SSL-Zertifikate. Das funktioniert aber nur mit öffentlich erreichbarer Domain.
Ich würde an dieser Stelle LetsEncrypt über DNS-Challange verwenden und gar kein unverschlüsseltes HTTP mehr anbieten, außerdem kannst do so dein HTTPs ggfs. auch auf einem anderen Port einrichten => zur Erhöhung der Sicherheit.
scientific hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 21:48:40
Bei Ausfall des VPN-Servers könnte ich dann auf die Rechner auch nicht mehr per SSH zugreifen und müsste die Webkonsole des Server-Providers nutzen... Andererseits... wozu dann überhaupt ein VPN?
Warum willst du denn einen Single-Point of Failure in Form des VPN-Servers aufsetzen?
Nutze doch einfach konsequent und durchgängig verschlüsselte Verbindungen zwischen den Servern untereinander.

r4pt0r
Beiträge: 1237
Registriert: 30.04.2007 13:32:44
Lizenz eigener Beiträge: MIT Lizenz

Re: Ist es möglich Subdomain und Hostname mit gleichem Namen zu haben

Beitrag von r4pt0r » 06.11.2018 17:26:50

bluestar hat geschrieben: ↑ zum Beitrag ↑
06.11.2018 17:09:50
scientific hat geschrieben: ↑ zum Beitrag ↑
12.09.2018 21:48:40
Bei Ausfall des VPN-Servers könnte ich dann auf die Rechner auch nicht mehr per SSH zugreifen und müsste die Webkonsole des Server-Providers nutzen... Andererseits... wozu dann überhaupt ein VPN?
Warum willst du denn einen Single-Point of Failure in Form des VPN-Servers aufsetzen?
Nutze doch einfach konsequent und durchgängig verschlüsselte Verbindungen zwischen den Servern untereinander.
Eigentlich gibt es dafür auch private Networking zwischen den Servern (sofern alle Server im selben stehen).

Allerdings sehe ich eigentlich auch keinen Grund wozu bei diesen Diensten überhaupt ein privates Netz zum zugriff nötig sein sollte - einfach die Dienste 'ganz normal' mit der global routbaren IP und den entsprechenden records am DNS (nur für eine globale zone) betreiben und gut ist. Dann braucht man auch keine Verrenkungen mit den SSL-Zertifikaten für lokale Domains...

Antworten