GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie simuliere ich das Zeitlimit für die Antwort des DNS-Servers?

Lösung 1:

Ein Verbindungstimeout tritt auf, wenn der DNS-Server überhaupt nicht oder nicht rechtzeitig antwortet.

Ersteres kann simuliert werden, indem einfach der gesamte Datenverkehr zu Ihrem DNS-Server blockiert wird, beispielsweise auf einem Linux-System mit:

# iptables -I OUTPUT -p udp -d <iIP of DNS server> --dport 53 -j DROP

Wenn Sie DROP als Ziel verwenden, erhalten Sie nicht einmal einen Verbindungsverweigerungsfehler, sondern es wird nur ein schwarzes Loch. (Es ist unwahrscheinlich, dass Sie normalerweise Zonentransfers durchführen würden, daher ist es nicht erforderlich, das TCP-Protokoll zusätzlich zu UDP zu blockieren.)

Das Erstellen von Verzögerungen ist etwas komplizierter. Aus dem netem Handbuch:

# tc qdisc add dev eth0 root handle 1: prio
# tc qdisc add dev eth0 parent 1:3 handle 30: tbf rate 20kbit buffer 1600 limit  3000
# tc qdisc add dev eth0 parent 30:1 handle 31: netem  delay 200ms 10ms distribution normal
# tc filter add dev eth0 protocol ip parent 1:0 prio 3 u32  match ip dst <IP_of_DNS_server>/32 flowid 1:3

Dadurch entsteht eine Verzögerung von 200 ms mit einer zufälligen Variation von ± 10 ms.

Lösung 2:

Was Sie brauchen, ist ein "Black-Hole-Server". Sie können blackhole.webpagetest.org verwenden (72.66.115.13 ), wodurch alle Anfragen stillschweigend verworfen werden.

Warum ich dies gegenüber den anderen Antworten vorschlage, liegt darin, dass der oben genannte Server ausschließlich zu diesem Zweck eingerichtet wurde.

Beispiel:

[email protected]:~$ dig example.com @72.66.115.13

; <<>> DiG 9.10.3-P4-Debian <<>> example.com @72.66.115.13
;; global options: +cmd
;; connection timed out; no servers could be reached

Lösung 3:

nameserver 127.0.0.1 wird nicht funktionieren, da dies bereits das Standardverhalten ist. Versuchen Sie stattdessen, ein nicht vorhandenes DNS zu verwenden. Um sicherzugehen, können Sie Folgendes tun:

nslookup example.com 192.0.2.10

Wenn Sie keine Antwort erhalten, können Sie 192.0.2.10 verwenden als Ihren DNS-Server.

Lösung 4:

Wenn Sie auf Ihrem Testsystem keinen DNS-Server betreiben, sollten Sie dessen IP-Adresse verwenden können.

Sie könnten versuchen, eine unbenutzte rfc1918-Adresse zu verwenden.

Sie könnten die Firewall Ihres Servers verwenden, um ausgehende Pakete mit einem Zielport 53 zu blockieren.


Linux
  1. So beheben Sie das 504-Gateway-Timeout in Nginx Server

  2. So überprüfen Sie die Konfigurationsdateien von bind9 (DNS-Server).

  3. So erhöhen Sie das Timeout der SSH-Verbindung

  4. So deaktivieren Sie die DNS-Rekursion auf Ihrem dedizierten Server

  5. Erstellen Sie einen DNS-Server

So konfigurieren Sie den DNS-Server unter Debian 10 / Debian 9

So konfigurieren Sie den DNS-Server unter Ubuntu 18.04 / Ubuntu 16.04

So installieren Sie den DNS-Server unter Ubuntu 20.04 LTS

So installieren Sie die DNS-Rolle auf Windows Server 2012

So konfigurieren Sie DNS in Windows Server 2012

So installieren und konfigurieren Sie den DNS-Server unter Linux