з якого рівня мережевого стеку tcpdump отримує свою інформацію?


12

Як я намагався марно виправити несправний контролер локальних мереж тут , одна річ , яку я спробував , був запущений ТСРйітр на машині.

Мені було цікаво, що tcpdump зміг виявити, що деякі пакети ICMP, які додає програма ping, вважають, що він надсилає, насправді не виходять на дріт, хоча він працює на одній машині. Я відтворив результати tcpdump тут:

14:25:01.162331 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 1, length 64
14:25:02.168630 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 2, length 64
14:25:02.228192 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 2, length 64
14:25:07.236359 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 3, length 64
14:25:07.259431 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 3, length 64
14:25:31.307707 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 9, length 64
14:25:32.316628 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 10, length 64
14:25:33.324623 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 11, length 64
14:25:33.349896 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 11, length 64
14:25:43.368625 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 17, length 64
14:25:43.394590 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 17, length 64
14:26:18.518391 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 30, length 64
14:26:18.537866 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 30, length 64
14:26:19.519554 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 31, length 64
14:26:20.518588 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 32, length 64
14:26:21.518559 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 33, length 64
14:26:21.538623 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 33, length 64
14:26:37.573641 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 35, length 64
14:26:38.580648 IP debian.local > 74.125.224.80: ICMP echo request, id 2334, seq 36, length 64
14:26:38.602195 IP 74.125.224.80 > debian.local: ICMP echo reply, id 2334, seq 36, length 64

Зауважте, як послідовно скаче число послідовностей ..., що вказує на пакети, які генерує програма ping, яка насправді не залишає поле.

Що приводить мене до мого питання: як tcpdump зміг виявити, що пакети ICMP насправді не виходили? Чи здатний якимось чином безпосередньо стежити за тим, що знаходиться на дроті?

Якщо це все-таки вдасться досягти, я припускаю, що це пов'язане з деякою частиною ядра, яка в свою чергу інтерфейсує до певного обладнання, яке є стандартною частиною мережевого контролера.

Навіть так, це досить круто! Якщо це насправді не те, як функціонує tcpdump, може хтось пояснить мені, як він виявив відсутні пакети в програмному забезпеченні?

Відповіді:


13

Так. Вводячи мережеві інтерфейси в розбещений режим, tcpdump зможе точно побачити, що відбувається (і в) мережевому інтерфейсі.

tcpdump працює на layer2 +. його можна використовувати для перегляду Ethernet, FDDI, PPP & SLIP, Token Ring та будь-якого іншого протоколу, який підтримується libpcap, що робить усе важке підняття tcpdump.

Перегляньте розділ pcap_datalink () сторінки man pcap для повного переліку протоколів рівня 2, які tcpdump (через libpcap) може аналізувати.

Читання сторінки "tcpdump man" дасть вам хороше розуміння того, як саме, tcpdump та libpcap інтерфейс з ядром та мережевими інтерфейсами, щоб мати змогу читати необроблені кадри рівня даних посилання.


1
Дякую Тіме. Одне, я переглянув сторінку man tcpdump і не бачив нічого про інтерфейси ядра / мережі. Мені цікаво дізнатися більше про це, якщо у вас є інші покажчики.
Ерік

сторінка man pcap, яку я зв'язав вище, більше говорить про мережеві інтерфейси. tcpdump представляє лише дані. це libpcap, який фіксує дані та інтерфейси до мережевих пристроїв.
Тім Кеннеді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.