Инструмент разделения DNS запросов (Россия/мир) для Fedora (уменьшает лаги и подвисания в Amnezia)

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

у меня очень часто стали возникать ситуации когда российские сайты становились недоступны после включения туннеля (либо показывались с существенной задержкой в 1-2 минуты). Особенно ухудшилась ситуация после 2 июня. Работали либо российские сайты без туннеля, либо остальные с туннелем. Я определил, что в большинстве случаев проблема была с ресолвингом DNS.

я решил реализовать свой инструмент решения проблемы.

Задача была маршрутизировать все DNS запросы к российским сайтам на физический интерфейс даже при включенном туннеле, а все остальные - в туннель. Сложность была в том, что ряд российских сайтов используют домены не из домена ru (например, yandex.st), и списка таких доменов я не нашел. Поэтому добавил те какие попались. Для этого пришлось отключить в клиенте kill switch.

В результате получился простой скрипт, который отрабатывает каждый раз после подключения нового соединения (а также после включения туннеля), и прописывает правила ресолвинга доменов. По итогу одного дня скорость открытия сайтов восстановилась.

Разрабатывался на и для Fedora 44 KDE, но будет работать на любом современном дистрибутиве линукс с NetworkManager и resolvectl.

На всякий случай обращаю внимание, что скрипт маршрутизирует и ускоряет только DNS запросы.

если кто хочет попробовать: репозиторий и подробное описание тут:

после этого у вас будер работать разделение DNS зон:

Автоматизированный инсталлятор с обработкой ошибок: