Для того, чтобы в сессиях абонентов фигурировали верные значения счётчиков по трафику, необходимо придерживаться следующих правил:
- Для всех типов устройств доступа, кроме "Маршрутизатор Linux", счётчики по трафику получаются обсчётом поступающих сообщений типа RADIUS Acct.
- Для устройства доступа "Маршрутизатор Linux" счетчики трафика берутся из статистики протокола NetFlow, потому что RADIUS не используется вовсе.
- Чтобы RADIUS Acct пакеты от серверов доступа корректно воспринимались ядром системы WNAM, необходимо:
- Указывать параметр "Использовать счетчики аккаунтинга" в настройках сервера доступа
- Убедиться, что IP-адрес сервера доступа, указанный в его настройках, совпадает с IP-адресом, с которого происходит отправка пакетов RADIUS самим сервером доступа, и совпадает со значением параметра "MAS-IP-Address" в RADIUS-пакете
- Этот IP адрес должен быть указан в файле /etc/freeradius/clients.conf (в виде адреса или в подсети), а также совпадают ключ (пароль) и там, и на сервере доступа
- Работающий на сервере WNAM или в вашей сети межсетевой экран пропускает UDP-пакеты от сервера доступа до сервера WNAM по портам 1812 и 1813
- При использовании RADIUS Acct для типовых устройств сбор статистики NetFlow позволяет делать записи о "потоках трафика" в привязке к сессиям, чтобы можно было определить, на какие внешние ресурсы (IP-адреса и порты) обращался абонент.
- Чтобы NetFlow пакеты от устройств доступа корректно воспринимались ядром системы WNAM, необходимо:
- Указывать параметр "Принимать детализацию потоков NetFlow" в настройках сервера доступа
- Убедиться, что IP-адрес сервера доступа, указанный в его настройках, совпадает с IP-адресом, с которого происходит отправка пакетов NetFlow самим сервером доступа
- Использовать версию 5 протокола NetFlow
- Работающий на сервере WNAM или в вашей сети межсетевой экран пропускает UDP-пакеты от сервера доступа до сервера WNAM по порту 20002
Внимание! Если вас интересует учёт ссылок, которые посещал абонент, то примите к сведению следующее:
Потенциально WNAM может принимать эти сведения, если они были собраны агентом wnam_agent и отправлены на порт UDP:20001 сервера. Агент работает путём прослушивания сетевого интерфейса (в режиме pcap), разбора TCP/HTTP сессий, поиска параметров GET/POST и Host: в трафике.
Однако, такой подход имеет множество недостатков, из-за которых определение посещенных ссылок на практике не используется. Вот перечень причин:
- Посещение пользователем одной веб-страницы де-факто приводит к тому, что браузер пользователя запрашивает сотни ссылок со сторонних ресурсов (реклама, CDN, скрипты и т.п.), из которых вычислить "основной" ресурс зачастую невозможно
- Значительная часть сайтов работает по протоколу HTTPS, разбор трафика которых невозможен
- Использование современных методов работы браузеров (например, через AJAX) сводит на нет поиск параметров ссылки
- Использование "тяжелого" контента типа видео отрицательно сказывается на производительности сервера при разборе трафика
Определить, посещал ли пользователь заданный сайт можно, если использовать учёт потоков трафика через NetFlow, и затем воспользоваться отчетом типа "Розыск пользователя по времени, потокам трафика и посещенным URL". Если указать URL ресурса, произойдет преобразование имени в IP-адрес, и затем поиск по таблице потоков по IP адресу.
Внимание! Сбор статистики NetFlow приводит к быстрому росту базы данных mongodb, так что вы должны следить за тем, чтобы место на диске сервера WNAM внезапно не закончилось.