====== Связывание IP-login (bind, bind_multi) ======
{{indexmenu_n>7}}
Управление услугами и полосой пропускания для абонентов с динамической выдачей IP-адресов осуществляется по условному имени (login), которое в [[dpi:dpi_components:platform:subscriber_management:subsman_cmd|командах управления]] задается через соответствующий параметр ''--login''. Для поддержки в DPI функциональности связывания с login необходимо [[dpi:dpi_components:platform:dpi_admin:admin_db#Активация встроенной БД|активировать UDR]]. \\
Удобство заключается в том, что профили услуг и полисинга назначаются на login и могут быть неизменны долгое время, хотя адрес абонента динамически меняется. При своевременном обновлении связок DPI имеет всегда актуальные правила на IP абонента и статистику.
DPI поддерживает связывание IP-login двух типов:
* bind - Одиночная связка (single). Однозначное соответсвие один login = один IP.
* bind_multi - Множетсвенная связка (multi). Абонент с несколькими IP трактуются DPI как один абонент: услуги и управление шириной доступного канала являются общими для всех IP, принадлежащими такому абоненту. Часто таким абонентом является корпоративный пользователь, которому выдали канал и набор IP-адресов, которые разделяют ресурсы между собой. Так же используется, когда абоненту выдается Dual Stack IPv4/IPv6. При изменении профилей услуг и полисинга на такой login изменения применяются сразу на все IP адреса связанные с данным login.
Важным отличием семантики ''bind'' от ''bind_multi'' является:
- ''load --bind'' замещает ранее назначенный абоненту адрес, в то время как ''load --bind_multi'' добавляет его
- ''load --bind'' автоматически забирает назначенный адрес у другого абонента
- ''load --bind'' экономнее расходует размер БД
В случае, если динамическая выдача IP-адресов осуществляется RADIUS-сервером, рекомендуется использовать [[dpi:dpi_components:radius|]], который автоматически будет передавать на DPI информацию о выданных и освобожденных IP-адресах. В этом случае в качестве login используется атрибут User-Name в запросах RADIUS.
Для интеграции с другими платформами необходима поддержка выполнения пользовательских скриптов по событиям выдачи и освобождения адреса (например, такая возможность присутствует в штатном DHCP сервере Linux).
===== Команды управления одиночной связкой (single) =====
Связывание IP адреса с login:
fdpi_ctrl load --bind --user имя_абонента:ip_адрес
Создание двух разных одиночных связок:
fdpi_ctrl load --bind --user test_ipv4:191.168.1.1
fdpi_ctrl load --bind --user test_ipv6:2001:470:e5bf:dead::0/64
Замещение связанного IP для login test_ipv4:
fdpi_ctrl load --bind --user test_ipv4:191.168.1.2
Удаление связки IP <-> login:
fdpi_ctrl del --bind --login test_ipv6
Просмотр связанного IP-абонента:
fdpi_ctrl list --bind --login test_ipv4
Просмотр всех абонентов со связанным IP
fdpi_ctrl list all --bind
===== Команды управления множественной связкой (multi) =====
IP-адреса можно выделять абоненту поштучно или блоками:
192.168.0.1 одиночный IPv4 адрес
192.168.0.1-192.168.0.5 интервал (включает границы)
192.168.0.0/30 CIDR
192.168.0.1,192.168.0.3 список
2001:db8:2000:1200::/64 IPv6 подсеть
Связывание IP-адресов с одним login (каждая команда только добавляет IP к login, при наличии IP в bind_multi повторное назначение не явняется ошибкой):
fdpi_ctrl load --bind_multi --user test:192.168.0.1
fdpi_ctrl load --bind_multi --user test:192.168.0.1-192.168.0.5
fdpi_ctrl load --bind_multi --user test:192.168.0.0/30
fdpi_ctrl load --bind_multi --user test:192.168.0.1,192.168.0.3
fdpi_ctrl load --bind_multi --user test:2001:db8:2000:1200::/64
Удаление всех IP, связанных с login:
fdpi_ctrl del --bind_multi --login test
Удаление одного из IP, связанных с login:
fdpi_ctrl del --bind_multi --ip 192.168.0.1
Просмотр всех IP абонента с несколькими IP:
fdpi_ctrl list --bind_multi --login test
Просмотр всех абонентов с несколькими IP:
fdpi_ctrl list all --bind_multi