Preciso testar o comportamento de um aplicativo quando ele não pode resolver um nome de host devido a um tempo limite. Definir nameserver 127.0.0.1
em /etc/resolv.conf
não funcionou: as funções relevantes retornar imediatamente com uma exceção. O equipamento de teste é uma VM criada com o Vagrant que recebe seu endereço IP via DHCP.
linux
domain-name-system
linux-networking
sinapse
fonte
fonte
nslookup example.com non_existent_dns_ip
saídas:;; connection timed out; trying next origin ;; connection timed out; no servers could be reached
Um tempo limite de conexão ocorre quando o servidor DNS não responde, ou não responde em tempo hábil.
O primeiro pode ser simulado simplesmente bloqueando todo o tráfego para o servidor DNS, em um sistema Linux, por exemplo, com:
Usar o DROP como destino significa que você nem receberá um erro de conexão recusada, ele se tornará apenas um buraco negro. (É improvável que você normalmente faça transferências de zona, portanto, não é necessário bloquear o protocolo TCP além do UDP.)
Criar atrasos é um pouco mais envolvido. Do
netem
manual :O que cria um atraso de 200 ms com variação aleatória de ± 10 ms.
fonte
O que você precisa é de um "servidor buraco negro". Você pode usar
blackhole.webpagetest.org
(72.66.115.13
) que eliminará silenciosamente todas as solicitações.Por que sugiro isso sobre as outras respostas, é porque o servidor mencionado acima foi estabelecido para esse único propósito.
Exemplo:
fonte
Se você não estiver executando um servidor DNS no seu sistema de teste, poderá usá-lo.
Você pode tentar usar um endereço rfc1918 não utilizado .
Você pode usar o firewall do servidor para bloquear pacotes de saída com uma porta de destino 53.
fonte