DNS proxy of forwarder

Pagina: 1
Acties:

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Nu online

CAPSLOCK2000

zie teletekst pagina 888

Topicstarter
Ik heb in mijn netwerk twee DNS servers, A en B.

A is een "normale" DNS server met een "echt" IPv4 adres.
A draait Bind9 en zorgt voor het domein "example.com".

B is niet extern bereikbaar en is verantwoordelijk voor "subdomein.example.com".
Het is niet mogelijk om dit subdomein ook op A te hosten, het moet een aparte
DNS server zijn (en dus met een intern IP-adres).
B draait aparte software. Het is noodzakelijk dat alle queries voor dit subdomein
ook door server B zelf behandeld worden.

Ik wil dat clients van buiten toch met B kunnen praten. Hiertoe wil ik Bind op server A als proxy gebruiken
en heb ik het volgende opgenomen in de configuratie van A:

code:
1
2
3
4
5
zone "subdomein.example.com" {
        type forward;
        forward only;
        forwarders { 192.168.1.54; }; # ip adres van server B
};


Vervolgens heb ik glue records opgenomen voor subdomein.example.com die wijzen naar A:

code:
1
subdomein        NS      nameserverA


Het plan was dat een client die www.subdomein.example.com eerst te horen krijgt dat server A de master is. Als die client dan bij server A aanklopt dan zou server A dat verzoek moeten forwarden naar server B.
Voor de buitenwereld lijkt het dan net of het subdomein echt door server A wordt beheerd.

Zover de theorie. In praktijk gaat het mis.


code:
1
2
3
4
5
6
7
8
9
10
11
12
$ dig +trace subdomein.example.com nameseverA
<knip>
subdomein.gielen.name.      3600    IN      NS      nameserverA
;; BAD (HORIZONTAL) REFERRAL
;; Received 97 bytes from 1.2.3.4#53(nameserverA.example.com) in 0 ms

subdomein.gielen.name.      3600    IN      NS      nameserverA
;; BAD (HORIZONTAL) REFERRAL
;; Received 97 bytes from 1.2.3.4#53(nameserverA.example.com) in 0 ms

nog 30 keer
dig: too many lookups


Ik denk dat het probleem is dat Bind ziet dat hij wordt doorverwezen naar zichzelf terwijl hij weet dat hij zelf geen master is. Op zich is dat een goede redenatie, maar in dit geval klopt het niet.

En dan de vragen:
1. Snap ik dit probleem goed?
2. Is er een manier om bind te overtuigen om die query toch te forwarden?
3. Zou het helpen om een aparte "view" van het domein te maken voor server A, zodat server A wel weet dat de authoriteit bij server B ligt, of gaat server A dat dan gewoon aan z'n clients doorvertellen in plaats van de query te proxyen.

Voor de duidelijkheid;, dat subdomein moeten echt door server B zelf afgehandeld worden .Iedere vorm van caching door A is niet geschikt. (B is geen normale DNS server).
Op server A heb ik meer vrijheid. Ik ben heel tevreden met Bind maar ik ben er niet mee getrouwd. Als
een andere DNS server geschikter zou zijn dan is dat ook goed.

Als alternatief heb ik gekeken naar dnsproxy, maar dat kijkt niet naar het domein maar alleen naar het type query (authorative vs. recursive) en is voor mijn doeleinden niet geschikt.

5. Is er een DNS proxy of server die afhankelijk van het domein de query forward, niet aan caching doet en niet intelligent probeert te doen zoals bind?

[update]
En net nadat je het aan tweakers vraagt begint het te werken....
Eerlijk gezegd snap ik nog niet wat ik fout deed of wat ik nu anders doe, maar opeens werkt het. Ik zou deze post weg kunnen gooien maar ik laat hem liever staan zodat anderen kunnen terugvinden dat deze gestoorde configuratie echt kan werken. Trouwens, ik heb nog een vraag.

Het volgende probleem is dat om dit allemaal te laten werken recursie moet worden toegestaan. Het is echt niet verstandig om recursie zomaar toe te staan. Ik zou recursie dus willen toestaan voor 1 specifiek subdomein. Bind kan (voor zover ik weet) recursie alleen toestaan op grond van het IP adres van de client en niet op grond van de query zelf.
Is er een mogelijkheid om toch recursie voor 1 domein toe te staan? (danwel met bind, danwel met een andere server).

[ Voor 11% gewijzigd door CAPSLOCK2000 op 12-07-2010 21:52 ]

This post is warranted for the full amount you paid me for it.