tcpdump bilgilerini hangi seviyeden alıyor?


12

Ben hatalı bir ethernet denetleyicisi düzeltmek için boşuna çalışıyordu gibi burada denedim bir şey makinede tcpdump çalıştıran oldu.

Tcpdump'ın, aynı makinede çalışmasına rağmen, ping uygulamasının gönderdiğini düşündüğü ICMP paketlerinin bazılarının gerçekte telden çıkmadığını tespit edebildiğini ilginç buldum. Bu tcpdump sonuçlarını burada çoğalttım:

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

Seq numarasının birkaç kez nasıl atladığına dikkat edin ... ping uygulamasının gerçekten kutuyu terk etmeyen paketleri oluşturduğunu gösterir.

Bu da beni soruma getiriyor: tcpdump, ICMP paketlerinin gerçekten dışarı çıkmadığını nasıl saptayabildi? Bir şekilde telde ne olduğunu doğrudan izleyebilir mi?

Bunu başarırsa, çekirdeğin bir kısmına, bir ağ denetleyicisinin standart bir parçası olan bazı donanımlarla arabirim kurarak olduğunu varsayıyorum.

Yine de, bu oldukça havalı! Eğer tcpdump aslında böyle değilse, birisi bana yazılımdaki eksik paketleri nasıl algıladığını açıklayabilir mi?

Yanıtlar:


13

Evet. Ağ arayüzlerini karışık moda sokarak, tcpdump ağ arayüzünden ne olduğunu (ve içinde) tam olarak görebiliyor.

tcpdump, layer2 + 'da çalışır. Ethernet, FDDI, PPP & SLIP, Token Ring ve tüm tcpdump'ın ağır kaldırma işlemlerini yapan libpcap tarafından desteklenen diğer protokollere bakmak için kullanılabilir.

Tcpdump ( libpcap aracılığıyla) tarafından analiz edilebilen katman 2 protokollerinin tam listesi için pcap man sayfasının pcap_datalink () bölümüne bir göz atın .

Bir okuma tcpdump adam sayfası size tam olarak nasıl, çekirdek ve ağ arayüzleri ile tcpdump ve libpcap arayüzü ham veri bağlantı katmanı çerçeveleri okumak edebilmek için iyi bir anlayış verecektir.


1
Teşekkürler Tim. Bir şey, tcpdump man sayfasına bir göz attım ve çekirdek / ağ arayüzleri hakkında hiçbir şey görmedim. Başka işaretçileriniz varsa, bunun hakkında daha fazla bilgi edinmek isterim.
Eric

yukarıda bağladığım pcap man sayfası ağ arayüzleri hakkında daha fazla konuşuyor. tcpdump yalnızca verileri sunar. veriyi yakalayan libpcap ve ağ aygıtlarıyla arayüz oluşturur.
Tim Kennedy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.