IPmanager APIv2

Материал из ISPWiki
Перейти к: навигация, поиск

Это экспериментальный модуль. Мы не рекомендуем пробовать его использовать или даже включать на production серверах

Введение

В связи с тем, что практически всем продуктам требуется источник IP адресов, мы решили встроить функционал IPmanager во все наши продукты. Вы можете выбрать тип источника IP адресов:

не использовать базу IP адресов
вам будет необходимо указывать адреса и параметры сетей вручную всякий раз, когда это требуется
локальная база IP адресов
в БД панели будут созданы таблицы для учета IP адресов. Панель должна использовать БД типа MySQL
удаленная база IP адресов
все запросы на выделение адреса будут переправлены на указанный адрес, где должна работать панель, использующая локальную базу IP
IPmanager 5
перенаправлять запросы в IPmanager

С точки зрения приложения последние три варианта идентичны. В первом случае автоматическое выделение адресов и определение параметров сетей недоступно - требуется ручной ввод данных

Для выделения адресов в автоматическом режиме необходимо создать физическую сеть, где указывается маска сети и шлюз по умолчанию (default gateway). И создать пул адресов, в который должно быть добавлено несколько блоков из существующих физических сетей.

Пулы могут содержать пересекающиеся блоки адресов.

Размер пула определяется пересечением существующих физических сетей и блоков самого пула. Например, вы создали сеть 192.168.1.0/24 и создали пул с блоком 192.168.0.0-192.168.1.10. В этом случае в пуле будет доступно только 11 адресов (c 192.168.1.0 по 192.168.1.10). Причем адрес 192.168.1.0 будет автоматически помечен как занятый (некоторые ОС некорректно работают с такими адресами, поэтому все IPv4 адреса заканчивающиеся на .0 и .255, а так же адрес шлюза, автоматически помечаются как занятые)

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

IPv6 адреса учитываются блоками с префиксом /64 (если в списке указанно, что доступно 3 адреса IPv6, это значит имеется 3 свободных блока /64)

При запросе на выделение одного IPv6 адреса, выделяется сеть /64

Для IPv6 можно запросить сеть меньшего размера чем /64. При этом будет создана служебная запись /64 и выделен отдельный блок из этого диапазона. Несколько мелких сетей могут быть выделены из одного блока /64

Основные отличия

  • Любая панель может выступать в роли IPmanager
  • Отсутствие пользователей. Все продукты, использующие новый IPmanager, ходят под одним паролем. Доступ к адресам определяется через пулы адресов
  • Возможность выделять адреса сетями
  • По умолчанию, IPv6 адреса выделяются блоками по /64. Количество свободных IPv6 адресов так же считается в блоках /64. Но возможно выделение и меньших диапазонов
  • Вместо типов адресов должны использоваться пулы
  • Новый IPmanager не работает с реверсными записями DNS напрямую. Для этого необходимо настроить его интеграцию с DNSmanager
  • При выделении адреса нельзя выбрать сеть, но можно выбрать пул адресов

Переход на новую систему с IPmanager

Для включения поддержки работы с IP адресами по новой схеме необходимо дописать Option IpManagement2 в конфигурационный файл панели (всех панелей, которые будут использовать новую схему работы с IP адресами).

Для конвертации базы IP адресов в состав COREmanager включено приложение sbin/ipmgr2_import. Оно позволяет перенести данные из MySQL БД используемой IPmanager в таблицы используемые встроенным IPmanager. Так как в новый реализации отсутствует такое понятие как пользователь, конвертируется только один пользователь из IPmanager (по умолчанию: admin). При конвертации производятся следующие действия:

  1. Создаются физические сети
  2. Правила доступа выбранного пользователя преобразуются в пулы IP адресов
  3. Переносится информация о занятых адресах
  4. Переносится история IP адресов