Является ли tcpdump надежным на 100% при исходящем соединении? - PullRequest
0 голосов
/ 29 апреля 2020

Я работаю на сервере. Он выполняет проверку работоспособности на другом сервере, как простое открытое tcp-соединение. В основном мой tcpdump говорит, что пакет (tcp sYn-пакет проверки работоспособности) выходит из моего интерфейса. Но Брандмауэр ничего не видит. Я сомневаюсь, что пакет выходит за пределы сервера или проблема на коммутаторе. Есть ли способ быть уверенным в этом?

1 Ответ

0 голосов
/ 29 апреля 2020

Захваченный трафик c == источник правды

Возможно, что tcpdump может иметь ложные отрицания (т.е. пакеты отправляются, но tcpdump не записывает их). Это может быть связано с тем, что аппаратное обеспечение (ЦП, ОЗУ, диск) максимально загружено или размер буфера tcpdump (-B) слишком мал. Аналогично, возможно, ваш брандмауэр не поднимает его там, где должен.

Весьма маловероятно, что tcpdump сообщит о ложном срабатывании. Tcpdump копирует байты из сетевого интерфейса [0] и суммирует их в текстовой строке (в зависимости от ваших параметров вывода). Если правила брандмауэра, например, iptables заблокируют трафик c, tcpdump не увидит трафик c. Если tcpdump сообщает о пакете, вы можете быть уверены, что он прошел этот интерфейс.

[0]: Если вам интересно, как работает tcpdump на более низком уровне, используйте strace .

Устранение неполадок, связанных с потоком

Устранение неполадок, связанных с потоком, может потребоваться, чтобы выяснить, где отбрасываются пакеты в сети. Для вашей сети server:A <-> B:switch:C <-> D:Firewall мы знаем, что A отправляет ее, а D не получает. Таким образом, вы должны проверить порты B и C, чтобы определить, где происходит потеря пакета. Также возможно, что D сообщает о ложном отрицании. Вы можете проверить обе эти вещи, подключив этот сервер напрямую к другому брандмауэру, который может выполнять захват пакетов / мониторинг трафика c.

...