Saya perlu menguji perilaku aplikasi ketika itu tidak dapat menyelesaikan nama host karena batas waktu. Pengaturan nameserver 127.0.0.1
di /etc/resolv.conf
tidak bekerja: fungsi yang relevan kembali segera dengan pengecualian. Rig pengujian adalah VM yang dibuat dengan Vagrant yang menerima alamat IP-nya melalui DHCP.
19
nslookup example.com non_existent_dns_ip
keluaran:;; connection timed out; trying next origin ;; connection timed out; no servers could be reached
Waktu habis koneksi terjadi ketika server DNS tidak merespons sama sekali, atau tidak merespons secara tepat waktu.
Yang pertama dapat disimulasikan dengan hanya memblokir semua lalu lintas ke server DNS Anda, pada sistem Linux misalnya dengan:
Menggunakan DROP sebagai target berarti Anda bahkan tidak akan mendapatkan koneksi yang ditolak kesalahan, itu hanya menjadi lubang hitam. (Sepertinya tidak mungkin Anda melakukan transfer zona, jadi memblokir protokol TCP selain UDP tidak diperlukan.)
Membuat penundaan sedikit lebih banyak terlibat. Dari
netem
manual :Yang menciptakan penundaan 200 ms dengan variasi acak ± 10 ms.
sumber
Yang Anda butuhkan adalah "server lubang hitam". Anda dapat menggunakan
blackhole.webpagetest.org
(72.66.115.13
) yang akan secara diam-diam menjatuhkan semua permintaan.Mengapa saya menyarankan ini daripada jawaban lain, adalah karena server yang disebutkan di atas telah dibuat untuk tujuan tunggal ini.
Contoh:
sumber
Jika Anda tidak menjalankan server DNS pada sistem pengujian Anda, Anda harus dapat menggunakan alamat IP itu.
Anda dapat mencoba menggunakan alamat rfc1918 yang tidak digunakan .
Anda dapat menggunakan firewall server Anda untuk memblokir paket keluar dengan port tujuan 53.
sumber