Tcpdump - Command Linux - Unix Command

NAME

tcpdump - membuang trafik pada rangkaian

SINOPSIS

tcpdump [ -adeflnNOpqRStuvxX ] [ -c count ]

[ -C file_size ] [ -F fail ]

[ -i antara muka ] [ -m modul ] [ -r fail ]

[ -s snaplen ] [ -T jenis ] [ -U pengguna ] [ -w fail ]

[ -E algo: rahsia ] [ ungkapan ]

DESKRIPSI

Tcpdump mencetak tajuk-tajuk paket pada antara muka rangkaian yang sepadan dengan ungkapan boolean. Ia juga boleh dijalankan dengan bendera -w , yang menyebabkan ia menyimpan data paket ke fail untuk analisa kemudian, dan / atau dengan bendera -r , yang menyebabkan ia dibaca dari fail paket yang disimpan dan bukannya untuk membaca paket dari antara muka rangkaian. Dalam semua kes, hanya paket yang sepadan dengan ekspresi akan diproses oleh tcpdump .

Tcpdump akan, jika tidak berjalan dengan bendera -c , terus menangkap paket sehingga diganggu oleh isyarat SIGINT (dijana, contohnya, dengan menaip watak gangguan anda, biasanya mengawal-C) atau isyarat SIGTERM (biasanya dihasilkan dengan membunuh (1) arahan); jika berlari dengan bendera -c , ia akan menangkap paket sehingga diganggu oleh isyarat SIGINT atau SIGTERM atau bilangan paket tertentu yang telah diproses.

Apabila tcpdump selesai menangkap paket, ia akan melaporkan tuduhan:

paket `` diterima oleh penapis '' (makna ini bergantung pada OS di mana anda menjalankan tcpdump , dan mungkin dalam cara OS dikonfigurasi - jika penapis telah ditentukan pada baris arahan, pada beberapa OS yang dikira paket tidak kira sama ada ia dipadankan dengan ungkapan penapis, dan pada OS lain ia mengira hanya paket yang dipadankan dengan ungkapan penapis dan diproses oleh tcpdump );

paket `` digugurkan oleh kernel '' (ini adalah bilangan paket yang dijatuhkan, disebabkan oleh kekurangan ruang penimbal, oleh mekanisma tangkapan paket di OS di mana tcpdump sedang berjalan, jika OS melaporkan maklumat itu kepada aplikasi; jika tidak, ia akan dilaporkan sebagai 0).

Pada platform yang menyokong isyarat SIGINFO, seperti BSD yang paling banyak, ia akan melaporkan jumlahnya apabila ia menerima isyarat SIGINFO (dijana, sebagai contoh, dengan menaip watak `status 'anda, biasanya mengawal-T) dan akan terus menangkap paket .

Membaca paket dari antara muka rangkaian mungkin memerlukan anda mempunyai keistimewaan khusus:

Di bawah SunOS 3.x atau 4.x dengan NIT atau BPF:

Anda mesti membaca akses ke / dev / nit atau / dev / bpf * .

Di bawah Solaris dengan DLPI:

Anda mesti mempunyai akses baca / tulis ke peranti pseudo rangkaian, contohnya / dev / le . Sekurang-kurangnya beberapa versi Solaris, bagaimanapun, ini tidak mencukupi untuk membolehkan tcpdump ditangkap dalam mod rambang; pada versi Solaris, anda mesti root, atau tcpdump mesti dipasang setuid ke akar, untuk menangkap dalam mod rambang. Perhatikan bahawa, pada banyak (mungkin semua) antara muka, jika anda tidak menangkap dalam mod rambang, anda tidak akan melihat sebarang paket keluar, jadi tangkapan yang tidak dilakukan dalam mod rambang mungkin tidak berguna.

Di bawah HP-UX dengan DLPI:

Anda mesti root atau tcpdump mesti dipasang setuid ke root.

Di bawah IRIX dengan pengintipan:

Anda mesti root atau tcpdump mesti dipasang setuid ke root.

Di bawah Linux:

Anda mesti root atau tcpdump mesti dipasang setuid ke root.

Di bawah Ultrix dan Digital UNIX / Tru64 UNIX:

Mana-mana pengguna boleh menangkap trafik rangkaian dengan tcpdump . Walau bagaimanapun, tiada pengguna (malah pengguna super) dapat menangkap dalam mod rambang di antara muka melainkan jika pengguna super telah mengaktifkan operasi mod rambang pada muka yang menggunakan pfconfig (8), dan tiada pengguna (bahkan pengguna super ) boleh menangkap lalu lintas unicast yang diterima oleh atau dihantar oleh mesin pada antara muka melainkan jika pengguna super telah mengaktifkan operasi salinan-semua-mod pada antara muka yang menggunakan pfconfig , tangkapan paket yang berguna pada antara muka mungkin memerlukan sama ada mod- rawak atau salinan operasi mod-semua-mod, atau kedua-dua mod operasi, dibolehkan pada antara muka itu.

Di bawah BSD:

Anda mesti membaca akses ke / dev / bpf * .

Membaca fail paket yang disimpan tidak memerlukan keistimewaan istimewa.

PILIHAN

-a

Cuba untuk menukar alamat rangkaian dan siaran ke nama.

-c

Keluar selepas menerima kiraan kiraan .

-C

Sebelum menulis paket mentah ke fail simpan, periksa sama ada fail pada masa ini lebih besar daripada file_size dan, jika ya, tutup fail simpan semasa dan buka yang baru. Savefiles selepas fail simpanan pertama akan mempunyai nama yang ditentukan dengan bendera -w , dengan nombor selepas itu, bermula pada 2 dan terus ke atas. Unit fail ialah jutaan bait (1,000,000 bait, bukan 1,048,576 bait).

-d

Dumpkan kod padanan paket yang disusun dalam bentuk manusia yang boleh dibaca kepada output standard dan hentikan.

-dd

Kod pemadanan paket dump sebagai fragmen program C.

-ddd

Kod pemadanan paket dump sebagai nombor perpuluhan (didahului dengan kiraan).

-e

Cetak pengepala peringkat pautan pada setiap baris sampah.

-E

Gunakan algo: rahsia untuk menyulitkan paket ESP IPsec. Algoritma mungkin des-cbc , 3des-cbc , blowfish-cbc , rc3-cbc , cast128-cbc , atau tidak . Lalai adalah des-cbc . Keupayaan untuk menyahsulit paket hanya hadir jika tcpdump disusun dengan cryptography enabled. rahsia teks ascii untuk kunci rahsia ESP. Kita tidak boleh mengambil nilai binari sewenang-wenang pada masa ini. Opsyen itu menganggap RFC2406 ESP, bukan RFC1827 ESP. Pilihan ini hanya untuk tujuan penyahpepijatan, dan penggunaan pilihan ini dengan benar-benar `rahsia 'tidak digalakkan. Dengan menyampaikan kunci rahsia IPsec ke baris arahan anda menjadikannya kelihatan kepada orang lain, melalui ps (1) dan peristiwa-peristiwa lain.

-f

Cetak alamat internet `asing 'secara numerik dan bukannya secara simbolik (pilihan ini bertujuan untuk merosakkan kerosakan otak yang serius di pelayan yp Sun --- biasanya digantung selamanya menerjemahkan nombor internet bukan tempatan).

-F

Gunakan fail sebagai input untuk ungkapan penapis. Ungkapan tambahan yang diberikan pada baris perintah diabaikan.

-i

Dengar pada antara muka . Jika tidak ditentukan, tcpdump mencari senarai antara muka sistem untuk antara muka yang bernombor, dikonfigurasi paling rendah (tidak termasuk loopback). Dikatakan patah dengan memilih perlawanan paling awal.

Pada sistem Linux dengan biji 2.2 atau yang lebih baru, argumen antara '`mana-mana' 'boleh digunakan untuk menangkap paket dari semua antara muka. Perhatikan bahawa menangkap pada peranti `` mana-mana '' tidak akan dilakukan dalam mod rambang.

-l

Buat stdout line buffered. Berguna jika anda mahu melihat data semasa menangkapnya. Contohnya,
`` tcpdump -l | tee dat '' atau `` tcpdump -l> dat & tail -f dat ''.

-m

Muatkan definisi mod SMIB MIB dari modul fail. Pilihan ini boleh digunakan beberapa kali untuk memuat beberapa modul MIB ke dalam tcpdump .

-n

Jangan menukar alamat hos kepada nama. Ini boleh digunakan untuk mengelakkan pemeriksaan DNS.

-nn

Jangan menukar protokol dan nombor port dan sebagainya untuk nama sama ada.

-N

Jangan cetak kelayakan nama domain nama tuan rumah. Misalnya, jika anda memberikan bendera ini maka tcpdump akan mencetak `nic '' bukannya` `nic.ddn.mil ''.

-O

Jangan jalankan pengoptimal kod padanan paket. Ini berguna hanya jika anda mengesyaki bug dalam pengoptimuman.

-p

Jangan letakkan antara muka ke mod rambang. Perhatikan bahawa antara muka mungkin berada dalam mod rambang untuk beberapa sebab lain; Oleh itu, `-p 'tidak boleh digunakan sebagai singkatan untuk` tuan rumah ether {tempatan-hw-addr} atau siaran eter'.

-q

Cepat (tenang?) Output. Cetak kurang maklumat protokol supaya garis output lebih pendek.

-R

Anggapkan paket ESP / AH berdasarkan spesifikasi lama (RFC1825 hingga RFC1829). Sekiranya dinyatakan, tcpdump tidak akan mencetak medan pencegahan semula. Oleh kerana tidak ada medan versi protokol dalam spesifikasi ESP / AH, tcpdump tidak dapat menyimpulkan versi protokol ESP / AH.

-r

Baca paket dari fail (yang telah dibuat dengan pilihan -w). Input standard digunakan jika fail `` - ''.

-S

Cetak mutlak, bukannya relatif, nombor urutan TCP.

-s

Baki data snapf snapf dari setiap paket dan bukannya default 68 (dengan SunOS's NIT, minima sebenarnya 96). 68 bait adalah mencukupi untuk IP, ICMP, TCP dan UDP tetapi boleh memotong maklumat protokol dari pelayan nama dan paket NFS (lihat di bawah). Packet dipotong kerana snapshot terhad ditunjukkan dalam output dengan `` [| proto ] '', di mana proto adalah nama paras protokol di mana pemotongan telah berlaku. Ambil perhatian bahawa mengambil snapshot yang lebih besar kedua-duanya meningkatkan jumlah masa yang diperlukan untuk memproses paket dan, secara efektif, mengurangkan jumlah buffering paket. Ini boleh menyebabkan paket hilang. Anda harus membatasi snaplen kepada nombor terkecil yang akan menangkap maklumat protokol yang anda minati. Menetapkan snaplen kepada 0 bermaksud menggunakan panjang yang diperlukan untuk menangkap seluruh paket.

-T

Pangkat pek dipilih oleh " ungkapan " untuk ditafsirkan jenis yang dinyatakan. Pada masa ini, jenis-jenis yang diketahui adalah cnfp (protokol Cisco NetFlow), rpc (Protokol Aplikasi Ralat ), rtcp (protokol kawalan sebenar), snmp (Simple Network Management Protocol) ), dan wb (diedarkan Lembaga Putih).

-t

Jangan mencetak cap waktu pada setiap baris sampah.

-tt

Cetak cap waktu tidak terformat di setiap garis sampah.

-U

Menurun keistimewaan root dan menukar ID pengguna kepada ID pengguna dan kumpulan ke kumpulan utama pengguna .

Nota! Red Hat Linux secara automatik menurunkan keistimewaan kepada pengguna `` pcap '' jika tiada yang lain ditentukan.

-ttt

Cetak delta (dalam mikro-saat) antara baris semasa dan sebelumnya pada setiap baris sampah.

-tttt

Cetak cap waktu dalam format lalai yang diteruskan mengikut tarikh pada setiap baris sampah.

-u

Cetak pegangan NFS tanpa kod.

-v

(Sedikit lebih) output verbose. Sebagai contoh, masa untuk hidup, pengenalpastian, jumlah panjang dan pilihan dalam paket IP dicetak. Juga membolehkan pemeriksaan integriti paket tambahan seperti mengesahkan checksum header IP dan ICMP.

-vv

Malah lebih banyak kelebihan output. Sebagai contoh, medan tambahan dicetak dari paket NFS reply, dan paket SMB sepenuhnya didekodkan.

-vvv

Malah lebih banyak kelebihan output. Sebagai contoh, telnet SB ... pilihan SE dicetak sepenuhnya. Dengan pilihan -X telnet dicetak dalam hex juga.

-w

Tuliskan paket mentah untuk fail dan bukannya menguraikan dan mencetaknya. Mereka kemudiannya boleh dicetak dengan pilihan -r. Output standard digunakan jika fail `` - ''.

-x

Cetak setiap paket (tolak tajuk paras pautannya) dalam hex. Lebih kecil daripada bait paket atau snaplen akan dicetak. Ambil perhatian bahawa ini adalah keseluruhan paket lapisan-pautan, jadi untuk lapisan pautan yang pad (misalnya Ethernet), bait padding juga akan dicetak apabila paket lapisan yang lebih tinggi adalah lebih pendek daripada padding yang diperlukan.

-X

Apabila percetakan hex, cetak ascii juga. Jadi jika -x juga ditetapkan, paket dicetak dalam hex / ascii. Ini sangat berguna untuk menganalisis protokol baru. Walaupun -x juga tidak ditetapkan, beberapa bahagian beberapa paket boleh dicetak dalam hex / ascii.

ungkapan

memilih paket mana yang akan dibuang. Jika tiada ekspresi diberikan, semua paket di internet akan dibuang. Jika tidak, hanya paket yang ekspresinya 'benar' akan dibuang.

Ungkapan ini terdiri daripada satu atau lebih primitif. Primitif biasanya terdiri daripada id (nama atau nombor) yang didahului oleh satu atau lebih penyertaan. Terdapat tiga jenis kelayakan:

jenis

kelayakan mengatakan apa jenis nama atau nombor id merujuk kepada. Jenis yang mungkin adalah tuan rumah , bersih dan pelabuhan . Misalnya, `host foo ',` net 128.3', `port 20 '. Sekiranya tiada jenis kelayakan, tuan rumah diandaikan.

dir

kelayakan menentukan arah perpindahan tertentu ke dan / atau dari id . Arah yang mungkin ialah src , dst , src atau dst dan src dan dst . Contohnya, `src foo ',` dst net 128.3', `src atau dst port ftp-data '. Jika tiada kualifier dir, src atau dst diandaikan. Untuk lapisan pautan `null '(iaitu menunjuk ke titik protokol seperti slip), kelayakan masuk dan keluar boleh digunakan untuk menentukan arahan yang dikehendaki.

proto

kelayakan mengehadkan perlawanan ke protokol tertentu. Protos yang mungkin adalah: eter , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp dan udp . Contohnya, `ether src foo ',` arp net 128.3', `tcp port 21 '. Sekiranya tiada penyokong proto, semua protokol yang konsisten dengan jenis tersebut diandaikan. Contohnya, src foo 'bermaksud `(ip atau arp atau rarp) src foo' (kecuali yang kedua bukan sintaksis undang-undang),` net bar 'bermaksud' net bar 'dan `port 53' `(tcp atau udp) port 53 '.

[`fddi 'sebenarnya merupakan alias untuk` eter'; parser merawatnya secara identik sebagai bermaksud `` paras pautan data yang digunakan pada antara muka rangkaian yang ditentukan. '' Tajuk FDDI mengandungi sumber dan alamat destinasi seperti Ethernet, dan sering mengandungi jenis paket Ethernet, jadi anda boleh menapis pada bidang FDDI ini sama seperti medan Ethernet yang sama. Tajuk FDDI juga mengandungi medan lain, tetapi anda tidak boleh menyebutnya dengan jelas dalam ungkapan penapis.

Begitu juga, `tr 'adalah alias untuk` eter'; pernyataan perenggan yang terdahulu mengenai tajuk FDDI juga terpakai kepada tajuk Token Ring.]

Di samping itu, terdapat beberapa kata kunci 'primitif' khusus yang tidak mengikut corak: gerbang , siaran , kurang , dan ungkapan aritmetik. Semua ini diterangkan di bawah.

Ungkapan penapis yang lebih kompleks dibina dengan menggunakan kata-kata dan , atau dan tidak menggabungkan primitif. Contohnya, `host foo dan bukan port ftp dan bukan port ftp-data '. Untuk menyimpan menaip, senarai kualifikasi yang sama boleh ditinggalkan. Misalnya, `tcp dst port ftp atau ftp-data atau domain 'sama persis dengan` tcp dst port ftp atau tcp dst port ftp-data atau tcp dst port domain'.

Primitif yang dibenarkan adalah:

hos tuan rumah hos

Benar jika bidang destinasi IPv4 / v6 paket adalah tuan rumah , yang mungkin sama ada alamat atau nama.

host tuan rumah src

Benar jika medan sumber IPv4 / v6 paket adalah tuan rumah .

hos tuan rumah

Benar jika sama ada sumber IPv4 / v6 atau destinasi paket adalah tuan rumah . Sebarang ekspresi tuan rumah di atas boleh dibuat dengan kata kunci, ip , arp , rarp , atau ip6 seperti di:

host tuan rumah ip

yang bersamaan dengan:

eter proto \ ip dan hos tuan rumah

Jika hos adalah nama dengan banyak alamat IP, setiap alamat akan diperiksa untuk perlawanan.

ether dst ehost

Benar jika alamat destinasi ethernet adalah hantu . Ehost mungkin sama ada nama dari / etc / eter atau nombor (lihat eter (3N) untuk format berangka).

eher src ehost

Benar jika alamat sumber ethernet adalah hantu .

eher host host

Benar jika sama ada sumber ethernet atau alamat destinasi adalah hantu .

gerbang gerbang

Benar jika paket menggunakan hos sebagai pintu masuk. Yaitu, sumber ethernet atau alamat destinasi adalah tuan rumah tetapi tidak pun sumber IP mahupun destinasi IP adalah tuan rumah . Tuan rumah mestilah nama dan mesti dijumpai oleh mekanisme penyelesaian hos-nama-ke-IP-alamat mesin (nama fail hos, DNS, NIS, dan lain-lain) dan alamat resolusi alamat hos-nama-ke-Ethernet mekanisme (/ etc / eters, dll.). (Satu ungkapan setara ialah

tuan rumah tuan rumah ehost dan bukan tuan rumah tuan rumah

yang boleh digunakan sama ada nama atau nombor untuk hos / ehost .) Sintaks ini tidak berfungsi dalam konfigurasi yang didayakan IPv6 pada masa ini.

bersih dst bersih

Benar jika alamat destinasi IPv4 / v6 paket mempunyai nombor rangkaian bersih . Bersih mungkin sama ada nama dari / etc / networks atau nombor rangkaian (lihat rangkaian (4) untuk butiran).

net bersih src

Benar jika alamat sumber IPv4 / v6 pada paket mempunyai nombor rangkaian bersih .

bersih bersih

Benar jika sama ada sumber IPv4 / v6 atau alamat destinasi paket mempunyai nombor rangkaian bersih .

netmask net mask net

Benar jika alamat IP sesuai dengan netmask tertentu. Boleh layak dengan src atau sebagainya . Perhatikan bahawa sintaks ini tidak sah untuk IPv6 bersih .

bersih bersih / len

Benar jika alamat IPv4 / v6 sepadan dengan netmask len bit lebar. Boleh layak dengan src atau sebagainya .

pelabuhan pelabuhan dst

Benar jika paket ip / tcp, ip / udp, ip6 / tcp atau ip6 / udp dan mempunyai port pelabuhan tujuan destinasi. Port boleh menjadi nombor atau nama yang digunakan dalam / etc / services (lihat tcp (4P) dan udp (4P)). Jika nama digunakan, kedua-dua nombor dan protokol pelabuhan diperiksa. Jika nombor atau nama samar-samar digunakan, hanya nombor port yang diperiksa (contohnya, dst port 513 akan mencetak kedua-dua tcp / log masuk dan lalu lintas udp / siapa, dan domain pelabuhan akan mencetak kedua tcp / domain dan udp / domain).

port port src

Benar jika paket mempunyai nilai port sumber port .

port pelabuhan

Benar jika sama ada pelabuhan sumber atau tujuan paket adalah pelabuhan . Mana-mana ungkapan pelabur di atas boleh dibuat dengan kata kunci, tcp atau udp , seperti dalam:

port pelabuhan tcp src

yang sepadan dengan hanya paket tcp yang pelabuhan sumber adalah pelabuhan .

kurang panjang

Benar jika paket mempunyai panjang kurang daripada atau sama dengan panjangnya . Ini bersamaan dengan:

len <= panjang .

panjang yang lebih besar

Benar jika paket mempunyai panjang lebih besar daripada atau sama dengan panjang . Ini bersamaan dengan:

len> = panjang .

protokol ip proto

Benar jika paket itu adalah paket IP (lihat ip (4P)) protokol jenis protokol . Protokol boleh menjadi nombor atau salah satu daripada nama icmp , icmp6 , igmp , igrp , pim , ah , esp , vrrp , udp , atau tcp . Ambil perhatian bahawa pengenal tcp , udp , dan icmp juga kata kunci dan harus melarikan diri melalui backslash (\), iaitu \\ dalam c-shell. Perhatikan bahawa primitif ini tidak mengejar rantai pengepala protokol.

protokol prip ip6

Benar jika paket itu adalah paket IPv6 protokol jenis protokol . Perhatikan bahawa primitif ini tidak mengejar rantai pengepala protokol.

protokol protochain ip6

Benar jika paket itu adalah paket IPv6, dan mengandungi header protokol dengan protokol jenis dalam rangkaian header protokolnya. Sebagai contoh,

ip6 protochain 6

memadankan mana-mana paket IPv6 dengan tandatangan protokol TCP di rantai pengepala protokol. Paket ini mungkin mengandungi, sebagai contoh, pengesahan pengepala, pengepala pelayaran, atau pengepala pilihan hop-hop-hop, antara header IPv6 dan header TCP. Kod BPF yang dipancarkan oleh primitif ini adalah rumit dan tidak dapat dioptimumkan oleh kod pengoptimuman BPF dalam tcpdump , jadi ini agak lambat.

protokol protochain ip

Setara dengan protokol protochain ip6 , tetapi ini untuk IPv4.

siaran eter

Benar jika paket adalah paket siaran ethernet. Kata kunci eter adalah pilihan.

siaran siaran

Benar jika paket itu adalah paket penyiaran IP. Ia menyemak semua konvensyen siaran semua dan semua orang, dan melihat topeng subnet tempatan.

eter multicast

Benar jika paket itu adalah paket ethernet multicast. Kata kunci eter adalah pilihan. Ini adalah singkatan bagi ` eter [0] & 1! = 0 '.

multicast ip

Benar jika paket itu adalah paket IP multicast.

ip6 multicast

Benar jika paket itu adalah paket multicast IPv6.

protokol proto eter

Benar jika paket itu adalah protokol jenis eter. Protokol boleh menjadi nombor atau salah satu nama ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx , atau netbeui . Perhatikan pengecam ini juga kata kunci dan harus melarikan diri melalui backslash (\).

[Dalam kes FDDI (contohnya ' fddi protokol arp ') dan Token Ring (contohnya, ' protokol arp arp '), bagi sebahagian besar protokol tersebut, pengenalan protokol berasal dari header Link Control 801.2 Logical (LLC) biasanya diletakkan di atas kepala header FDDI atau Token Ring.

Apabila menyaring kebanyakan pengecam protokol pada FDDI atau Token Ring, tcpdump hanya memeriksa medan ID protokol header LLC dalam format SNAP yang dipanggil dengan Pengenal Unit Organisasi (OUI) 0x000000, untuk Ethernet yang terkandung; ia tidak memeriksa sama ada paket itu dalam format SNAP dengan OUI 0x000000.

Pengecualian adalah iso , yang mana ia memeriksa DSAP (Titik Akses Perkhidmatan Destinasi) dan SSAP (Titik Akses Perkhidmatan Sumber) dari header LLC, stp dan netbeui , di mana ia memeriksa DSAP header LLC, dan atalk , di mana ia cek untuk paket SNAP-format dengan OUI 0x080007 dan Appletalk etype.

Dalam hal Ethernet, tcpdump memeriksa medan jenis Ethernet untuk sebahagian besar protokol tersebut; pengecualiannya adalah iso , sap , dan netbeui , yang mana ia menyemak bingkai 802.3 dan kemudian mengecaj header LLC seperti yang dilakukan untuk FDDI dan Token Ring, atalk , di mana ia menyemak kedua-duanya untuk Appletalk etype dalam bingkai Ethernet dan untuk Pakej format SNAP seperti yang dilakukan untuk FDDI dan Token Ring, aarp , di mana ia menyemak Appletalk ARP etype dalam sama ada bingkai Ethernet atau bingkai SNAP 802.2 dengan OUI 0x000000, dan ipx , di mana ia menyemak IPX etype dalam bingkai Ethernet, DSX IPX dalam tajuk LLC, 802.3 tanpa pengekodan header LLC IPX, dan etip IPX dalam bingkai SNAP.]

tuan rumah decnet src

Benar jika alamat sumber DECNET menjadi hos , yang mungkin menjadi alamat borang `` 10.123 '', atau nama hos DECNET. [Sokongan nama hos DECNET hanya terdapat pada sistem Ultrix yang dikonfigurasikan untuk menjalankan DECNET.]

hos decnet dan sebagainya

Benar jika alamat destinasi DECNET menjadi tuan rumah .

host host tuan rumah

Benar jika sama ada sumber DECNET atau alamat destinasi adalah tuan rumah .

ip , ip6 , arp , rarp , atalk , aarp , decnet , iso , stp , ipx , netbeui

Singkatan untuk:

eter proto p

di mana p ialah salah satu daripada protokol di atas.

lat , moprc , mopdl

Singkatan untuk:

eter proto p

di mana p ialah salah satu daripada protokol di atas. Ambil perhatian bahawa tcpdump tidak tahu cara untuk menghuraikan protokol ini.

vlan [vlan_id]

Benar jika paket itu adalah paket VLAN IEEE 802.1Q. Jika [vlan_id] ditentukan, hanya benar ialah paket mempunyai vlan_id yang ditentukan. Perhatikan bahawa kata kunci vlan pertama yang dihadapi dalam ungkapan mengubah penyahkodan penyahkodean untuk baki ungkapan pada andaian bahawa paket itu adalah paket VLAN.

tcp , udp , icmp

Singkatan untuk:

ip proto p atau ip6 proto p

di mana p ialah salah satu daripada protokol di atas.

protokol iso proto

Benar jika paket itu adalah protokol jenis protokol OSI. Protokol boleh menjadi nombor atau salah satu daripada nama clnp , esis , atau isis .

clnp , esis , isis

Singkatan untuk:

iso proto p

di mana p ialah salah satu daripada protokol di atas. Ambil perhatian bahawa tcpdump melakukan tugas yang tidak lengkap untuk menguraikan protokol ini.

expr relop expr

Benar jika perhubungannya memegang, di mana relop adalah salah satu>, <,> =, <=, = ,! =, Dan expr adalah ungkapan aritmetik yang terdiri daripada pemalar integer (dinyatakan dalam sintaks standard C), pengendali binari biasa [ , -, *, /, &, |], pengendali panjang, dan aksesori data paket khas. Untuk mengakses data di dalam paket, gunakan sintaks berikut:

proto [ expr : size ]

Proto adalah salah satu daripada ether, fddi, tr, ppp, slip, pautan, ip, arp, rarp, tcp, udp, icmp atau ip6 , dan menandakan lapisan protokol untuk operasi indeks. ( eter, fddi, tr, ppp, slip dan pautan semua merujuk kepada lapisan pautan.) Perhatikan bahawa tcp, udp dan jenis protokol lapisan atas yang lain hanya berlaku untuk IPv4, bukan IPv6 (ini akan ditetapkan pada masa depan). Offset byte, berbanding dengan lapisan protokol yang ditunjukkan, diberikan oleh expr . Saiz adalah pilihan dan menunjukkan bilangan bait dalam bidang minat; ia boleh menjadi satu, dua, atau empat, dan mungkir kepada satu. Operator panjang, ditunjukkan oleh kata kunci len , memberikan panjang paket.

Sebagai contoh, ` eter [0] & 1! = 0 'menangkap semua lalu lintas multicast. Ungkapan ` ip [0] & 0xf! = 5 'menangkap semua paket IP dengan pilihan. Ungkapan ` ip [6: 2] & 0x1fff = 0 'hanya menangkap datagrams yang tidak fragmentasi dan sifar frag datagram fragmented. Pemeriksaan ini secara tersirat digunakan untuk operasi tcp dan udp index. Sebagai contoh, tcp [0] selalu bermaksud bait pertama header TCP, dan tidak pernah bermakna byte pertama fragmen yang campur tangan.

Sesetengah nilai offset dan medan boleh dinyatakan sebagai nama dan bukan sebagai nilai angka. Offset bidang tajuk protokol berikut boleh didapati: icmptype (medan jenis ICMP), icmpcode (medan kod ICMP), dan tcpflags (medan bendera TCP).

Nilai medan jenis ICMP berikut boleh didapati: icmp-echoreply , icmp-unreach , icmp-sourcequench , icmp-redirect , icmp-echo , icmp-routeradvert , icmp-routersolicit , icmp-timxceed , icmp-paramprob , icmp-tstamp , icmp -tstampreply , icmp-ireq , icmp-ireqreply , icmp-maskreq , icmp-maskreply .

Nilai medan bendera TCP berikut boleh didapati: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Primitif boleh digabungkan menggunakan:

Sekumpulan tanda kurung dan operator yang tersendiri (kurungan istimewa kepada Shell dan mesti luput).

Negasi (` ! 'Atau` tidak ').

Concatenation (` && ' or` and ').

Alternasi (` || 'atau` atau ').

Negasi mempunyai keutamaan yang paling tinggi. Gantian dan penyambungan mempunyai keutamaan yang sama dan bersekutu ke kiri. Perhatikan bahawa eksplisit dan token, bukan penyesuaian, kini diperlukan untuk penggabungan.

Sekiranya pengenal diberi tanpa kata kunci, kata kunci yang paling terkini adalah diandaikan. Sebagai contoh,

bukan tuan rumah vs dan ace

adalah pendek

bukan tuan rumah vs dan tuan rumah ace

yang tidak boleh dikelirukan

tidak (tuan rumah vs atau ace)

Hujah ekspresi boleh dihantar kepada tcpdump sebagai hujah tunggal atau sebagai hujah berganda, yang mana lebih mudah. Umumnya, jika ungkapan mengandungi metakarakter Shell, lebih mudah untuk menyampaikannya sebagai hujah yang dipetik tunggal. Hujah berbilang disatukan dengan ruang sebelum diasingkan.

CONTOH

Untuk mencetak semua paket yang tiba di atau berlepas dari matahari terbenam :

tcpdump tuan rumah matahari terbenam

Untuk mencetak lalu lintas antara heli dan sama ada panas atau ace :

tcpdump host helios dan \ (hot or ace \)

Untuk mencetak semua paket IP antara ace dan mana-mana host kecuali helios :

tcpdump ip host ace and not helios

Untuk mencetak semua trafik antara tuan rumah dan tuan rumah di Berkeley:

tcpdump net ucb-eter

Untuk mencetak semua lalu lintas ftp melalui snip gateway internet: (perhatikan bahawa ungkapan tersebut dipetik untuk mencegah shell dari (mis-) menafsirkan kurungan):

tcpdump 'gerbang snup dan (port ftp atau ftp-data)'

Untuk mencetak trafik yang tidak bersumber dari atau ditakdirkan untuk tuan rumah setempat (jika anda menjadi pintu masuk ke satu jaring yang lain, barang ini tidak boleh dibuat ke jaring setempat anda).

tcpdump ip dan bukan netnet netnet

Untuk mencetak paket awal dan akhir (paket SYN dan FIN) bagi setiap perbualan TCP yang melibatkan tuan rumah bukan setempat.

tcpdump 'tcp [tcpflags] & (tcp-syn | tcp-fin)! = 0 dan bukan src dan dst netnet '

Untuk mencetak paket IP lebih lama daripada 576 bait yang dihantar melalui snip gerbang:

gerbang tcpdump 'snup dan ip [2: 2]> 576'

Untuk mencetak siaran IP atau paket multicast yang tidak dihantar melalui siaran ethernet atau multicast:

tcpdump 'ether [0] & 1 = 0 dan ip [16]> = 224'

Untuk mencetak semua paket ICMP yang bukan echo permintaan / balasan (iaitu, bukan ping paket):

tcpdump 'icmp [icmptype]! = icmp-echo dan icmp [icmptype]! = icmp-echoreply'

FORMAT OUTPUT

Pengeluaran tcpdump adalah bergantung kepada protokol. Berikut ini memberikan penerangan ringkas dan contoh kebanyakan format.

Pautan Peringkat Pautan

Sekiranya pilihan '-e' diberikan, tajuk tahap pautan akan dicetak. Pada ethernet, alamat dan alamat sumber, protokol, dan panjang paket dicetak.

Pada rangkaian FDDI, pilihan '-e' menyebabkan tcpdump untuk mencetak medan `kawalan frame ', alamat sumber dan tujuan, dan panjang paket. (Bidang 'kawalan frame' mengawal tafsiran seluruh paket.) Paket biasa (seperti yang mengandungi datagram IP) adalah paket async, dengan nilai prioriti antara 0 dan 7; contohnya, ` async4 '. paket diandaikan mengandungi paket 802.2 Logical Link Control (LLC); header LLC dicetak jika bukan datagram ISO atau paket SNAP yang dipanggil.

Pada rangkaian Token Ring, pilihan '-e' menyebabkan tcpdump untuk mencetak medan `kawalan akses 'dan` kawalan frame', alamat sumber dan tujuan, dan panjang paket. Seperti pada rangkaian FDDI, paket diandaikan mengandungi paket LLC. Tidak kira sama ada pilihan '-e' ditentukan atau tidak, maklumat penghalaan sumber dicetak untuk paket yang diarahkan sumber.

(NB: Penerangan berikut menganggap kebiasaan dengan algoritma pemampatan SLIP yang diterangkan dalam RFC-1144.)

Pada pautan SLIP, penunjuk arah (`` I '' untuk inbound, `` O '' untuk keluar), jenis paket, dan maklumat mampatan dicetak. Jenis paket dicetak terlebih dahulu. Tiga jenis adalah ip , utcp , dan ctcp . Tiada maklumat pautan lanjut dicetak untuk paket ip . Untuk paket TCP, pengecam sambungan dicetak mengikut jenisnya. Jika paket dimampatkan, pengepala yang dikodkan dicetak. Kes-kes khas dicetak sebagai * S + n dan * SA + n , di mana n adalah jumlah yang mana nombor urutan (atau nombor urutan dan ack) telah berubah. Jika bukan kes khas, sifar atau lebih banyak perubahan dicetak. Perubahan yang ditunjukkan oleh U (penunjuk segera), W (tetingkap), A (ack), S (nombor urutan) dan I (ID paket), diikuti oleh delta (+ n atau -n) (= n). Akhirnya, jumlah data dalam panjang header paket dan dimampatkan akan dicetak.

Sebagai contoh, baris berikut menunjukkan paket TCP dimampatkan keluar, dengan pengecam sambungan tersirat; ack telah berubah sebanyak 6, nombor urutan dengan 49, dan ID paket oleh 6; terdapat 3 bait data dan 6 bait tajuk mampat:

O ctcp * A + 6 S + 49 I + 6 3 (6)

Paket ARP / RARP

Arp / rarp output menunjukkan jenis permintaan dan hujah-hujahnya. Format ini bertujuan untuk menjadi penjelasan diri. Berikut adalah contoh ringkas yang diambil dari permulaan rlogin dari host rtsg ke host csam :

arp yang-mempunyai csam memberitahu rtsg arp balasan csam adalah-di CSAM

Baris pertama mengatakan bahawa rtsg menghantar paket arp yang meminta alamat ethernet dari host internet csam. Jawapan Csam dengan alamat ethernetnya (dalam contoh ini, alamat ethernet berada dalam topi dan alamat internet dalam kes yang lebih rendah).

Ini akan kelihatan kurang berlebihan jika kita telah melakukan tcpdump -n :

arp yang mempunyai 128.3.254.6 memberitahu 128.3.254.68 arp menjawab 128.3.254.6 pada 02: 07: 01: 00: 01: c4

Sekiranya kita telah melakukan tcpdump -e , hakikat bahawa paket pertama disiarkan dan yang kedua adalah point-to-point akan dapat dilihat:

Penyiaran RTSG 0806 64: arp yang mempunyai csam memberitahu rtsg CSAM RTSG 0806 64: jawapan arp csam adalah di CSAM

Untuk paket pertama ini, alamat alamat ethernet ialah RTSG, destinasi adalah alamat siaran ethernet, medan jenis yang terkandung hex 0806 (taip ETHER_ARP) dan jumlah panjang ialah 64 bait.

Pek TCP

(NB: Huraian berikut menganggap kebiasaan dengan protokol TCP yang diterangkan dalam RFC-793. Jika anda tidak biasa dengan protokol ini, penerangan atau tcpdump ini tidak akan berguna kepada anda.)

Format umum baris protokol tcp ialah:

src> dst: flags data-seqno ack window options urgent

Src dan lain-lain adalah alamat IP dan pelabuhan sumber dan destinasi. Bendera adalah gabungan dari S (SYN), F (FIN), P (PUSH) atau R (RST) atau satu `. ' (tiada bendera). Data-seqno menerangkan bahagian ruang urutan yang dilindungi oleh data dalam paket ini (lihat contoh di bawah). Ack adalah nombor urutan data seterusnya yang diharapkan arah lain pada sambungan ini. Tetingkap adalah bilangan bait untuk menerima ruang penampan yang ada arah lain pada sambungan ini. Urg menunjukkan terdapat data 'mendesak' dalam paket. Opsyen adalah pilihan tcp yang dilampirkan dalam kurungan sudut (misalnya, ).

Src, dst dan bendera sentiasa hadir. Bidang lain bergantung kepada kandungan header protokol tcp paket dan output hanya jika sesuai.

Berikut adalah bahagian pembukaan rlogin dari host rtsg ke host csam .

rtsg.1023> csam.login: S 768512: 768512 (0) win 4096 csam.login> rtsg.1023: S 947648: 947648 (0) ack 768513 win 4096 rtsg.1023> csam. log masuk: . ack 1 win 4096 rtsg.1023> csam.login: P 1: 2 (1) ack 1 win 4096 csam.login> rtsg.1023:. ack 2 win 4096 rtsg.1023> csam.login: P 2:21 (19) ack 1 win 4096 csam.login> rtsg.1023: P 1: 2 (1) ack 21 win 4077 csam.login> rtsg.1023: P 2: 3 (1) ack 21 win 4077 urg 1 csam.login> rtsg.1023: P 3: 4 (1) ack 21 win 4077 urg 1

Baris pertama mengatakan bahawa tcp port 1023 pada rtsg menghantar paket ke log masuk di csam. S menunjukkan bendera SYN ditetapkan. Nombor urutan paket adalah 768512 dan ia tidak mengandungi data. (Notasi adalah `pertama: terakhir (nbytes) 'yang bermaksud` bilangan urutan pertama sehingga tetapi tidak termasuk yang terakhir yang nbytes bait data pengguna'.) Tidak ada piggy-backed ack, tetingkap penerimaan yang tersedia ialah 4096 bytes dan terdapat pilihan saiz segmen maksimum yang meminta mss 1024 bait.

Jawapan Csam dengan paket yang sama kecuali ia termasuk cik piggy-backed untuk rtsg's SYN. Rtsg kemudian SYN acks csam. `. ' bermaksud tiada bendera ditetapkan. Paket tidak mengandungi data sehingga tiada nombor urutan data. Ambil perhatian bahawa nombor urutan ack adalah integer kecil (1). Tcpdump kali pertama melihat tcp `perbualan ', ia mencetak nombor urutan dari paket. Pada paket perbualan berikutnya, perbezaan antara nombor urutan paket dan nombor urutan awal dicetak. Ini bermakna nombor urutan selepas yang pertama boleh ditafsirkan sebagai kedudukan byte relatif dalam aliran data perbualan (dengan data pertama byte setiap arah menjadi `1 '). `-S 'akan mengatasi ciri ini, menyebabkan nombor turutan asal menjadi output.

Pada baris ke-6, rtsg menghantar csam 19 bytes data (bytes 2 hingga 20 di sisi rtsg -> csam perbualan). Bendera PUSH ditetapkan dalam paket. Pada baris ke-7, csam mengatakan ia menerima data yang dihantar oleh rtsg sehingga tetapi tidak termasuk byte 21. Sebagian besar data ini nampaknya duduk di soket soket kerana tetingkap penerimaan csam telah mendapat 19 bytes lebih kecil. Csam juga menghantar satu byte data ke rtsg dalam paket ini. Pada baris ke-8 dan ke-9, csam menghantar dua byte segera, mendorong data ke rtsg.

Sekiranya petikan itu cukup kecil, tcpdump tidak menangkap pengepala TCP penuh, ia menafsirkan banyak tajuk yang boleh dan kemudian melaporkan `` [[| tcp ] '' untuk menunjukkan selebihnya tidak boleh ditafsirkan. Jika tajuk mengandungi pilihan palsu (satu dengan panjang yang sama kecil atau di luar akhir tajuk), tcpdump melaporkannya sebagai `` [ bad opt ] '' dan tidak menafsirkan apa-apa pilihan lain (kerana mustahil untuk memberitahu di mana mereka mula). Sekiranya panjang header menunjukkan opsyen yang ada tetapi panjang datagram IP tidak cukup lama untuk pilihan untuk benar-benar berada di sana, tcpdump melaporkannya sebagai `` [ bad hdr length ] ''.

Menangkap paket TCP dengan kombinasi bendera tertentu (SYN-ACK, URG-ACK, dan sebagainya)

Terdapat 8 bit dalam bahagian bit kawalan tajuk TCP:

CWR | ECE | URG | ACK | PSH | RST | SYN | FIN

Mari kita anggap bahawa kita mahu menonton paket yang digunakan dalam mewujudkan sambungan TCP. Ingat bahawa TCP menggunakan protokol jabat tangan 3-cara apabila ia memulakan sambungan baru; urutan sambungan berkaitan dengan bit kawalan TCP adalah

1) Pemanggil menghantar SYN

2) Penerima bertindak balas dengan SYN, ACK

3) Pemanggil menghantar ACK

Sekarang kita berminat untuk menangkap paket yang hanya mempunyai set SYN (Langkah 1). Perhatikan bahawa kami tidak mahu paket dari langkah 2 (SYN-ACK), hanya SYN awal biasa. Apa yang kita perlukan adalah ungkapan penapis yang betul untuk tcpdump .

Ingat struktur tajuk TCP tanpa pilihan:

0 15 31 ----------------------------------------------- ------------------ | pelabuhan sumber | destinasi destinasi | | -------------------------------------------------- --------------- | nombor urutan | -------------------------------------------------- --------------- | nombor pengiktirafan | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | saiz tingkap | -------------------------------------------------- --------------- | TCP checksum | penunjuk segera | -------------------------------------------------- ---------------

Pengepala TCP biasanya memegang 20 oktet data, kecuali pilihan ada. Garis pertama graf mengandungi oktet 0 - 3, baris kedua menunjukkan oktet 4 - 7 dsb.

Bermula untuk mengira dengan 0, bit kawalan TCP yang berkaitan terkandung dalam oktet 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | saiz tingkap | ---------------- | --------------- | --------------- | - --------------- | | Oktet ke-13 | | |

Mari kita lihat lebih dekat pada octet no. 13:

| | | --------------- | | C | E | U | A | P | R | S | F | | --------------- | 7 5 3 0 |

Ini adalah bit kawalan TCP yang kita minati. Kami telah bernombor bit di oktet ini dari 0 hingga 7, ke kanan ke kiri, jadi bit PSH adalah nombor bit 3, manakala bit URG adalah nombor 5.

Ingat bahawa kami mahu menangkap paket dengan set SYN sahaja. Mari kita lihat apa yang berlaku pada octet 13 jika datagram TCP tiba dengan set SYN bit di tajuknya:

| C | E | U | A | P | R | S | F | | --------------- | | 0 0 0 0 0 0 1 0 | | --------------- | 7 6 5 4 3 2 1 0 |

Melihat seksyen bit kawalan kita melihat bahawa hanya nombor bit 1 (SYN) yang ditetapkan.

Dengan mengandaikan bahawa bilangan oktet 13 adalah integer unsigned 8-bit dalam urutan byte rangkaian, nilai binari oktet ini ialah

00000010

dan perwakilan perpuluhannya ialah

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 2

Kami hampir selesai, kerana sekarang kita tahu bahawa jika hanya SYN ditetapkan, nilai oktet ke-13 dalam tajuk TCP, apabila ditafsirkan sebagai integer unsigned 8-bit dalam urutan byte rangkaian, mestilah tepat 2.

Hubungan ini boleh dinyatakan sebagai

tcp [13] == 2

Kita boleh menggunakan ungkapan ini sebagai penapis untuk tcpdump untuk menonton paket yang hanya mempunyai set SYN:

tcpdump -i xl0 tcp [13] == 2

Ungkapan menyatakan "biarkan ke-13 oktet datagram TCP mempunyai nilai perpuluhan 2", yang sebenarnya adalah apa yang kita mahu.

Sekarang, mari kita ingatkan bahawa kita perlu menangkap paket SYN, tetapi kita tidak peduli jika ACK atau mana-mana bit kawalan TCP lain ditetapkan pada masa yang sama. Mari lihat apa yang berlaku pada oktet 13 apabila datagram TCP dengan set SYN-ACK tiba:

| C | E | U | A | P | R | S | F | | --------------- | | 0 0 0 1 0 0 1 0 | | --------------- | 7 6 5 4 3 2 1 0 |

Sekarang bit 1 dan 4 ditetapkan pada oktet ke-13. Nilai binari oktet 13 ialah


00010010

yang diterjemahkan ke perpuluhan

7 6 5 4 3 2 1 0 0 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 + 0 * 2 + 1 * 2 + 0 * 2 = 18

Sekarang kita tidak boleh menggunakan 'tcp [13] == 18' dalam ungkapan penapis tcpdump , kerana itu hanya akan memilih paket yang mempunyai set SYN-ACK, tetapi bukannya hanya dengan set SYN. Ingat bahawa kami tidak peduli jika ACK atau mana-mana bit kawalan lain ditetapkan selagi SYN ditetapkan.

Untuk mencapai matlamat kami, kami perlu secara logik DAN nilai binari oktet 13 dengan nilai lain untuk mengekalkan sedikit SYN. Kami tahu bahawa kami mahu SYN ditetapkan dalam apa jua keadaan, jadi kami akan logik DAN nilai pada oktet ke-13 dengan nilai binari SYN:

00010010 SYN-ACK 00000010 SYN DAN 00000010 (kami mahu SYN) DAN 00000010 (kami mahu SYN) -------- -------- = 00000010 = 00000010

Kami melihat bahawa operasi AND ini menyampaikan hasil yang sama tanpa mengira sama ada ACK atau bit kawalan TCP lain ditetapkan. Perwakilan desimal dari nilai AND serta hasil dari operasi ini adalah 2 (binary 00000010), jadi kita tahu bahwa untuk paket dengan SYN menetapkan hubungan berikut harus berlaku:

((nilai oktet 13) DAN (2)) == (2)

Ini menunjukkan kita kepada ekspresi penapis tcpdump

tcpdump -i xl0 'tcp [13] & 2 == 2'

Ambil perhatian bahawa anda harus menggunakan sebut harga tunggal atau backslash dalam ungkapan untuk menyembunyikan AND ('&') karakter khas dari shell.

UDP Packets

Format UDP digambarkan oleh paket ini:

actinide.who> broadcast.who: udp 84

Ini mengatakan bahawa pelabuhan yang di host actinide menghantar datagram udp ke pelabuhan yang di siaran siaran , alamat siaran Internet. Peket mengandungi 84 bait data pengguna.

Beberapa perkhidmatan UDP diiktiraf (dari sumber atau nombor port destinasi) dan maklumat protokol tahap tinggi dicetak. Khususnya, permintaan perkhidmatan Nama Domain (RFC-1034/1035) dan panggilan Sun RPC (RFC-1050) ke NFS.

Permintaan Server Nama UDP

(NB: Penerangan berikut mengasumsikan kebiasaan dengan protokol Perkhidmatan Domain yang diterangkan dalam RFC-1035. Jika anda tidak biasa dengan protokol, keterangan berikut akan kelihatan ditulis dalam bahasa Yunani.)

Nama permintaan pelayan diformat sebagai

src> dst: id op? flags qtype qclass name (len) h2opolo.1538> helios.domain: 3+ A? ucbvax.berkeley.edu. (37)

Host h2opolo meminta pelayan domain di helios untuk rekod alamat (qtype = A) yang berkaitan dengan ucbvax.berkeley.edu. ID pertanyaan ialah `3 '. `` ` Menandakan bendera yang dikehendaki rekursi ditetapkan. Panjang pertanyaan ialah 37 bait, tidak termasuk pengepala protokol UDP dan IP. Operasi pertanyaan adalah yang biasa, Pertanyaan , jadi medan op tidak diabaikan. Sekiranya op itu ada apa-apa lagi, ia akan dicetak di antara `3 'dan` +'. Begitu juga, qclass adalah yang normal, C_IN , dan ditinggalkan. Mana-mana qclass lain akan dicetak dengan segera selepas `A '.

Beberapa anomali diperiksa dan boleh menyebabkan bidang tambahan tertutup dalam kurungan persegi: Jika pertanyaan mengandungi jawapan, rekod otoriti atau bahagian rekod tambahan, angka , nscount , atau arkan dicetak sebagai `[ n a] ',` [ n n ] 'atau `[ n au]' di mana n adalah kiraan yang sesuai. Jika mana-mana bit tindak balas yang ditetapkan (AA, RA atau rcode) atau mana-mana bit 'mestilah sifar' ditetapkan dalam bait dua dan tiga, `[b2 & 3 = x ] 'dicetak, di mana x ialah nilai hex bait pengepala dua dan tiga.

Tanggungjawab Server Nama UDP

Tanggapan pelayan nama diformat sebagai

src> dst: id op rcode flags a / n / au class class data (len) helios.domain> h2opolo.1538: 3 3/3/7 A 128.32.137.3 (273) helios.domain> h2opolo.1537: 2 NXDomain * 0/1/0 (97)

Dalam contoh pertama, helios bertindak balas kepada pertanyaan id 3 dari h2opolo dengan 3 rekod jawapan, 3 rekod pelayan nama dan 7 rekod tambahan. Rekod jawapan pertama adalah jenis A (alamat) dan datanya ialah alamat internet 128.32.137.3. Saiz keseluruhan respons adalah 273 bait, tidak termasuk tajuk UDP dan IP. Kod op (Query) dan tindak balas (NoError) telah ditinggalkan, seperti kelas (C_IN) rekod A.

Dalam contoh kedua, helios menjawab pertanyaan 2 dengan kod tindak balas domain yang tidak wujud (NXDomain) tanpa jawapan, satu pelayan nama dan tiada rekod pihak berkuasa. `* 'Menunjukkan bahawa sedikit jawapan yang berwibawa telah ditetapkan. Oleh kerana tidak ada jawapan, tiada jenis, kelas atau data dicetak.

Watak-watak bendera lain yang mungkin muncul adalah `- '(rekursur tersedia, RA, tidak ditetapkan) dan` |' (mesej dipotong, TC, tetapkan). Jika bahagian `soalan 'tidak mengandungi tepat satu entri,` [ n q]' dicetak.

Ambil perhatian bahawa permintaan dan tanggapan pelayan nama cenderung menjadi besar dan snaplen lalai sebanyak 68 bait mungkin tidak menangkap cukup paket untuk dicetak. Gunakan bendera -s untuk meningkatkan snaplen jika anda perlu serius menyiasat lalu lintas pelayan nama. ` -s 128 'telah bekerja dengan baik untuk saya.

Penyahkodan SMB / CIFS

tcpdump kini termasuk pengekodan SMB / CIFS / NBT yang agak luas untuk data pada UDP / 137, UDP / 138 dan TCP / 139. Beberapa pengekodan primitif data IPX dan NetBEUI SMB juga dilakukan.

Secara lalai decod yang agak minimum dilakukan, dengan decod lebih terperinci dilakukan jika -v digunakan. Beri amaran bahawa dengan satu paket SMB tunggal boleh mengambil satu atau lebih halaman, jadi hanya gunakan -v jika anda benar-benar menginginkan semua butiran kotor.

Sekiranya anda menyahkod sesi SMB yang mengandungi string unicode maka anda mungkin ingin menetapkan pembolehubah persekitaran USE_UNICODE ke 1. Satu patch untuk auto-detect unicode srings akan dialu-alukan.

Untuk mendapatkan maklumat mengenai format paket SMB dan apakah semua bidang te bermakna melihat www.cifs.org atau pub / samba / specs / direktori di laman cermin samba.org kegemaran anda. Tataletak SMB ditulis oleh Andrew Tridgell (tridge@samba.org).

Permintaan dan Balasan NFS

Permintaan dan balasan Sun NFS (Sistem Fail Jaringan) seperti:

src.xid> dst.nfs: len op args src.nfs> dst.xid: reply stat len ​​op results sushi.6709> wrl.nfs: 112 readlink fh 21,24 / 10.73165 wrl.nfs> sushi.6709: reply ok 40 readlink "../var" sushi.201b> wrl.nfs: 144 lookup fh 9,74 / 4096.6878 "xcolors" wrl.nfs> sushi.201b: reply ok 128 lookup fh 9,74 / 4134.3150

Di baris pertama, susunan sushi menghantar urus niaga dengan id 6709 untuk wrl (perhatikan bahawa nombor yang mengikuti hos src adalah id transaksi, bukan pelabuhan sumber). Permintaannya adalah 112 bait, tidak termasuk pengepala UDP dan IP. Operasi ini adalah readlink (baca pautan simbolik) pada pemegang fail ( fh ) 21,24 / 10.731657119. (Jika ada yang bernasib baik, seperti dalam kes ini, pemegang fail boleh ditafsirkan sebagai pasangan nombor peranti utama, diikuti dengan nombor inod dan nombor penjanaan.) Wrl menjawab `ok 'dengan kandungan pautan.

Di baris ketiga, sushi meminta wrl untuk mencari nama ` xcolors 'dalam fail direktori 9,74 / 4096.6878. Ambil perhatian bahawa data yang dicetak bergantung kepada jenis operasi. Format ini bertujuan untuk menjadi penjelasan diri jika dibaca bersama dengan protokol NFS.

Jika bendera -v (verbose) diberikan, maklumat tambahan dicetak. Sebagai contoh:

sushi.1372a> wrl.nfs: 148 baca fh 21,11 / 12.195 8192 bytes @ 24576 wrl.nfs> sushi.1372a: balas ok 1472 baca REG 100664 id 417/0 sz 29388

(-v juga mencetak bidang IP TTL, ID, panjang, dan pemecahan header IP, yang telah ditinggalkan dari contoh ini.) Dalam baris pertama, sushi meminta wrl untuk membaca 8192 bytes dari file 21,11 / 12.195, pada offset byte 24576. Jawapan Wrl `ok '; paket yang ditunjukkan pada baris kedua adalah serpihan pertama jawapan, dan oleh itu hanya 1472 bait panjang (bait yang lain akan diikuti dalam serpihan berikutnya, tetapi serpihan ini tidak mempunyai NFS atau bahkan tajuk UDP dan tidak mungkin dicetak, bergantung pada ungkapan penapis yang digunakan). Oleh kerana bendera -v diberikan, beberapa atribut fail (yang dikembalikan sebagai tambahan kepada data fail) dicetak: jenis fail (`` REG '', untuk fail biasa), mod fail (dalam okal), uid dan gid, dan saiz fail.

Jika bendera -v diberikan lebih daripada sekali, lebih banyak butiran akan dicetak.

Ambil perhatian bahawa permintaan NFS sangat besar dan banyak perincian tidak akan dicetak kecuali snaplen dinaikkan. Cuba gunakan ` -s 192 'untuk menonton trafik NFS.

Pakej balas NFS tidak jelas mengenal pasti operasi RPC. Sebaliknya, tcpdump menjejaki permintaan `` baru-baru '', dan sepadan dengannya dengan balasan menggunakan ID transaksi. Sekiranya balasan tidak mengikuti permintaan yang sepatutnya, ia mungkin tidak boleh dipersalahkan.

Permintaan dan Balas AFS

Permintaan dan balasan Transarc AFS (Andrew File System) dicetak sebagai:

src.sport> dst.dport: rx packet-type src.sport> dst.dport: rx packet-type call call-name args src.sport> dst.dport: rx packet-type service reply call-name args elvis. 7001> pike.afsfs: rx data fs call rename old fid 536876964/1/1 ".newsrc.new" new fid 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx data fs reply rename

Dalam baris pertama, elvis hos menghantar paket RX ke pike. Ini adalah paket data RX kepada perkhidmatan fs (fileserver), dan merupakan permulaan panggilan RPC. Panggilan RPC adalah nama semula, dengan id fail direktori lama 536876964/1/1 dan nama fail lama `.newsrc.new ', dan id fail direktori baru 536876964/1/1 dan nama fail baru`. newsrc '. Pike tuan rumah bertindak balas dengan balasan RPC untuk panggilan nama semula (yang berjaya, kerana ia adalah paket data dan bukan paket yang membatalkan).

Secara umum, semua RPC AFS dikodkan sekurang-kurangnya oleh nama panggilan RPC. Kebanyakan RPC AFS mempunyai sekurang-kurangnya beberapa argumen yang dibina (biasanya hanya argumen `menarik ', untuk beberapa definisi yang menarik).

Format ini bertujuan untuk menggambarkan diri sendiri, tetapi ia mungkin tidak berguna kepada orang yang tidak biasa dengan cara kerja AFS dan RX.

Jika bendera -v (verbose) diberikan dua kali, paket pengenalan dan maklumat header tambahan dicetak, seperti ID panggilan RX, nombor panggilan, nombor urutan, nombor siri, dan bendera paket RX.

Jika bendera -v diberi dua kali, maklumat tambahan dicetak, seperti ID panggilan RX, nombor siri, dan bendera paket RX. Maklumat rundingan MTU juga dicetak dari paket RX ack.

Jika bendera -v diberi tiga kali, indeks keselamatan dan id perkhidmatan dicetak.

Kod ralat dicetak untuk paket abort, kecuali paket suar Ubik (kerana paket abort digunakan untuk menandakan satu undi yes untuk protokol Ubik).

Ambil perhatian bahawa permintaan AFS adalah sangat besar dan banyak argumen tidak akan dicetak kecuali snaplen dinaikkan. Cuba gunakan ` -s 256 'untuk menonton trafik AFS.

Pek balas AFS tidak jelas mengenal pasti operasi RPC. Sebaliknya, tcpdump menjejaki permintaan `` baru-baru '', dan sepadan dengannya dengan balasan menggunakan nombor panggilan dan ID perkhidmatan. Sekiranya balasan tidak mengikuti permintaan yang sepatutnya, ia mungkin tidak boleh dipersalahkan.

KIP Appletalk (DDP dalam UDP)

Paket DDP Appletalk yang dikemas dalam datagram UDP dikemas dan dibuang sebagai paket DDP (iaitu, semua maklumat header UDP dibuang). Fail /etc/atalk.names fail digunakan untuk menterjemahkan nombor appletalk bersih dan nod ke nama. Talian dalam fail ini mempunyai borang

nama nombor 1.254 eter 16.1 icsd-net 1.254.110 ace

Dua baris pertama memberikan nama-nama rangkaian appletalk. Baris ketiga memberikan nama tuan rumah tertentu (tuan rumah dibezakan dari jaring oleh oktet ke-3 dalam bilangan - nombor bersih mestilah mempunyai dua oktet dan nombor tuan rumah mesti mempunyai tiga oktet.) Nombor dan nama harus dipisahkan dengan ruang kosong (kosong atau tab). Fail /etc/atalk.names mungkin mengandungi baris kosong atau baris komen (baris bermula dengan `# ').

Alamat Appletalk dicetak dalam bentuk:

net.host.port 144.1.209.2> icsd-net.112.220 office.2> icsd-net.112.220 jssmag.149.235> icsd-net.2

(Sekiranya /etc/atalk.names tidak wujud atau tidak mengandungi kemasukan untuk beberapa host / nombor net appletalk, alamat dicetak dalam bentuk berangka.) Dalam contoh pertama, NBP (DDP port 2) pada bersih 144.1 nod 209 menghantar kepada apa sahaja yang mendengar pada port 220 nod bersih icsd 112. Garis kedua adalah sama kecuali nama penuh nod sumber diketahui (`pejabat '). Baris ketiga adalah penghantaran dari port 235 pada net jssmag node 149 untuk disiarkan di port NBP-net icsd (ambil perhatian bahawa alamat siaran (255) ditunjukkan oleh nama bersih tanpa nombor tuan rumah - untuk sebab ini idea yang bagus untuk mengekalkan nama nod dan nama bersih berbeza dalam /etc/atalk.names).

NBP (protokol mengikat nama) dan paket ATP (protokol transaksi Appletalk) mempunyai kandungannya ditafsirkan. Protokol lain hanya membuang nama protokol (atau nombor jika tiada nama didaftarkan untuk protokol) dan saiz paket.

Paket NBP diformatkan seperti contoh berikut:

icsd-net.112.220> jssmag.2: nbp-lkup 190: "=: LaserWriter @ *" jssmag.209.2> icsd-net.112.220: nbp-reply 190: "RM1140: LaserWriter @ *" -net.112.220: nbp-reply 190: "techpit: LaserWriter @ *" 186

Baris pertama adalah permintaan carian nama untuk penulisan laser yang dihantar oleh host icsd net 112 dan siaran di jssmag bersih. ID nbp untuk pemeriksaan ialah 190. Baris kedua menunjukkan jawapan untuk permintaan ini (perhatikan bahawa ia mempunyai id yang sama) dari tuan rumah jssmag.209 dengan mengatakan ia mempunyai sumber penunjuk laser bernama "RM1140" yang didaftarkan pada port 250. Ketiga baris adalah jawapan yang lain kepada permintaan yang sama yang mengatakan tuan rumah tuan rumah mempunyai jurugambar laser "techpit" yang didaftarkan di port 186.

Pemformatan paket ATP ditunjukkan oleh contoh berikut:

jssmag.209.165> helios.132: atp-req 12266 <0-7> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 0 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 1 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 2 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios.132> jssmag.209.165: atp- resp 12266: 4 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 helios.132> jssmag.209.165: atp-resp 12266: 6 (512) 0xae040000 helios.132> jssmag. 209.165: atp-resp * 12266: 7 (512) 0xae040000 jssmag.209.165> helios.132: atp-req 12266 <3,5> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 3 (512) 0xae040000 helios .132> jssmag.209.165: atp-resp 12266: 5 (512) 0xae040000 jssmag.209.165> helios.132: atp-rel 12266 <0-7> 0xae030001 jssmag.209.133> helios.132: atp-req * 12267 <0 -7> 0xae030002

Jssmag.209 memulakan transaksi id 12266 dengan heli host dengan meminta sehingga 8 paket (`<0-7> '). Nombor hex di hujung baris adalah nilai medan 'userdata' dalam permintaan.

Helios menjawab dengan 8 512-bait paket. `` Digit 'berikutan id urus niaga memberikan nombor urutan paket dalam transaksi dan nombor dalam parens adalah jumlah data dalam paket, tidak termasuk header atp. `* 'Pada paket 7 menunjukkan bahawa bit EOM telah ditetapkan.

Jssmag.209 kemudian meminta agar paket 3 & 5 dihantar semula. Helios meneruskannya kemudian jssmag.209 mengeluarkan transaksi. Akhirnya, jssmag.209 memulakan permintaan seterusnya. `* 'Pada permintaan menunjukkan bahawa XO (` betul sekali') tidak ditetapkan.

Fragmentasi IP

Datagrams Internet fragmented dicetak sebagai

(frag id : size @ offset +) (frag id : size @ offset )

(Bentuk pertama menunjukkan terdapat lebih banyak serpihan. Yang kedua menunjukkan ini adalah serpihan terakhir.)

Id adalah id fragmen. Saiz ialah saiz serpihan (dalam bait) tidak termasuk pengepala IP. Offset adalah offset serpihan ini (dalam bait) dalam datagram asal.

Maklumat serpihan adalah output untuk setiap serpihan. Potongan pertama mengandungi tajuk protokol tahap yang lebih tinggi dan maklumat yang rap dicetak setelah info protokol. Fragmen selepas yang pertama tidak mengandungi header protokol tahap tinggi dan maklumat yang dicetak dicetak selepas alamat sumber dan destinasi. Sebagai contoh, di sini adalah sebahagian daripada ftp dari arizona.edu ke lbl-rtsg.arpa melalui sambungan CSNET yang tidak muncul untuk menangani 576 datagram bytes:

arizona.ftp-data> rtsg.1170:. 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) arizona> rtsg: (frag 595a: 204 @ 328) rtsg.1170> arizona.ftp-data:. ack 1536 menang 2560

Terdapat beberapa perkara yang perlu diperhatikan di sini: Pertama, alamat dalam baris ke-2 tidak termasuk nombor port. Ini kerana maklumat protokol TCP semua dalam serpihan pertama dan kami tidak tahu apa nombor port atau urutan apabila kami mencetak serpihan kemudian. Kedua, maklumat urutan tcp di baris pertama dicetak seolah-olah terdapat 308 bait data pengguna apabila, sebenarnya, terdapat 512 bait (308 pada frag pertama dan 204 pada kedua). Sekiranya anda mencari lubang dalam ruang urutan atau cuba menyesuaikan diri dengan paket, ini boleh menipu anda.

Satu paket dengan IP tidak bendera sempadan ditandai dengan trailing (DF) .

Masa tamat

Secara lalai, semua garisan output didahului oleh cap waktu. Timestamp adalah jam waktu semasa dalam bentuk

hh: mm: ss.frac

dan tepat seperti jam kernel. Timestamp mencerminkan masa kernel pertama melihat paket. Tiada percubaan dibuat untuk menjelaskan lag masa antara apabila antara muka ethernet mengeluarkan paket dari dawai dan apabila kernel menyelenggara 'paket baru' mengganggu.

LIHAT JUGA

lalu lintas (1C), nit (4P), bpf (4), pcap (3)

Penting: Gunakan arahan lelaki ( % man ) untuk melihat bagaimana arahan digunakan pada komputer tertentu anda.