PowerDNS Recursor + EDNS + Adobe

Lord Gurke

Nur echt mit 32 Zähnen
Hallo zusammen,

ich habe derzeit ein sehr merkwürdiges Problem mit meinen PowerDNS-Recursorn:
Bei manchen Hosts (z.B. ardownload.adobe.com) versagt die Auflösung von CNAME-Records bis zum A-Record.
Ein konkretes Beispiel:

Ich frage ardownload.adobe.com an:
Code:
back-ffm3:~# dig @78.xxxxxx ardownload.adobe.com

; <<>> DiG 9.5.1-P3 <<>> @78.xxxxxx  ardownload.adobe.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28371
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ardownload.adobe.com.          IN      A

;; ANSWER SECTION:
ardownload.adobe.com.   3600    IN      CNAME   ardownload.wip4.adobe.com.

;; AUTHORITY SECTION:
wip4.adobe.com.         30      IN      SOA     3dns-4.adobe.com. hostmaster.3dns-4.adobe.com. 605 10800 3600 604800 60
Damit kann ein Webbrowser natürlich nicht viel anfangen und gibt die Fehlermeldung über einen nichtexistenten Host aus.

Ich konnte inzwischen EDNS dafür verantwortlich machen - denn schalte ich es ab, funktioniert die Auflösung wieder wie gewohnt:

Code:
back-ffm3:~# dig @78.xxxxx ardownload.adobe.com

; <<>> DiG 9.5.1-P3 <<>> @78.xxxxxx ardownload.adobe.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58767
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ardownload.adobe.com.          IN      A

;; ANSWER SECTION:
ardownload.adobe.com.   3600    IN      CNAME   ardownload.wip4.adobe.com.
ardownload.wip4.adobe.com. 300  IN      CNAME   ardownload.adobe.com.edgesuite.net.
ardownload.adobe.com.edgesuite.net. 21600 IN CNAME a1953.d.akamai.net.
a1953.d.akamai.net.     20      IN      A       92.123.68.147
a1953.d.akamai.net.     20      IN      A       92.123.68.171
a1953.d.akamai.net.     20      IN      A       92.123.68.113

Auf dem Server läuft die derzeit aktuellste Version 3.2.
In der Server-Config stand bisher immer ein
disable-edns=off
was aber zu dem Fehler in der ersten Box führt. Schalte ich die Einstellung auf "on" um, funktioniert die Auflösung wieder wie gewohnt.

Ist das ein Fehler vom PowerDNS oder kann der Server von Adobe nicht mit EDNS umgehen? Im Log vom PowerDNS ist leider auch nichts zu finden, wie z.B. kaputt oder unbekannte Pakete etc...

Ich habe im Moment keine Probleme damit, EDNS ausgeschaltet zu lassen - nur würde mich halt interessieren ob die Ursache für die Fehler bei mir oder bei Adobe zu suchen sind.
Hat eventuell jemand einen funktionierenden DNS-Recursor (muss ja kein PDNS sein), der mit der EDNS-Erweiterung arbeitet und darüber mal ardownload.adobe.com anfragen?


Danke schonmal und viele Grüße aus dem Tal
Max
 
Hast du einfach testweise mal den öffentlichen DNS-Server von Google probiert. Ist die 8.8.8.8 und die 8.8.4.4 (siehe hier)
 
Hi Max,
der NS-Server 78.xxxxxx ist dein eigener DNS?
Frag doch mal mit dig den für adobe.com zuständigen NS ab.
(Ich sitz grad hinter einer Firewall die keine NS-Queries duchlässt... :o)

Du kannst im Query mitgeben ob EDNS verwendet werden soll.
Code:
$ dig @nameserver +noall +comments +edns=0 ardownload.adobe.com

Bei Wikipedia findet man noch den Hinweis, dass gerade ältere Firewalls solche Pakete blocken, da die paketsize größer als 512 bytes wird.

Beste Grüsse. ;)
 
@danton:
Die habe ich getestet - die liefern mir die korrekten A-Einträge zurück. Allerdings scheint der Google-DNS auch keine EDNS-Erweiterungen zu unterstützen, da zumindest der RIPE-Test (siehe weiter unten) fehlschlägt.

@fuchzga:
Genau, das ist einer meiner eigenen ;)
Ich habe jetzt mal von mehreren Orten aus direkt den Adobe-DNS befragt. Ergebnis immer:

Code:
back-ffm3:~# dig @adobe-dns.adobe.com +noall +comments +edns=0 ardownload.adobe.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48795
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
Auch als ich testweise die Firewall mal komplett ausschaltete und es auch per TCP mal probiert habe (soll ja manchmal bei Firewall-Problemen helfen), kam nichts anderes dabei raus.

Grundsätzlich sollte die Firewall aber hier nichts blockieren, das hatte ich mit dem Test vom RIPE verifiziert:

Code:
rejectix:~# dig @78.xxxxxx test.rs.ripe.net TXT

; <<>> DiG 9.5.1-P3 <<>> @78.xxxxxx test.rs.ripe.net TXT
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49818
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.rs.ripe.net.              IN      TXT

;; ANSWER SECTION:
test.rs.ripe.net.       60      IN      CNAME   rst.x1178.rs.ripe.net.
rst.x1178.rs.ripe.net.  59      IN      CNAME   rst.x1183.x1178.rs.ripe.net.
rst.x1183.x1178.rs.ripe.net. 58 IN      CNAME   rst.x1154.x1183.x1178.rs.ripe.net.
rst.x1154.x1183.x1178.rs.ripe.net. 57 IN TXT    "78.46.93.84 summary bs=1200,rs=1183,edns=1,do=0"
rst.x1154.x1183.x1178.rs.ripe.net. 57 IN TXT    "78.46.93.84 DNS reply size limit is at least 1183 bytes"
rst.x1154.x1183.x1178.rs.ripe.net. 57 IN TXT    "78.46.93.84 sent EDNS buffer size 1200"
Die Anfrage kam von außen, was zeigt, dass auf der Strecke zwischen Recursor und Client keine Firewall stört und der Recursor selbst auch mit anderen Servern entpsrechend zusammenarbeiten kann.
 
Hab grad nochmal getestet.
Ich glaube der adobe-dns.adobe.com hat das Problem.
Sobald man EDNS aktiviert kommt nur noch BADVERS zurück.
Das würde darauf hinweisen, dass EDNS nicht implementiert ist.

Code:
$ dig @adobe-dns.adobe.com +edns=1 ardownload.adobe.com

Beim GoogleDNS (8.8.8.8) das selbe Ergebnis.
 
Dann bin ich ja froh, dass ich da wenigstens mal ausnahmsweise nichts dafür kann :D
Kennst du eventuell eine Möglichkeit, wie ich dem PDNS sagen kann:
Nutze EDNS nur dann, wenn die Gegenstelle es auch versteht? Ich habe nur "entweder an oder aus" gefunden, aber kein "mach an, wenn geht".
 
Unterstützt eigentlich überhaupt schon jemand EDNS1?
Mit "+edns=0" geht es jedenfalls - dieselbe Antwort wie bei "+noedns".
 
Moin,

Kennst du eventuell eine Möglichkeit, wie ich dem PDNS sagen kann:
Nutze EDNS nur dann, wenn die Gegenstelle es auch versteht? Ich habe nur "entweder an oder aus" gefunden, aber kein "mach an, wenn geht".
Dazu kenn ich den PowerDNS zu wenig.
Beim BIND9 ist es so implementiert worden. Wenn auf einen EDNS-Query ein Fehler geantwortet wird, dann wird der Query nochmal wiederholt, dann jedoch ohne EDNS.
Sogar den DNS im Windows2003 kann man konfigurieren, dass er ein probe auf EDNS macht. :D

Ich bin mir inzwischen überhaupt nicht mehr sicher, wo eigentlich das Problem liegt.
Auf dem adobe-dns.adobe.com werkelt ein BIND9:
Code:
$ fpdns adobe-dns.adobe.com
Die werden den doch nicht ohne EDNS aufgesetzt haben?

So langsam schwant mir, dass das hier...
Ich glaube der adobe-dns.adobe.com hat das Problem.
Sobald man EDNS aktiviert kommt nur noch BADVERS zurück.
Das würde darauf hinweisen, dass EDNS nicht implementiert ist.
... bullshit ist. :eek:

Denn eine Abfrage mit +edns=1 bewirkt das EDNS Version 1 genutzt wird.
Laut RFC gibt es aber nur EDNS Verison 0.. darum heißt es auch EDNS0
Und BADVERS sagt nix anderes, als das der Query mit einer unbekannten EDNS Version ankam.

Unterstützt eigentlich überhaupt schon jemand EDNS1?
Danke auch für den richtigen Tipp. :o

Darum nun nochmal:

Code:
$ dig @8.8.8.8 +comment +edns=0 ardownload.adobe.com
Hier passt alles.
 
Back
Top