Я устраняю проблему, когда длинная транзакция TCP (> = 60 с) отключалась бы между моим источником (точка A) и пунктом назначения (точка B), проходя через внутренний шлюз Linux и несколько других маршрутизаторов / коммутаторов CISCO между ними.

Чтобы продолжить изучение проблемы, мне нужно включить протоколирование TCP и упростить анализ первопричин. Тем не менее, у меня очень мало свободного места на диске и я не мог выполнять эту запись так долго, как хотел бы. Поэтому я хотел бы знать, есть ли способ включить протоколирование TCP только для выбранных пакетов TCP? Мне нужно было бы включить ведение журнала на шлюзе и промежуточных сетевых устройствах между ними.

В частности, я выясняю, получила ли точка A пакет FIN от точки B или от любых других промежуточных устройств, что привело к вышеупомянутому разъединению, когда для завершения транзакции требуется более 60 с.

1 ответ1

1

tcpdump твой друг. Со страницы справочника pcap-filter:

Чтобы выбрать начальный и конечный пакеты (пакеты SYN и FIN) каждого диалога TCP, который включает нелокальный хост.

tcp [tcpflags] & (tcp-syn | tcp-fin)!= 0 и не src, а dst net localnet

Итак, tcpdump -ieth0 filter_expression должен дать вам то, что вам нужно. Вы можете добавить такие вещи, как and host a.b.c.d and port efg чтобы еще больше ограничить перехват . Вы должны иметь возможность использовать то же самое выражение фильтра с WireShark, если вы предпочитаете программу с графическим интерфейсом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .