Исправления

Во-первых — много исправлений мелких ошибок, возникших после рефакторинга и проявляющихся при первом старте. Первый рестарт — это практически первое впечатление от продукта. Сейчас всё круто.

Новые фишки

Но не фиксами одними живём! Проект двигается вперёд.

Абсолютно новая подсистема резолва https-ресурсов

По сути всё довольно просто — мы сделали кэширующий DNS-сервер без DNS-сервера. Но прелесть его в том, что теперь ресурсы, которые должны быть заблокированы по IP имеют динамически вычисляемый TTL, в зависимости от того, как часто они меняют IP. Скрипт резолва запускается раз в 5 минут из крона, запрашивает только те адреса, которые считаются вероятно устаревшими (ttl варьируется от 5 минут до 1 часа, для ресурсов, которые не удалось разрезолвить устанавливается ttl в 3 часа).

Сделано это всё на python, мы воспользовались двумя довольно неплохими проектами:

  • qdns для удобного «пакетного» резолва.
  • tinydb для облегчения хранения всей этой информации. Она, конечно, довольно медлительная, но её скорости должно хватать для приемлемо быстрой работы при 2000-5000 доменов, которые нужно отслеживать (сейчас отслеживается около 400-600). И главное — она удобная.

Работает это всё внутри virtualenv.

Собственно, проблемы которые решали мы решили:

  • резолв теперь занимает гораздо меньшее время (около 8 секунд)
  • IP адреса в ipset большую часть времени точно актуальны
  • используемые DNS сервера больше не DDoS’ятся редуктором

Поддержка выгрузки dump.xml не с сервера РКН

Как оказалось уже более 15 клиентов используют выгрузку на своих серверах, а на редуктор dump.xml (а кое-кто и уже обработанный список) закидывали самыми разными способами от записи в crontab до разных хуков. Весь этот набор разных способов, падающих после обновления как-то не очень удобен, так что мы добавили поддержку такого способа выгрузки прямо в дистрибутив. Всё что нужно указать — адрес откуда качать wget’ом dump.xml и поставить одну галочку.

Поддержка выгрузки от имени нескольких юр.лиц

Так уж бывает, что один провайдер является несколькими юр. лицами и роскомнадзор хочет, чтобы каждое юр. лицо. осуществляло выгрузки реестра. Применить организационные методы и договориться никому из клиентов не удалось, поэтому мы сделали эту фишку.

Всё что нужно сделать — положить в нужное место второй сертификат и сделать небольшую копию конфига, в которой лежит информация о том, что вы за провайдер, чтобы сгенерировать второй файл запроса.

Мастер тюнинга сетёвок

Скрипт

/usr/local/Reductor/bin/nic_tuning_help

Теперь поддерживает ещё несколько сетевых карт и чуть более подробный вывод.

Внутри компании

Возросло число автотестов, появились тесты, отслеживающие скорость исполнения выполняемых редуктором периодических задач, чтобы отследить появляющиеся зависания / замедления (ведь никто не любит долгие простои). Данные о времени исполнения собираются в полюбившуюся нам influxdb, по этим метрикам строятся графики с помощью такого чудесного инструмента, как grafana.