Инструменты диагностики pfSense - сетевой анализ

pfSense предоставляет набор инструментов диагностики сети, доступных через меню Diagnostics веб-интерфейса. Эти утилиты позволяют проверять связность, анализировать маршруты, захватывать пакеты и исследовать внутреннее состояние файрвола без необходимости подключения по SSH. Каждый инструмент ориентирован на определённый аспект диагностики - от базовой проверки доступности до анализа таблицы состояний pf в реальном времени.

Систематическое использование диагностических инструментов в определённой последовательности существенно ускоряет выявление и устранение сетевых проблем.

Обзор меню Diagnostics

ИнструментМенюНазначение
PingDiagnostics > PingПроверка доступности хоста
TracerouteDiagnostics > TracerouteАнализ маршрута до хоста
DNS LookupDiagnostics > DNS LookupРазрешение DNS-имён
ARP TableDiagnostics > ARP TableТаблица соответствий MAC-IP
NDP TableDiagnostics > NDP TableТаблица соседей IPv6
StatesDiagnostics > StatesТаблица состояний файрвола
pfInfoDiagnostics > pfInfoСтатистика pf
pfTopDiagnostics > pfTopАктивные соединения в реальном времени
Packet CaptureDiagnostics > Packet CaptureЗахват пакетов
Command PromptDiagnostics > Command PromptВыполнение команд и PHP
System ActivityDiagnostics > System ActivityПроцессы и нагрузка
S.M.A.R.T. StatusDiagnostics > S.M.A.R.T. StatusЗдоровье дисков

Ping

Утилита ping доступна через Diagnostics > Ping и позволяет проверить доступность удалённого хоста с учётом маршрутизации и правил файрвола pfSense.

Параметры

  • Hostname - IP-адрес или доменное имя целевого хоста
  • IP Protocol - IPv4 или IPv6
  • Source Address - интерфейс, с которого отправляются ICMP-запросы. Выбор источника критически важен при диагностике Multi-WAN и VPN: запрос с WAN-интерфейса и с LAN-интерфейса может следовать разными маршрутами
  • Maximum number of pings - количество запросов (1, 3, 5, 10)
  • Seconds between pings - интервал между запросами

Интерпретация результатов

Результат содержит время отклика (RTT) для каждого запроса и итоговую статистику: отправлено, получено, потеряно, минимальное/среднее/максимальное RTT.

Типичные сценарии:

РезультатВозможная причина
100% packet lossХост недоступен, маршрут отсутствует, блокировка ICMP на промежуточном узле
Высокий RTT (>100 мс в LAN)Перегрузка канала, проблема с оборудованием
Нестабильный RTTПотери на промежуточном канале, проблема с QoS
Request timeout с периодическими ответамиОграничение скорости ICMP на целевом хосте

Внимание:

При выборе Source Address следует учитывать, что ping с интерфейса WAN использует публичный IP, а ping с LAN - внутренний адрес. При диагностике VPN-туннелей необходимо выбирать интерфейс, IP-адрес которого входит в адресное пространство туннеля.

Traceroute

Утилита traceroute доступна через Diagnostics > Traceroute и отображает маршрут пакетов до целевого хоста с указанием каждого промежуточного узла.

Параметры

  • Hostname - IP-адрес или доменное имя
  • IP Protocol - IPv4 или IPv6
  • Source Address - интерфейс-источник
  • Maximum number of hops - максимальная глубина трассировки (по умолчанию 18)
  • Reverse Resolve IP - обратное разрешение DNS для IP-адресов промежуточных узлов
  • Use ICMP - использование ICMP вместо UDP (некоторые хосты блокируют UDP-пробы)

Интерпретация результатов

Каждая строка вывода содержит номер хопа, IP-адрес (или имя хоста) и три значения RTT. Символ * означает отсутствие ответа от данного узла.

Типичные паттерны:

  • Все хопы отображаются - маршрут полностью прослеживается, проблема на целевом хосте
  • Звёздочки начиная с определённого хопа - трафик блокируется на данном узле или далее
  • Резкий рост RTT на конкретном хопе - перегрузка канала между данным и предыдущим узлом
  • Непоследовательный маршрут - асимметричная маршрутизация или балансировка нагрузки

DNS Lookup

Утилита доступна через Diagnostics > DNS Lookup и выполняет разрешение DNS-имён с использованием DNS-серверов, настроенных в pfSense.

Параметры

  • Hostname - доменное имя для разрешения

Результаты

Вывод включает:

  • Полученные IP-адреса (A/AAAA записи)
  • DNS-сервер, ответивший на запрос
  • Время разрешения
  • Результаты обратного DNS-запроса (PTR) для полученных IP-адресов

Этот инструмент полезен для проверки корректности работы DNS Resolver (Unbound) или DNS Forwarder (dnsmasq), настроенных в pfSense. При расхождении результатов с ожидаемыми следует проверить настройки DNS в System > General Setup и конфигурацию DNS Resolver в Services > DNS Resolver.

ARP Table

Таблица ARP доступна через Diagnostics > ARP Table и отображает соответствия между IP-адресами и MAC-адресами устройств в локальной сети.

Отображаемые поля

ПолеОписание
InterfaceИнтерфейс, через который обнаружено устройство
IP AddressIPv4-адрес устройства
MAC AddressMAC-адрес устройства
HostnameИмя хоста (если разрешено через DNS/DHCP)
StatusСостояние записи: permanent, reachable, stale, expired
Link TypeТип подключения: ethernet

Применение

  • Обнаружение IP-конфликтов - два разных MAC-адреса для одного IP указывают на конфликт
  • Идентификация устройств - определение MAC-адреса устройства по его IP (или наоборот) для привязки к конкретному оборудованию
  • Обнаружение ARP-spoofing - аномальные записи могут свидетельствовать об атаке типа MITM
  • Проверка связности L2 - отсутствие записи для хоста в той же подсети указывает на проблему канального уровня

NDP Table

Таблица NDP (Neighbor Discovery Protocol) доступна через Diagnostics > NDP Table и выполняет для IPv6 ту же функцию, что ARP для IPv4 - отображает соответствия между IPv6-адресами и MAC-адресами соседних устройств.

Отображаемые поля аналогичны ARP Table: интерфейс, IPv6-адрес, MAC-адрес, имя хоста и состояние.

Таблица состояний (States)

Таблица состояний доступна через Diagnostics > States и отображает все текущие соединения, отслеживаемые файрволом pf.

Отображаемые поля

ПолеОписание
InterfaceИнтерфейс, на котором создано состояние
ProtocolПротокол: TCP, UDP, ICMP и др.
SourceАдрес и порт источника
DestinationАдрес и порт назначения
StateСостояние соединения (для TCP: ESTABLISHED, TIME_WAIT и др.)
PacketsКоличество переданных пакетов
BytesОбъём переданных данных
AgeВремя существования записи
Expires inВремя до удаления записи

Фильтрация состояний

Страница предоставляет поле поиска для фильтрации по IP-адресу, порту или протоколу. Это позволяет быстро найти все соединения конкретного хоста или все соединения на определённый порт.

Удаление состояний

Индивидуальные состояния можно удалить кнопкой в строке записи. Массовое удаление состояний выполняется через Diagnostics > States > Reset States. Удаление состояния принудительно прерывает соединение - клиенту потребуется установить новое.

Внимание:

Массовый сброс состояний прерывает все активные соединения через файрвол. Эту операцию следует выполнять только при необходимости - например, после изменения правил NAT, когда старые состояния содержат устаревшие трансляции.

Применение

  • Диагностика проблем подключения - проверка наличия или отсутствия ожидаемого состояния
  • Выявление аномалий - большое количество состояний от одного IP может указывать на сканирование или атаку
  • Мониторинг VPN - проверка прохождения трафика через VPN-туннель
  • Анализ NAT - проверка корректности трансляции адресов

pfInfo

Страница pfInfo доступна через Diagnostics > pfInfo и отображает полную статистику подсистемы pf (packet filter).

Отображаемые данные

  • State Table - текущее и максимальное количество записей в таблице состояний, процент использования
  • Counters - счётчики пакетов: match, bad-offset, fragment, short, normalize, memory, bad-timestamp, congestion, ip-option, proto-cksum, state-mismatch, state-insert, state-limit, src-limit, synproxy
  • Source Tracking Table - количество записей отслеживания источников
  • Limits - настроенные лимиты: states, src-nodes, frags, tables, table-entries
  • Timeouts - таймауты для различных протоколов и состояний

Применение

  • Мониторинг заполнения таблицы состояний - приближение к максимуму вызывает отбрасывание новых соединений
  • Выявление аномалий - высокие значения bad-offset, fragment или state-mismatch указывают на проблемы или атаки
  • Планирование ёмкости - анализ пиковых значений для корректировки лимитов в System > Advanced > Firewall & NAT

pfTop

Утилита pfTop доступна через Diagnostics > pfTop и отображает таблицу состояний файрвола в реальном времени, аналогично утилите top для процессов.

Режимы отображения

pfTop поддерживает несколько режимов сортировки и отображения:

  • Default - все состояния, отсортированные по количеству байт
  • Long - расширенный формат с дополнительными полями
  • Queue - отображение очередей Traffic Shaper
  • Rules - статистика по правилам файрвола
  • Size - сортировка по объёму переданных данных
  • Speed - сортировка по текущей скорости передачи
  • State - сортировка по состоянию соединения
  • Time - сортировка по времени существования

Применение

  • Выявление потребителей полосы - сортировка по Speed или Size показывает хосты с наибольшим трафиком
  • Мониторинг в реальном времени - наблюдение за активными соединениями во время диагностики
  • Анализ правил - режим Rules показывает, какие правила обрабатывают наибольший трафик

Packet Capture

Инструмент захвата пакетов доступен через Diagnostics > Packet Capture и позволяет записывать сетевой трафик для последующего анализа. Функциональность основана на утилите tcpdump.

Параметры захвата

ПараметрОписание
InterfaceСетевой интерфейс для захвата (WAN, LAN, OPTx, VPN)
PromiscuousЗахват всех пакетов на интерфейсе (не только адресованных pfSense)
Address FamilyIPv4, IPv6 или оба
ProtocolФильтр протокола: Any, ICMP, TCP, UDP, ARP, CARP и др.
Host AddressIP-адрес для фильтрации (источник или назначение)
PortПорт для фильтрации (источник или назначение)
Packet LengthМаксимальная длина захватываемого пакета (snaplen)
CountКоличество пакетов для захвата (0 - без ограничения)
Level of DetailУровень детализации вывода: Normal, Medium, High, Full

Выполнение захвата

  1. Настроить параметры фильтрации
  2. Нажать Start для начала захвата
  3. Воспроизвести проблемный трафик
  4. Нажать Stop для остановки захвата
  5. Просмотреть результаты непосредственно на странице или скачать файл pcap

Скачивание pcap

После остановки захвата файл pcap доступен для скачивания по ссылке на странице. Файл можно открыть в Wireshark для детального анализа с применением фильтров отображения, следованием за потоком TCP и декодированием протоколов прикладного уровня.

Рекомендации по захвату

  • Указывать максимально узкие фильтры (хост, порт, протокол) для сокращения объёма данных
  • Устанавливать разумное ограничение Count для предотвращения переполнения памяти
  • Для диагностики NAT выполнять захват одновременно на WAN и LAN интерфейсах (в двух вкладках браузера) для сравнения адресов до и после трансляции
  • Для VPN-диагностики захватывать трафик на физическом интерфейсе (зашифрованный) и на виртуальном интерфейсе туннеля (расшифрованный)

Command Prompt

Страница доступна через Diagnostics > Command Prompt и предоставляет возможность выполнения команд операционной системы и PHP-кода непосредственно из веб-интерфейса.

Выполнение команд Shell

Поле Execute Shell Command позволяет запускать любые команды FreeBSD:

# Проверка загрузки процессора
top -b -n 1 | head -5

# Просмотр таблицы маршрутизации
netstat -rn

# Проверка сетевых интерфейсов
ifconfig -a

# Просмотр правил pf
pfctl -sr

# Проверка состояния служб
sockstat -l

Выполнение PHP-команд

Поле Execute PHP Command позволяет запускать PHP-код с доступом к внутреннему API pfSense. Это используется для отладки конфигурации и выполнения операций, недоступных через стандартный интерфейс.

Внимание:

Command Prompt предоставляет полный доступ к системе с правами root. Некорректные команды могут вывести систему из строя. Следует использовать этот инструмент только при необходимости и с чётким пониманием выполняемых действий.

Загрузка и скачивание файлов

Страница также предоставляет функции загрузки файлов на pfSense и скачивания файлов с устройства. Это полезно для передачи конфигурационных файлов, скриптов или результатов диагностики.

System Activity

Страница доступна через Diagnostics > System Activity и отображает вывод утилиты top - список процессов, отсортированных по потреблению ресурсов.

Отображаемые данные

  • Load Averages - средняя нагрузка за 1, 5 и 15 минут
  • CPU Usage - потребление CPU по категориям (user, system, interrupt, idle)
  • Memory Usage - использование оперативной памяти
  • Swap Usage - использование пространства подкачки
  • Process List - список процессов с PID, пользователем, приоритетом, потреблением CPU и памяти

Применение

  • Выявление ресурсоёмких процессов - определение процессов, создающих чрезмерную нагрузку
  • Диагностика зависаний - проверка состояния процессов (running, sleeping, zombie)
  • Мониторинг памяти - контроль использования swap (активное использование swap указывает на нехватку RAM)

S.M.A.R.T. Status

Страница доступна через Diagnostics > S.M.A.R.T. Status и отображает данные диагностики S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) для жёстких дисков и SSD.

Доступные тесты

  • Info - общая информация о диске: модель, серийный номер, прошивка, ёмкость
  • Health - общая оценка здоровья диска (PASSED/FAILED)
  • SMART Attributes - детальные атрибуты: температура, количество переназначенных секторов, часы работы, количество циклов включения
  • Logs - журнал ошибок и результаты предыдущих тестов
  • Short/Long Self-Test - запуск самодиагностики диска

Регулярная проверка S.M.A.R.T. позволяет обнаружить деградацию диска до его полного выхода из строя.

Методология диагностики

Систематический подход к диагностике сетевых проблем в pfSense:

Шаг 1: Определение симптомов

Определить характер проблемы: полная потеря связности, снижение производительности, периодические отказы, проблема с конкретным сервисом.

Шаг 2: Проверка базовой связности

  1. Ping шлюза из pfSense - проверяет работоспособность WAN-подключения
  2. Ping целевого хоста из pfSense - проверяет маршрутизацию
  3. DNS Lookup - проверяет разрешение имён

Шаг 3: Анализ маршрута

  1. Traceroute до целевого хоста - определяет точку обрыва маршрута
  2. Выбор правильного Source Address для проверки маршрутизации через конкретный интерфейс

Шаг 4: Проверка файрвола

  1. States - проверить наличие или отсутствие записи состояния для проблемного соединения
  2. Системные логи (Firewall) - проверить, не блокируется ли трафик правилами файрвола
  3. pfInfo - проверить, не достигнут ли лимит таблицы состояний

Шаг 5: Углублённый анализ

  1. Packet Capture - захватить трафик на интерфейсах для анализа на уровне пакетов
  2. pfTop - проверить активные соединения в реальном времени
  3. ARP Table - проверить разрешение адресов на канальном уровне

Шаг 6: Анализ ресурсов

  1. System Activity - проверить нагрузку на CPU и память
  2. S.M.A.R.T. - проверить здоровье дисков
  3. Dashboard - оценить общее состояние системы

Связанные разделы

Last updated on