Часто задаваемые вопросы и ответы по учету трафика программой TMeter (FAQ)
 

В небольшой офисной сети имеется компьютер, выполняющий роль шлюза в Интернет (NAT-маршрутизатора). На этом компьютере запущен TMeter, который считает Интернет-трафик для каждого компьютера из офисной сети. Также, за этим компьютером работает пользователь, Интернет-трафик которого необходимо считать наряду с другими пользователями офисной сети. Как это сделать?

См. Q2004

Я установил TMeter на компьютер, выполняющий роль NAT-маршрутизатора чтобы учитывать трафик клиентов моей локальной сети. Я создал фильтр с правилом "Определенный IP адрес - Адреса глобальной сети" в котором включен флаг "Оба направления". Я заполнил таблицу локальных адресов, выбрал для сбора пакетов сетевую карту, которая подключена к локальной сети. Запустив сбор пакетов, я обнаружил, что счетчик переданных байт "не считает", хотя счетчик принятых байт обновляется как надо. В чем проблема?

Скорее всего, вы установили Пассивный режим сбор пакетов. Для компьютера, выполняющего роль NAT-маршрутизатора (или просто IP-маршрутизатора) рекомендуется использовать Активный режим сбора пакетов.

Я создал фильтр с единственным правилом "Любой IP адрес" в качестве источника и "Любой IP адрес" в качестве назначения. Ячейка "Передано" созданного фильтра показывает число, очень близкое к собранному трафику, а вот счетчик принятых байт нулевой. В чем проблема?

Вы не можете разделить сетевой трафик (переданный и принятый) в правиле от "Любого IP адреса" до "Любого IP адреса" поскольку любой пакет удовлетворяет этому условию. Представьте себе, что вы стоите на обочине дороги с двусторонним движением. Какой трафик является входящим, а какой исходящим? Ответить на этот вопрос возможно лишь в том, случае, когда вы определитесь, что, например, машины следующие из города А в город В будут создавать исходящий трафик, а машины, едующие из города В в город А будут создавать входящий трафик.

Я создал фильтр с правилом "Мой компьютер" - "Любой IP адрес", которое учитывает только ICMP-пакеты. Когда я выполняю команду ping с моего компьютера для действующего хоста в локальной сети, счетчики увеличиваются как надо. Однако при попытке "запинговать" несуществующий хост в локальной сети счетчики фильтра "стоят". Я ведь посылаю icmp-пакеты, просто на них не приходит подтверждения. Это глюк?

Когда вы пытаетесь выполнить команду ping для несуществующего хоста в локальной сети, первым делом посылается ARP-запрос на поиск MAC-адреса того хоста, которому вы хотите послать ICMP-пакет. Если такого хоста нет в сети, то ARP-ответ не приходит, поэтому никакие ICMP-пакеты на самом не деле не отсылаются и счетчики фильтра не увеличиваются.

Я имею соединение с Интернет через DSL модем, который включен в Ethernet-хаб моей локальной сети. Мой компьютер имеет адрес 192.168.1.2, а DSL модем имеет адрес 192.168.1.1. Я хочу наблюдать за трафиком между моим компьютером и Интернет. Я создал фильтр в TMeter'e с единственным правилом, где указал адрес "192.168.1.2" в качестве источника и адрес "192.168.1.1" в качестве назначения. Я начал сбор трафика, однако все счетчики остались в нулях. В чем проблема?

Проблема в том, что вы считаете трафик между вашим компьютером и DSL-модемом, а надо считать трафик между вашим компьютером и Интернетом. Заполните таблицу локальных адресов включив в нее все адреса вашей локальной сети (например, 192.168.1.1-192.168.1.255) и создайте фильтр с правилом "192.168.1.2" в качестве источника и "Адреса Глобальной сети" в качестве назначения.

Я использую TMeter на компьютере, выполняющем роль шлюза моей офисной сети. На этом компьютере работает также кэширующий прокси-сервер SquidNT. Все браузеры клиентов моей офисной сети используют прокси. TMeter успешно считает трафик между клиентами и прокси-сервером. Однако я знаю, что часть web-запросов клиентов обслуживается из кэша прокси-сервера и я не хочу считать такой трафик. Возможно ли это?

К сожалению, нет. TMeter собирает "чистые" IP-пакеты. Эти пакеты не несут в себе информацию о том, был ли web-запрос обслужен напрямую или из кэша прокси-сервера. 

Я создал фильтр с правилом, где в качестве назначения указал имя NetBIOS соседнего компьютера. Провел испытания - все ок, трафик считается как надо. Далее я поменял IP адрес на соседнем компьютере, однако созданный фильтр с правилом по имени NetBIOS перестал работать. В чем проблема?

Скорее всего, проблема в кэше имен NetBIOS вашего компьютера (можно посмотреть командой nbtstat -c). Кэш имен NetBIOS обновляется каждые 10 минут и вам следует просто немного подождать. Через некоторое время TMeter будет правильно находить новый IP адрес.

Как учитывать FTP-трафик?

FTP аббревиатура обозначает "File Transfer Protocol" или "Протокол передачи файлов". Существует два режима FTP-соединений: Активный FTP и Пассивный FTP. Правила, которые вам потребуются для учета FTP-трафика зависят от используемого режима. По умолчанию, большинство браузеров используют Пассивный FTP, в то время как большинство FTP клиентских программ (например, CuteFTP, Internet Neighborhood, WS-FTP) используют Активный FTP.
 
FTP-протокол подразумевает два различных соединения между клиентом и FTP-сервером. Первое соединение называется "управляющим" (control connection). Оно предназначено для "входа" клиента в FTP-сервера, перехода между каталогами в FTP-сервере и т.п. Для того, чтобы получить список файлов с сервера, скачать файл с сервера или закачать файл на сервер, используется второе соединение, называемое "соединение для передачи данных" (data connection).
 
Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит "Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль". Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
 
В Активном режиме, когда клиент говорит "Привет!" он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.
 
В Пассивном режиме, после того как клиент сказал "Привет!", сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.
 
Главное отличие между Активным режимом FTP и Пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных. В Активном режиме, клиент должен принять соединение от FTP-сервера. В Пассивном режиме, клиент всегда инициирует соединение.
 
Пример Активного соединения:
[1] Control Connection: Client port 1026 -> Server port 21
[2] Data Connection: Client port 1027 <- Server port 20
 
Пример Пассивного соединения:
[1] Control Connection: Client port 1026 -> Server port 21
[2] Data Connection: Client port 1027 -> Server port 2065
 
Эта информация будет вам достаточна, чтобы создать правила для посчета трафика FTP. Обратите внимание на опцию "FTP data" в редакторе правила. Если эта опция включена, то TMeter будет корректно подсчитывать трафик соединения передачи данных (активное или пассивное) путем динамического добавления дополнительных правил.