Probleme mit internem DNS

BlackPixel

Blog Benutzer
Hey Leute,

ich betreibe intern einen Projektserver (Parallels mit eigener IP Adresse) auf dem Kundenprojekte zur Entwicklung angelegt sind. Das System ist ein CentOS 7 mit Bind, Webmin und Virtualmin. Aktuell sind ca. 80 Hosts mit rund 400 Domains angelegt. Der Server ist auf port 80 und 443 ans Internet angebunden, um Kunden auf Ihre Projekte schauen zu lassen die sich gerade in der Entwicklung befinden. Der Server nutz hierbei eine dedizierte Leitung mit fester IP und geht über eine Fritzbox raus.

Für die Clients im Netzwerk stehen mehrere Router zum rausgehen zur Verfügung, welche über einen Virtualbox Router mit Zeroshell und einem Net Balancer gemanaged werden. Die Router befinden sich im Adressbereich 192.168.1.1 -10, der Router, welche alle Clients verwenden, liegt auf 192.168.1.50. Der Entwicklungsserver horcht auf 192.168.1.61.

Auf meinen Clients habe ich nun folgende DNS Server eingetragen:

192.168.1.61 (zur Auflösung der Domains intern)
192.168.1.50
8.8.8.8

Der Entwicklungsserver hat Domaineinträge nach diesem Schema angelegt und im Bind eingetragen:

www.projektname.de.projektserver.local.example.com

Bei meinem Domainprovider ist ein A-Record auf *.projektserver.local.example.com mit der öffentlichen IP Adresse angelegt. Nun habe ich immer wieder das Problem, dass die Aufrufe der Domains mit der Öffentlichen Domain ausgeführt werden. Das bedeutet, dass ich die Daten über die Leitung des Server ausgehend und über einen anderen Router wieder eingehend empfange. Ich kann das Problem lösen, indem ich dann in einen Client (MacOS) in die Netzwerkeinstellungen gehe, den 192.168.1.61 DNS eintrag an die unterste Stelle schiebe, dann "Anwenden" klicke, den Eintrag wieder nach oben ziehe und das erneut anwende. Dann werden intern die Adressen wieder korrekt zur 192.168.1.61 aufgelöst. Das geht dann eine ganze Zeit gut (paar Stunden), und dann werden die Adressen plötzlich wieder über die öffentliche IP aufgelöst.

Hat jemand eine Ahung wo ich dran drehen muss, dass die Internen Adressen auch immer intern aufgelöst werden?

Die DNS Einträge werden über Virtualmin automatisch angelegt und sehen in etwa so aus:

Code:
$ttl 38400
@	IN	SOA	projektserver.local. root.projektserver.local. (
			1519994325
			10800
			3600
			604800
			38400 )
@	IN	NS	projektserver.local.
kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
www.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
ftp.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
m.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
localhost.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	127.0.0.1
webmail.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
admin.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
mail.kundenprojekt.com.projektserver.lokal.example.com.	IN	A	192.168.1.61
kundenprojekt.com.projektserver.lokal.example.com.	IN	MX	5 mail.kundenprojekt.com.projektserver.lokal.example.com.
kundenprojekt.com.projektserver.lokal.example.com.	IN	TXT	"v=spf1 a mx a:kundenprojekt.com.projektserver.lokal.example.com ip4:192.168.1.61 ip6:fe80::21c:42ff:fe64:8df9 ?all"
Für ne Idee hierzu wäre ich echt froh, Danke!
 

danton

Debian User
Nur die 192.168.1.61 als DNS-Server verwenden. Falls dieser DNS keine Internet-Adressen auflösen kann, muss ggfl. noch ein Forwarding dort auf dem DNS konfiguriert werden. Außerdem: Warum machst du die Seiten auch noch über deinen langen Namen aus dem Internet zugänglich - den benötigst du doch eigentlich nur Netzintern.
 

BlackPixel

Blog Benutzer
Danke für Deine Antwort. Nur diesen DNS Server zu nutzen würde voraussetzen, dass er immer Up sein muss, ist er aber nicht, sondern meistens nur zu den üblichen Geschäftszeiten. Noch eine andere Idee?

Die langen brauche ich um den Kunden ab und an ein Preview schicken zu können. Doppelte Domains (intern/extern) kommt eigentlich wegen der Masse an Domains nicht infrage. Es ist ein TYPO3 Entwicklungsserver, und viele Projekte sind sehr komplex (mehrere Seitenbaume und Domain Aliases) und ich muss die öffentliche Struktur intern abbilden können. Müsste ich für jede interne Domain noch eine externe hinzufügen, wäre das ganz schnell sehr unübersichtlich. Drum sollte intern mit den gleichen Domains wie extern gearbeitet werden.

Nachtrag:
Ich habe noch den Zeroshell der das Net Balancing intern macht. Hier ist auch ein DNS Server enthalten, aktuell aber nicht aktiv. Dieser Server macht auch die DHCP Leases, da könnte ich dann den Zeroshell als einziger DNS im DHCP verwenden. Kann ich die Zonen irgendwie vom Enwticklungsserver auf den Router übertragen oder replizieren? Bin leider nicht so der DNS Held, und habs da mal versucht, kann aber keine Wildcard Records anlegen...
 
Last edited by a moderator:

BlackPixel

Blog Benutzer
Also, ich bin ein Stück weiter und wollte nochmal nachfragen ob das so stimmt, zumindest geht es aktuell:

Auf dem Entwicklungsserver sind automatisch alle Master Zonen angelegt. Ich habe mehre third level domains von verschiedenen Agenturen die einen Wildcard auf diese angelegt haben. Darunter vergebe ich auf dem Entwicklungsserver die ganzen 4., 5. und 6. Level Domains. In meinem Zeroshell habe ich jetzt für jede interne Third Level Domain einen Eintrag in der DNS Forwarders List erstellt mit der IP auf den Entwicklungsserver. Der DHCP Vergibt jetzt nur noch einen DNS Server, und das ist der Zeroshell direkt. Wenn ich den DNS Cache auf einem CLient flushe und das Lease erneure funktioniert alles. Aufläsung nach extern und korrekte AUflösung nach intern mit allen Third Level Domains und den untergeordneten Einträgen.

Ist das so der richtige Weg? Ich hatte erst auf dem Zeroshell mit DNS Slave Zones rumgespielt, aber ich glaube das war nicht ganz das was ich gesucht hatte. Ich habe zwar viele Zonen vom Master übertragen können, aber irgendwie nicht alle.

Danke & Gruß Manfred
 

danton

Debian User
Prinzipiell sollte das passen. Ein Forwarder-Eintrag deutet darauf hin, dass sich Zeroshell die jeweiligen Einträge dann vom DNS-Server holt, der auf der dort eingetragenen IP läuft. Somit dürfte Zeroshell die Einträge nur cachen - das könnte zu Problemen führen, wenn dein Entwicklungsserver nicht läuft und somit die weitergeleiteten Anfragen von Zeroshell nicht beantworten kann. Das mußt du ggfl. ausprobieren und evtl. Caching-Zeiten im Zeroshell und/oder DNS-Server auf der Entwicklungskiste anpassen - fällt aber IMHO in die Kategorie "Feintuning".
 

BlackPixel

Blog Benutzer
Vielen Dank für Deinen Hinweis. Wie funktioniert das mit dem Caching Prinzipiell? Holt sich die Zeroshell die Einträge nur vom DNS Server, wenn diese durch einen Client abgefragt werden oder in bestimmten Intervallen? Grundsätzlich werden intern keine Anfragen an die internen Domains gestellt wenn der DNS Server aus ist. Wenn der aus ist sind die Clients, die darauf zugreifen dann auch aus. Dürfte dann kein Problem geben, oder?

Vielen Dank für Dein Feedback!

LG Manfred
 

danton

Debian User
Ja, es landen nur die Einträge im Cache, die auch abgefragt wurden. Sonst müßtest du einen Secondary Nameserver betreiben, der die komplette Zone vom Primary holt - dürfte für dich aber nicht notwendig sein.
Die Cache-Zeit läßt sich um einen über die TTL der Zone regeln und ggfl. auch im cachenden Nameserver (ob Zerofill das kann, weiß ich nicht, habe damit noch nciht zu tun gehabt). Es gibt zusätzlich noch eine negative TTL, die kommt zum Zuge, wenn eine Auflösung fehlschläg. Diese sollte relativ niedrig eingestellt sein, damit ein "nicht gefunden" nur möglichst kurz aus dem Cache bedient wird und dann wieder eine neue Anfrage an den Nameserver gestellt wird.
 

BlackPixel

Blog Benutzer
Cool, danke für die Infos, hab jetzt alles perfekt eingestellt. Funzt 1a!

Danke für Deinen Support, wünsche Dir ein schönes WE!

LG Manfred
 
Top