Описание [Документация VAS Experts]

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
dpi:dpi_components:radius:radius_requirements [2018/02/05 07:13] – создано lexx26dpi:dpi_components:radius:radius_requirements [2025/08/20 14:27] (текущий) – [Рекомендуемая схема: Прием трафика RADIUS Accounting на выделенный Linux-интерфейс не связанный с FastDPI] atereschenko
Строка 1: Строка 1:
-====== Описание и требования к оборудованию ======+====== Описание ====== 
 +{{indexmenu_n>1}} 
 +FastRADIUS (Монитор событий RADIUS) предназначен для создания в DPI связки IP-login в сетях с динамической выдачей IP-адресов на основании RADIUS Accounting. Так же возможно назначение CGNAT (11 услуги) по заданным параметрам. 
 +FastRADIUS может быть установлен на сервер DPI или на выделенный сервер или VM.  
 +====== Минимальные требования к оборудованию ====== 
 +  - Процессор (CPU) — 2 ядра 
 +  - Оперативная память (RAM) — от 4 ГБ 
 +  - SSD — 50 ГБ 
 +  - Операционная система — [[veos:installation|VEOS]] 
 +  - Сетевая плата (NIC) — 2 порта, для управления по SSH и для приема зеркала RADIUS  
 +====== Установка и обновление ====== 
 +{{indexmenu_n>2}} 
 +Компонент поставляется в стандартном пакете ПО СКАТ. При использовании на том же сервере что и СКАТ дополнительная установка не требуется. 
  
 +Дальнейшее обновление осуществляется стандартным образом:
 +<code>
 +yum update fastradius
 +</code>
 +
 +===== Установка на отдельный сервер или VM ======
 +  - Установите службу точного времени<code>yum install chrony -y
 +systemctl restart chronyd
 +timedatectl</code> :!: При вводе команды ''timedatectl'', у параметра ''System clock synchronized'' должно быть значение ''yes''
 +  - Подключите репозиторий vasexperts <code>rpm --import http://vasexperts.ru/centos/RPM-GPG-KEY-vasexperts.ru
 +rpm -Uvh http://vasexperts.ru/centos/6/x86_64/vasexperts-repo-2-1.noarch.rpm</code>
 +  - Установите FastRADIUS <code>yum install fastradius</code>
 +  - Проверьте что сервис запускается <code>service fastradius start</code>
 +  - Включите автозапуск сервиса при старте компьютера<code>systemctl enable fastradius</code>
 +
 +====== Схемы работы ======
 +===== Рекомендуемая схема: Прием трафика RADIUS Accounting на выделенный Linux-интерфейс не связанный с FastDPI =====
 +RADIUS Accounting передается на FastRADIUS на стандартный Linux-интерфейс, указанный в конфигурационном файле (in_dev), путем зеркалирования существующего RADIUS трафика, либо с использованием RADIUS proxy (например freeRADIUS). В данном случае FastRADIUS только принимает зеркало и никак не отвечает RADIUS серверу. 
 +Работа со стандартными интерфейсами Linux осуществляется с помощью libpcap.
 +
 +==== Администрирование FastRADIUS ====
 +Основной процесс называется fdpi_radius и он потребляет ресурсы процессора даже в состоянии покоя, когда не происходит передача данных. Это связано с особенностью работы с сетевыми картами для минимизации сетевых задержек. Процесс установлен в системе как сервис и управляется стандартными для сервиса командами.
 +Перезапуск сервиса:
 +<code>service fastradius restart</code>
 +
 +Настройки FastRADIUS находятся в каталоге ///etc/dpi//:
 +<code>
 +fdpi_radius.conf   конфигурационный файл
 +prefixes.info      настройки регионов (префиксы для login абонентов), файл отсутствует если не нужен 
 +</code>
 +
 +Параметры в настроечном файле бывают "горячие" и "холодные":\\
 +Горячие параметры можно менять в процессе работы "на лету", т.е. без перезапуска сервиса.
 +Холодные параметры вступят в силу только после перезапуска сервиса.
 +
 +Обновление горячих настроек без перезапуска сервиса:
 +<code>service fastradius reload</code>
 +
 +Логи FastRADIUS находятся в каталоге ///var/log/dpi//:
 +<code>
 +fdr_alert.log лог информационных сообщения и ошибках
 +fdr_stat.log  лог статистической информации
 +</code>
 +Ротация логов осуществляется с помощью стандартного средства logrotate, по умолчанию логи хранятся в течение суток. 
 +Конфигурационный файл logrotate: ///etc/logrotate.d/fdpi_radius// \\ 
 +При изменении администратором сроков хранения необходимо проследить, чтобы на диске оставалось достаточно места.
 +
 +За работой процесса следит системный watchdog, который перезапустит его в случае падения.
 +Конфигурационный файл watchdog: ///etc/watchdog.d/wd_radius.sh//
 +
 +
 +В зависимости от настроек FastRADIUS может записывать в каталог ///var/dump/dpi//
 +следующую информацию
 +<code>
 +spdu_*.pcap - pcap файлы с записью плохих или всех RADIUS пакетов
 +uip_*.txt - текстовые логи с информацией о выделении и освобождении IP адресов
 +</code>
 +В этом случае необходимо самостоятельно предусмотреть очистку этой информации для предотвращения переполнения диска. 
 +
 +
 +Необходимо настроить синхронизацию точного времени через сервис ntpd.
 +Файл конфигурации ntpd: ///etc/sysconfig/ntpd//
 +
 +==== Минимальная Настройка FastRADIUS ====
 +
 +Настройки находятся в файле **/etc/dpi/fdpi_radius.conf.**
 +Для применения конфигурации необходимо перезапустить сервис:
 +<code>
 +systemctl restart fastradius
 +</code>
 +''in_dev=eth0'' — имя прослушиваемого Linux-интерфейса \\
 +''rad_acct_port=1813,1814,1815'' — номер прослушиваемого порта (или список портов через запятую) с пакетами Radius Accounting \\
 +''rad_save_pdu=0'' — сохранять в pcap формате плохие PDU для анализа \\
 +''rad_check_code_pdu=2:4'' — анализировать PDU с кодом 2 и 4 \\
 +''rad_check_acct_status_type=1:3'' — анализировать PDU со статусом 1 и 3 \\
 +''mem_preset=1'' — инициализировать память при старте \\
 +''fdpi_servers=127.0.0.1:29000,123.45.67.85:29000'' — список DPI серверов, на которые отправлять данные, где 29000 управляющий порт по умолчанию \\
 +
 +Настройка обработки потоков (рекомендуется использовать приведенные значения):
 +''num_threads=1''\\
 +''rx_bind_core=0''\\
 +''services_bind_cores=0''\\
 +''engine_bind_cores=0''\\
 +''fifo_bind_cores=0''\\
 +''snaplen=2000''\\
 +''timeout_alarm=5''\\
 +''dbg_log_mask=0x31''\\
 +
 +Настройка экпорта RADIUS-событий на внешний коллектор:\\
 +''ipfix_dev=eno8'' - имя Linux-интерфейса, с которого идет отправка IPFIX\\
 +''ipfix_tcp_collectors=172.32.0.239:1502'' - адрес IPFIX коллектора
 +===== Альтернативная схема: Отвод трафика RADIUS Accounting с DPDK-интерфейсов FastDPI =====
 +Radius Accounting необходимо подать в порты устройства DPI вместе с сетевым трафиком. Реализовать это возможно через зеркалирование портов, к которым подключен RADIUS сервер. В данном случае FastRADIUS только принимает зеркало и никак не отвечает RADIUS серверу.
 +==== Настройка TAP интерфейсов ====
 +FastRADIUS может быть запущен на том же сервере, что и FastDPI или вынесен на внешний сервер. Для выделения нужного трафика используются два виртуальных интерфейса TAP0 и TAP1.
 +В конфигурации необходимо указать порт:
 +<code bash>
 +in_dev=tap1
 +</code>
 +{{:dpi:dpi_components:radius:radius_config:radius_monitor_dpdk.png?600|Размещения Radius монитор на том же сервере. Используется Bridge.}}\\
 +**Размещения Radius монитор на том же сервере. Используется Bridge.**\\
 +\\
 +\\
 +{{:dpi:dpi_components:radius:radius_config:radius_monitor_dpdk_tunnel.png?600|Размещения Radius монитор на внешнем сервере. Используется Tunnel.}}\\
 +**Размещения Radius монитор на внешнем сервере. Используется Tunnel.**
 +  * TAP0 - используется для отведения трафика
 +  * TAP1 - слушает Radius Monitor
 +  * Между TAP0 и TAP1 создается Bridge или Tunnel для передачи трафика.
 +  * На интерфейсе TAP0 отключается mac learning
 +Из консоли выполнить следующие команды:
 +<code>
 +ip tuntap add tap0 mode tap
 +ip tuntap add tap1 mode tap
 +
 +ip link set dev tap0 up
 +ip link set dev tap1 up
 +
 +ip link add br0 type bridge
 +
 +ip link set tap0 master br0
 +bridge link set dev tap0 learning off
 +ip link set tap1 master br0
 +
 +ifconfig tap0 192.168.4.20 up
 +ifconfig tap1 192.168.4.21 up
 +ifconfig br0 up
 +</code>
 +<note warning>ВНИМАНИЕ: TAP интерфейсы необходимо стартовать после перезагрузки сервера!</note>
 +
 +==== Настройка отведения трафика из FastDPI в FastRADIUS ====
 +Подключить на FastDPI услугу отведения трафика:
 +<code>
 +fdpi_ctrl load profile --service 14 --profile.name radius  --profile.json '{ "typedev" : "tap","dev" : "tap0","udp" : [ 1813,1814,1815 ] }' --outformat=json 
 +fdpi_ctrl load --service 14 --profile.name radius --ip 10.16.252.11
 +fdpi_ctrl load --service 14 --profile.name radius --ip 10.16.252.12
 +</code>
 +где:
 +  * 1813,1814,1815 - порты, на которых передается Radius Accounting
 +  * 10.16.252.11,10.16.252.12 - IP адреса Radius серверов, с которых идет Radius Accounting
 +
 +===== Дополнительные Настройки Radius Monitor =====
 +rad_auth_port=1645 - номер прослушиваемого порта (или список портов через запятую) с пакетами Radius Authentication\\
 +bind_multi=true - разрешить несколько IP на одном USER-NAME cмотри команду load --bind_multi, предупреждение: если порядок bind/unbind в радиус потоке не соблюдается или есть потери пакетов (например это зеркало), то вероятны артефакты
 +
 +==== Подлючение NAT на основе CIDR ====
 +Создаем на FastDPI именованные [[dpi:opt_cgnat:сgnat_settings|профили NAT]]:
 +<code>
 +fdpi_ctrl load profile --service 11 --profile.name nat_profile_all --profile.json '{ "nat_ip_pool" : "5.200.43.0/24,5.200.44/25", "nat_tcp_max_sessions" : 2000, "nat_udp_max_sessions" : 2000 }'
 +</code>
 +В конфигурационном файле FastRADIUS /etc/dpi/fdpi_radius.nat указываются диапазоны адресов и соотвествующие им имена профилей NAT
 +<code>
 +пример:
 +0.0.0.0/              nat_profile_all
 +10.0.0.0/            nat_profile_1
 +10.1.1.0/24           nat_profile_2
 +когда указан более специфичный (конкретный) профиль для адреса, то выбирается он
 +</code>
 +===== Поддержка IPv6 =====
 +В конфигурационном файле /etc/dpi/fdpi_radius.conf указываются настроечные параметры
 +<code>
 +bind_ipv6_address=0 (по умолчанию - не связывать адрес с абонентом),1 связывать (связывание аналогично команде bind в fdpi_ctrl). Адрес берется из атрибута радиус Framed-IPv6-Address(168)
 +bind_ipv6_subnet=0 (по умолчанию - не связывать),64 (связывать только для подсетей /64), -1 связывать для любых подсетей. Подсеть берется из атрибута радиус Delegated-IPv6-Prefix(123)
 +</code>
 +Абонент идентифицируется радиус атрибутом User-Name или Сalling-Station-ID (в зависимости от настройки login_replace)
 +<note>В текущей реализации поддерживаются только IPv6 подсети фиксированной длины (по умолчанию /64), поэтому связывание подсетей меньшей длины приведет к ошибке.</note> 
 +
 +===== Идентификация абонентов в мобильных сетях =====
 +''login_replace=1'' - в этом случае для идентификации абонента используется радиус атрибут Сalling-Station-ID (вместо User-Name) если он присутствует в радиус пакете
 +
 +''ipfix_extra_gsm=1'' — включить поддержку отправки по IPFIX новых атрибутов из пакетов Radius Accounting. Дополнительные поля, которые добавляются при включении этой опции, указаны в [[dpi:dpi_components:radius:radmon_acct_ipfix|шаблоне]].
 +==== Дополнение имен абонентов (LOGIN) префиксами регионов ====
 +Используется когда Radius монитор и СКАТ обслуживают несколько регионов, а user-name может в разных регионах пересекаться с другими регионами, таким образом их можно развести по разным login\\
 +
 +1. Включаем настройку rad_prefix_info=1\\
 +
 +2. В файл /etc/dpi/prefixes.info добавить\\
 +<code>
 +172.17.76.1 MSK-
 +172.17.76.2 MSK-
 +172.17.76.3 SPB-
 +172.17.76.4 SPB-
 +172.17.76.5 SPB-
 +</code>
 +где:\\
 +первое поле - это NAS-IP-Address из RADIUS пакета\\
 +второе поле - какой префикс будет добавлен к Login\\