Случайный IP из пула в адресе хоста

Здравствуйте!

Предлагаю добавить в Remnawave нативную поддержку пулов IP в меню «Хосты», непосредственно в поле, где указывается IP-адрес или домен хоста.

Основная задача — распределять подключения и трафик между несколькими IP-адресами, чтобы весь объём не концентрировался на отдельных адресах и был менее заметен для систем анализа и фильтрации трафика, включая ТСПУ.

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

Это не должно быть привязано к конкретной структуре инфраструктуры. За выбранными IP может находиться один сервер, несколько серверов или любая другая схема маршрутизации. Для каждого хоста в панели должен задаваться собственный адрес или собственный пул.

Желательно поддержать следующие варианты ввода:

203.0.113.10
203.0.113.10,203.0.113.11
203.0.113.10-203.0.113.30
203.0.113.10-203.0.113.20,203.0.113.50,203.0.114.10-203.0.114.20

Ожидаемое поведение:

  • обычный одиночный IP или домен работает без изменений;
  • список и диапазоны распознаются как пул;
  • при каждой генерации или обновлении подписки выбирается один случайный IP из всего пула;
  • выбранный IP указывается в клиентской конфигурации как адрес точки входа;
  • остальные параметры хоста остаются без изменений;
  • некорректный адрес или диапазон не должен сохраняться;
  • функция должна работать во всех поддерживаемых форматах подписок.

Сейчас такую возможность приходится реализовывать внешней обработкой уже сформированного ответа подписки через Nginx/Lua, включая отдельный разбор адресов, диапазонов и замену адреса точки входа.

Нативная реализация в разделе «Хосты» значительно упростила бы настройку и позволила распределять трафик между IP без внешней модификации подписок.

Указание нескольких адресов через запятую работает и сейчас, никаких дополнительных реализаций не трубется.

Есть вариант через “-” тоже сделать, чтобы не указывать 30+ IP адресов, если работаем с пулом /24 например?

Выше расписал как можно сделать.