Добрый день.
Возникла задача управления трафиком в политиках, через WEB интерфейс и без использования DNS.
И так за пару дней с помощью ИИ и чей то матери родилось следующее решение.
В архиве сам вэб интерфейс и php скрипты для бэкэнда и cron.
Из доп пакетов потребуется, nginx, php в моем случае (php8-fpm + php8-cli), SQLite3 и cron.
Для функционирования потребуется:
Настраиваем связку nginx + php.
В config.php прописываем: пароль от учетки, путь к файлам, в моем случае ('/opt/share/www/'), если путь другой то в php скриптах в первой строчке кода, надо тоже поменять.
Создаем базу через create_db.php
Если есть желание запихиваем sync_policies.php и update_route.php в крон. Если политики часто не создаете то sync_policies.php можно не прописывать в cron, а синхронизировать через WEB интерфейс.
Пользуемся. Может чо забыл не учел, кто будет повторять пишите помогу.
Принцип работы:
Скрипт дергает из кинетика список политик 'http://127.0.0.1:79/rci/show/ip/policy';
Для каждой политики есть своя маркировка трафика к примеру 0xffffaaa;
Создается БД с политиками и доменами+информация о маршрутах;
Для каждой политики в БД можно добавить запись: Домен + интерфейс + маршрут;
Скрипт получает список IP для каждого домена и собирает для каждой политики свою дополнительную таблицу маршрутизации (стартовый номер отсчета можно изменить в config.php, но выше 1000 создать не дает);
После чего добавляет данные таблицы к нужному маркеру.
Через WEB интерфейс или по крону можно обновлять IP для доменов и перестраивать таблицы маршрутизации.
Что это все дает:
Возможность маршрутизировать трафик по доменам, при этом кинетику не обязательно быть DNS сервером, перехватывать запросы и все вот это;
Интеграция с политиками доступа от кинетика. Можно гибко управлять кому куда в самом кинетике. К примеру в моем варианте (скриншот 2), мне требовалось жестко прописать домен детского мира мимо КВН. Но только для одной политики.
Работает с использованием штатном функционале кинетика (за исключением описанных выше пакетов), скрипт только рулит маршрутами.
P.S.
Делал для себя, если что не так не сердчайте, глюки обеспечены))
KDR.zip