Содержание
Настройка
Radius Accounting необходимо подать в порты устройства DPI вместе с сетевым трафиком. Реализовать это возможно через зеркалирование портов, к которым подключен Radius сервер.
Настройка TAP интерфейсов
Radius Monitor может быть запущен на том же сервере, что и FastDPI или вынесен на внешний сервер. Для выделения нужного трафика используются два виртуальных интерфейса TAP0 и TAP1.
Размещения Radius монитор на том же сервере. Используется Bridge.
Размещения Radius монитор на внешнем сервере. Используется Tunnel.
- TAP0 - используется для отведения трафика
- TAP1 - слушает Radius Monitor
- Между TAP0 и TAP1 создается Bridge или Tunnel для передачи трафика.
- На интерфейсе TAP0 отключается mac learning
Из консоли выполнить следующие команды:
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
Настройка Linux интерфейсов
Работа со стандартными интерфейсами Linux осуществляется с помощью libpcap.
Пример:
in_dev=eno2
Настройка отведения трафика
Подключаем на FastDPI услугу отведения трафика:
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
где:
- 1813,1814,1815 - порты, на которых передается Radius Accounting
- 10.16.252.11,10.16.252.12 - IP адреса Radius серверов, с которых идет Radius Accounting
Настройка Radius Monitor
# FastDPI RADIUS configuration parameters: # имя прослушиваемого интерфейса in_dev=tap1 # номер прослушиваемого порта (или список портов через запятую) с пакетами Radius Accounting rad_acct_port=1813,1814,1815 # сохранять в pcap формате плохие PDU для анализа rad_save_pdu=0 # анализировать PDU с кодом 2 и 4 rad_check_code_pdu=2:4 # анализировать PDU со статусом 1 и 3 rad_check_acct_status_type=1:3 # инициализировать память при старте mem_preset=1 # Список DPI серверов, на которые отправлять данные fdpi_servers=127.0.0.1:29000,123.45.67.85: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 # настройка экпорта радиус-событий ipfix_dev=eno8 ipfix_tcp_collectors=172.32.0.239:1502 #
После изменения конфигурации перезагружаем службу
systemctl restart fastradius
Подлючение NAT на основе CIDR
Создаем на FastDPI именованные профили NAT:
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 }'
В конфигурационном файле радиус-монитора /etc/dpi/fdpi_radius.nat указываются диапазоны адресов и соотвествующие им имена профилей nat
пример: 0.0.0.0/0 nat_profile_all 10.0.0.0/8 nat_profile_1 10.1.1.0/24 nat_profile_2 когда указан более специфичный (конкретный) профиль для адреса, то выбирается он
Поддержка IPv6
В конфигурационном файле /etc/dpi/fdpi_radius.conf указываются настроечные параметры
bind_ipv6_address=0 (по умолчанию - не связывать адрес с абонентом),1 связывать (связывание аналогично команде bind в fdpi_ctrl). Адрес берется из атрибута радиус Framed-IPv6-Address(168) bind_ipv6_subnet=0 (по умолчанию - не связывать),64 (связывать только для подсетей /64), -1 связывать для любых подсетей. Подсеть берется из атрибута радиус Delegated-IPv6-Prefix(123)
Абонент идентифицируется радиус атрибутом User-Name или Сalling-Station-ID (в зависимости от настройки login_replace)
Идентификация абонентов в мобильных сетях
В конфигурационном файле /etc/dpi/fdpi_radius.conf указывается настроечный параметр
login_replace=1
в этом случае для идентификации абонента используется радиус атрибут Сalling-Station-ID (вместо User-Name) если он присутствует в радиус пакете
Дополнительные Настройки Radius Monitor
# FastDPI RADIUS configuration parameters: # имя исходящего интерфейса, если Монитор работает в режиме пропуска трафика #out_dev=dna1 # включить эмуляцию резервного Radius сервера #rad_server_emulation=1 # включить эмуляцию сетевой карты #rad_virtual_eth=172.17.69.10/D4:AE:52:C1:A7:29 # значение secret для генерации ответов в режиме эмуляции Radius сервера #rad_secret=mysecretkey # дополнять имена абонентов (LOGIN) префиксами регионов #rad_prefix_info=1 # номер прослушиваемого порта (или список портов через запятую) с пакетами Radius Authentication #rad_auth_port=1645 # разрешить несколько IP на одном USER-NAME cмотри команду load --bind_multi, предупреждение: если порядок bind/unbind в радиус потоке не соблюдается или есть потери пакетов (например это зеркало), то вероятны артефакты #bind_multi=true
Дополнение имен абонентов (LOGIN) префиксами регионов
Используется когда Radius монитор и СКАТ обслуживают несколько регионов, а user-name может в разных регионах пересекаться с другими регионами, таким образом их можно развести по разным login
1. Включаем настройку rad_prefix_info=1
2. В файл /etc/dpi/prefixes.info добавить
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-
где:
первое поле - это NAS-IP-Address из Radius пакета
второе поле - какой префикс будет добавлен к login
Также смотрите раздел администрирование