Dig-Befehl: Wird die Ausgabe garantiert garantiert?

470
BorrajaX

Nehmen wir an, ich versuche, die IPs nachzuschlagen mail.yahoo.com, gmail.comundmail.google.com

Wenn ich ausführen:

dig @8.8.8.8 +nocomments +noquestion \ +noauthority +noadditional +nostats +nocmd \ gmail.com mail.yahoo.com mail.google.com 

Ich bekomme:

gmail.com. 299 IN A 173.194.123.21 gmail.com. 299 IN A 173.194.123.22 mail.yahoo.com. 0 IN CNAME login.yahoo.com. login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com. ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net. ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net. any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169 mail.google.com. 0 IN CNAME googlemail.l.google.com. googlemail.l.google.com. 243 IN A 173.194.123.21 googlemail.l.google.com. 243 IN A 173.194.123.22 

Kann ich sicherstellen, dass wenn ein CNAMEDatensatz angezeigt wird, der Aentsprechende Datensatz nicht vor einem CNAMEentsprechenden Computer oder einem Aanderen Hostnamen angezeigt wird?

Lassen Sie mich zum Beispiel konzentrieren mail.yahoo.com(Ich möchte nur, dass sich die IP oder IPs mail.yahoo.comauflöst):

Dies ist die Ausgabe:

mail.yahoo.com. 0 IN CNAME login.yahoo.com. login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com. ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net. ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net. any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169 

Der Hostname, nach dem ich suche ( mail.yahoo.com), ist die erste Spalte des ersten Eintrags. Dann gibt es eine Menge von CNAMESmir, die mich wirklich nicht interessiert, und dann eine AAufzeichnung mit der tatsächlichen IP (die mich interessiert).

Gibt es eine Möglichkeit, die CNAMESoder die AAufzeichnungen außer Betrieb zu setzen? So etwas wie:

ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net. #(!)BAD ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net. #(!)BAD mail.yahoo.com. 0 IN CNAME login.yahoo.com. login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com. any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169 

Oder noch schlimmer (der eigentliche ARekord oben):

any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169 mail.yahoo.com. 0 IN CNAME login.yahoo.com. login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com. ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net. ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net. 

Oder das Schlimmste vom Schlechten (in einer digAusführung mit mehreren Auflösungen, wie die oben auf dem Beitrag angezeigte):

ats.member.g02.yahoodns.net. 0 IN CNAME any-ats.member.a02.yahoodns.net. any-ats.member.a02.yahoodns.net. 17 IN A 98.139.21.169 mail.google.com. 0 IN CNAME googlemail.l.google.com. # This one I want gmail.com. 299 IN A 173.194.123.21 # This one I want gmail.com. 299 IN A 173.194.123.22 # This one I want mail.yahoo.com. 0 IN CNAME login.yahoo.com. # This one I want login.yahoo.com. 0 IN CNAME ats.login.lgg1.b.yahoo.com. ats.login.lgg1.b.yahoo.com. 0 IN CNAME ats.member.g02.yahoodns.net. googlemail.l.google.com. 243 IN A 173.194.123.21 googlemail.l.google.com. 243 IN A 173.194.123.22 

Danke im Voraus.

0

1 Antwort auf die Frage

0
Micah

Nein - Die Reihenfolge des zurückgegebenen Ergebnisses hängt vom DNS-Server ab, und Sie haben keine Kontrolle darüber. Daher würde ich nicht von der Reihenfolge eines bestimmten DNS-Servers abhängen.

Ich glaube und meine bisherigen Tests haben dies bestätigt, dass die eigentlichen Abfragen in der Reihenfolge durchgeführt werden, in Ihrem Fall zuerst google.com und last mail.google.com. Das liegt daran, dass dig die Abfragen in der Reihenfolge ausführt Geben Sie in der Befehlszeile an.

Aufgrund der Art der Einrichtung der Befehlszeilensyntax ist die Reihenfolge wichtig. Also meine Antwort. Wenn sie nicht in der angegebenen Reihenfolge an sie herangeführt werden, werden alle nicht-globalen Modifikatoren vermasselt.

Aus der Manpage:

Die BIND 9-Implementierung von dig unterstützt die Angabe mehrerer Abfragen in der Befehlszeile (zusätzlich zur Option -f Batch-Datei). Jede dieser Abfragen kann mit eigenen Flags, Optionen und Abfrageoptionen versehen werden.

In diesem Fall steht jedes Abfrageargument für eine einzelne Abfrage in der oben beschriebenen Befehlszeilensyntax. Jede besteht aus einer der Standardoptionen und Flags, dem zu suchenden Namen, einem optionalen Abfragetyp und einer optionalen Klasse sowie beliebigen Abfrageoptionen, die auf diese Abfrage angewendet werden sollen.