Назад | Перейти на главную страницу

tcpdump показывает трафик, пока я не использую фильтр

У меня есть сервер, который получает трафик с зеркального порта коммутатора. Интерфейс, подключенный к этому зеркальному порту, находится в промисковом режиме. Когда я использую простой метод catch all tcpdump в интерфейсе, например

tcpdump -nn -i eth1

Я вижу большое движение. Я могу даже использовать grep для некоторых вещей, например, порта 443.

tcpdump -nn -i eth1 | grep 443

очевидно, это показывает все, что имеет 443 в нем, а не только порт 443. Я визуально проверил это и вижу такие вещи:

15:08:08.112550 IP 12.34.56.78.1430 > 87.65.43.21.443: . ack 35124 win 32768

Но мне нужен только порт 443, так что ...

tcpdump -nn -i eth1 port 443
...
0 packets captured

Странно. Когда я использую фильтр, я не вижу трафика. Я пробовал "ip-порт", "dst-порт" и несколько других фильтров. Я также пробовал фильтровать по IP вместо порта. Ничего.

eth1      Link encap:Ethernet  HWaddr 00:24:81:A5:AD:7A  
          inet6 addr: fe80::224:81ff:fea5:ad7a/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:4114781478 errors:0 dropped:1 overruns:0 frame:0
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2240970313430 (2.0 TiB)  TX bytes:15155497 (14.4 MiB)
          Interrupt:98 Memory:fa000000-fa012800 

Этот интерфейс видел очень много трафика. И мой фильтр действителен, правда? Почему я ничего не вижу?

Возможная причина заключается в том, что tcpdump получил пакет, который либо инкапсулирован в другой протокол, либо фрейм, который, например, был помечен идентификатором VLAN.

Вы не видите этого в tcpdumpвывод, поскольку вы не указали никаких аргументов подробности, но ваш фильтр не соответствует вашему port 443 в основном подразумевает not vlan and (proto tcp or proto udp) and port 443.

Вы также можете проверить это, выгрузив кадр в шестнадцатеричном формате, используя -xx и анализ данных кадра. Если вам известен VID, о котором идет речь, просто добавьте and vlan <VID> к вашему фильтру, чтобы получить захваченные пакеты.