Как намеренно отказать в разрешении DNS в Linux для краш-теста Java-приложения?

Ситуация довольно проста: для воспроизведения сбоев, которые произошли во время недавнего отключения, я бы хотели бы намеренно отказать в разрешении DNS в JVM в:

Caused by: java.net.UnknownHostException: ...domain.name...
at java.net.InetAddress.getAllByName0(InetAddress.java:1280)
at java.net.InetAddress.getAllByName(InetAddress.java:1192)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at java.net.InetAddress.getByName(InetAddress.java:1076)

имеет ли смысл сделать это напрямую через настройки DNS Linux или на уровне JVM. Как это можно было сделать?

0
задан 12 June 2018 в 22:36
1 ответ

SloDNS - это сервер пересылки, специально созданный для тестирования режимов отказа DNS: https://github.com/brennentsmith/slodns

Вы можете добавить любое количество задержки, джиттера и потерь ко всем отправляемым запросам и прозрачно перенаправлять запросы на любой вышестоящий сервер. Он не искажает дейтаграмму UDP, поэтому работает с проприетарными расширениями протокола DNS.

В вашем случае вы можете запустить его и установить для аргумента - loss высокое значение,или установите - delay и - jitter на значение, превышающее тайм-аут JVM.

Также справедливое раскрытие, я написал это :)

2
ответ дан 4 December 2019 в 13:25

Теги

Похожие вопросы