Kann ich TCP als DNS-Abfrageprotokoll unter Mac OS verwenden?

1467

Ich verwende Mac OS, Snow Leopard 10.6.2, und ich leide unter UDP-Paketverlust während der DNS-Abfrage. Mein Webbrowser ist also zu langsam, um im Internet gut zu surfen. Aber es hat sehr gut funktioniert, als ich eine DNS-Abfrage mit dem dig-Befehl auf TCP ausprobierte.

Ich kann jedoch nicht finden, dass während der DNS-Abfrage ein Steuerungsschalter zur Verwendung von TCP geändert wird. Gibt es eine Möglichkeit, es in Mac OS zu ändern?

Vielen Dank.

3

1 Antwort auf die Frage

4
Alnitak

Es gibt keine Möglichkeit (die ich kenne), die Standard-Resolver-Bibliothek (siehe man 3 res_query) zur Verwendung von TCP für alle Verbindungen zu zwingen, obwohl einzelne Anwendungen dies RES_USEVCbeim Starten des Flags tun können .

Es gibt auch keine Möglichkeit, BIND so zu konfigurieren, dass nur Abfragen über TCP gesendet werden.

Ich glaube, dass Sie dies theoretisch tun könnten, indem Sie Unbound lokal ausführen und das Flag "do-udp" auf "false" setzen. Anschließend setzen Sie 127.0.0.1 in Ihre DNS-Konfiguration in der Netzwerksteuerung.

In der Dokumentation ist jedoch nicht klar, ob Unbound daraufhin Abfragen über UDP beantwortet . Ich teste das ... Nein, es hat nicht funktioniert. Ich habe dem Autor eine E-Mail geschickt ...

Das heißt, Sie sollten das wirklich nicht tun - Sie sollten den wirklichen Fehler finden. Ich bin fest davon überzeugt, dass TCP-Unterstützung in DNS erforderlich ist (ich habe draft-ietf-dnsext-dns-tcp-Requirements-03 geschrieben ), aber es sollte immer noch nur als Fallback verwendet werden, wenn UDP-Nachrichten zu groß sind, um entweder zu passen in 512 Byte oder einem erweiterten EDNS0-kompatiblen Format.

yah, finden Sie die Ursache für den Verlust von Paketen. Schieben Sie dieses Problem nicht beiseite, indem Sie sagen: "Nun, tcp wird das für mich erledigen. Senden Sie einfach Pakete, bis die Anforderung abgeschlossen ist". akira vor 13 Jahren 1