Tcpdump - команда за Linux - команда на Unix

NAME

tcpdump - шут сообраќај на мрежа

СИНОПСИС

tcpdump [ -adeflnNOpqRStuvxX ] [ -c брои ]

[ -C file_size ] [ -F датотека ]

[ -i интерфејс ] [ -m модул ] [ -r датотека ]

[ -s snaplen ] [ -T тип ] [ -U корисник ] [ -w датотека ]

[ алго: тајна ] [ израз ]

ОПИС

Tcpdump ги отстранува заглавјата на пакети на мрежен интерфејс што одговара на булевиот израз . Исто така може да се стартува со знакот -w , што предизвикува тој да ги зачувува податоците од пакетите во датотека за подоцнежна анализа и / или со знамето -r , што предизвикува читање од зачуваната пакетичка датотека, наместо да чита пакети од мрежен интерфејс. Во сите случаи, само пакети кои одговараат на изразот ќе бидат обработени од tcpdump .

Tcpdump , ако не работи со знамето -c , продолжува да ги фаќа пакетите додека не се прекине со сигнал SIGINT (генерирана, на пример, со внесување на вашиот карактер на прекин, обично со контрола C) или сигнал SIGTERM (обично генериран со убие (1) команда); ако се работи со знамето -c , ќе ги фати пакетите се додека не се прекине со сигнал SIGINT или SIGTERM или ако е обработен одреден број на пакети.

Кога tcpdump ќе заврши со снимање на пакети, ќе поднесе извештај за бројот на:

пакети `` примени од филтерот '' (значењето на ова зависи од оперативниот систем на кој што го извршувате tcpdump , а можеби и од начинот на кој оперативниот систем е конфигуриран - ако во командната линија е определен филтер, на некои ОС се смета пакети без оглед дали се совпаднати со изразот на филтерот, а на други оперативни системи ги брои само пакетите кои беа совпаднати со изразот на филтерот и беа обработени од tcpdump );

пакети `` паднаа по кернел '' (ова е бројот на пакети што беа отфрлени, поради недостаток на тампон, од механизмот за фаќање на пакети во оперативниот систем на кој работи tcpdump , ако оперативниот систем ги известува тие информации за апликациите; ако не, тоа ќе биде пријавено како 0).

На платформи кои го поддржуваат сигналот SIGINFO, како што се повеќето BSDs, тој ќе ги пријави тие броеви кога ќе добие сигнал SIGINFO (генериран, на пример, со внесување на вашиот `` статус '' знак, обично контролира-T) и ќе продолжи да ги фаќа пакетите .

Читањето на пакети од мрежен интерфејс може да бара да имате посебни привилегии:

Под SunOS 3.x или 4.x со NIT или BPF:

Мора да имате пристап за читање до / dev / nit или / dev / bpf * .

Под Solaris со DLPI:

Мора да имате пристап за читање / запишување на мрежниот псевдо уред, на пр. / Dev / le . На барем некои верзии на Solaris, сепак, ова не е доволно за да се овозможи tcpdump да се фати во промискуитетен режим; за оние верзии на Solaris, мора да сте root, или tcpdump мора да биде инсталиран во root, за да се фати во промискуитетен режим. Имајте на ум дека, на многу (можеби сите) интерфејси, ако не го фатите во промискуитетен режим, нема да видите никакви појдовни пакети, па фаќањето што не е направено во промискуитетен режим можеби не е многу корисно.

Под HP-UX со DLPI:

Мора да бидете root или tcpdump мора да биде инсталиран во root.

Под IRIX со snoop:

Мора да бидете root или tcpdump мора да биде инсталиран во root.

Под Linux:

Мора да бидете root или tcpdump мора да биде инсталиран во root.

Под Ultrix и Digital UNIX / Tru64 UNIX:

Секој корисник може да го фати мрежниот сообраќај со tcpdump . Меѓутоа, ниеден корисник (дури и супер-корисник) не може да го фати во промискуитетен режим на интерфејс, освен ако супер-корисникот не овозможи операција на променливост на тој интерфејс користејќи pfconfig (8), и нема корисник (дури ни супер-корисник ) може да го фати unicast сообраќајот примени од или испратен од страна на машината на интерфејс, освен ако супер-корисникот не овозможи операција за копирање на сите модови на тој интерфејс користејќи pfconfig , толку корисно зафаќање на пакет на интерфејс најверојатно бара или промискуитетен режим или копија -ален режим, или двата начини на работа, да бидат овозможени на тој интерфејс.

Под BSD:

Мора да имате пристап до читање до / dev / bpf * .

Читањето зачувана датотека со пакети не бара посебни привилегии.

ОПЦИИ

Обид да конвертирате мрежа и емитувајте адреси до имиња.

-c

Излезете по добивањето на броевите на пакети.

-C

Пред да напишете суров пакет во спасувачка датотека, проверете дали датотеката е моментално поголема од file_size и ако е така, затворете ја тековната датотека за спас и отворете нова. Savefiles по првата savefile ќе го имаат името наведено со -w знаме, со број по него, почнувајќи од 2 и продолжува нагоре. Единиците на file_size се милиони бајти (1.000.000 бајти, не 1.048.576 бајти).

-d

Исфрли го компилираниот код за појавување на пакетите во човечка читлива форма до стандардниот излез и да застане.

-dd

Код за совпаѓање на пакетот како програмски фрагмент на C.

-ddd

Исчитувај го кодот за појавување на пакети како децимални броеви (претходи со брои).

Печатете го заглавието на врската на врвот на секоја линија за депонија.

Користете алго: тајна за декриптирање на IPsec ESP пакетите. Алгоритмите може да се des- cbc , 3des-cbc , blowfish-cbc , rc3- cbc , cast128-cbc , или ништо . Стандардно е des-cbc . Способноста за декриптирање на пакети е присутна само ако tcpdump е компајлирана со овозможена криптографија. тајната на ASCII текстот за тајниот клуч ESP. Во овој момент не можеме да земеме произволна бинарна вредност. Опцијата претпоставува RFC2406 ESP, а не RFC1827 ESP. Опцијата е само за дебагирање, и употребата на оваа опција со вистински "таен" клуч е обесхрабрена. Преку презентирање на тајниот клуч IPsec на командната линија ви го прави видлив за другите, преку ps (1) и други прилики.

-f

Печатете "странски" интернет адреси нумерички, а не симболично (оваа опција е наменета да се справи со сериозни оштетувања на мозокот на yp серверот на Sun --- обично виси засекогаш да преведува не-локални интернет броеви).

-F

Користете ја датотеката како влез за изразот на филтерот. Дополнителен израз даден на командната линија е игнориран.

-i

Слушајте на интерфејсот . Ако не е специфицирано, tcpdump ја пребарува листата на системски интерфејси за најниско нумериран, конфигуриран интерфејс (со исклучок на повратна врска). Врските се скршени со избирање на најраниот натпревар.

Во Linux-системите со 2,2 или понови кернели, аргументот за интерфејс на `any '' може да се користи за да се фатат пакети од сите интерфејси. Имајте на ум дека фаќањата на "било кој" уред нема да бидат направени во промискуитетен режим.

-l

Направи ја статичката линија забутена. Корисно ако сакате да ги видите податоците додека го снимате. На пример,
`` tcpdump -l | да "или" tcpdump -l> dat & tail -f dat "'.

-m

Вчитајте ги дефинициите на SMI MIB модулите од датотечниот модул . Оваа опција може да се користи неколку пати за да се вчитаат неколку MIB модули во tcpdump .

-n

Не конвертирајте ги адресите на домаќините на имиња. Ова може да се искористи за да се избегнат DNS-пребарувања.

-Нн

Не ги конвертирате броевите на протоколот и портата итн. Во имиња.

-N

Не ги печатите доменските квалификации за имињата на домаќините. На пример, ако го дадете ова знаме тогаш tcpdump ќе печати `` nic '' наместо `nic.ddn.mil ''.

Не стартувај оптимизатор за код за појавување на пакет. Ова е корисно само ако се сомневате во бубачка во оптимизаторот.

-p

Не ставајте го интерфејсот во промискуитетен режим. Имајте на ум дека интерфејсот може да биде во промискуитетен режим од некоја друга причина; Оттука, `-p 'не може да се користи како кратенка за' етер домаќин {локално-hw-addr} или етер емитува '.

-q

Брз (тивок?) Излез. Печатете помалку информации за протокол, па излезните линии се пократки.

-R

Да претпоставиме дека пакетите ESP / AH се базираат на стара спецификација (RFC1825 до RFC1829). Ако е одредено, tcpdump нема да го печати полето за спречување на реприза. Бидејќи во полето за протокол ESP / AH нема протокол за протокол, tcpdump не може да ја заклучи верзијата на ESP / AH протоколот.

-r

Прочитајте пакети од датотека (која беше создадена со опцијата -w). Стандарден влез се користи ако датотеката е `` - ''.

-S

Печати апсолутни, а не релативни, броеви на TCP секвенци.

Snarf ги засилува бајтите на податоците од секој пакет, наместо стандардно од 68 (со NIT на SunOS, минималната вредност всушност е 96). 68 бајти е соодветно за IP, ICMP, TCP и UDP, но може да ги скратат информациите за протоколот од серверот за имиња и NFS пакетите (видете подолу). Пакетите скратени поради ограничено слика се наведени во излезот со `` [| proto ] '', каде што прото е името на нивото на протокол на кое се случило усекувањето. Имајте на ум дека земањето поголеми снимки го зголемува времето потребно за процесирање на пакетите и, ефективно, го намалува количеството на паушално зачувување. Ова може да предизвика загуба на пакетите. Треба да го ограничите зачувувањето до најмалиот број кој ќе ги фати информациите за протоколот за кој сте заинтересирани. Поставувањето на snaplen на 0 значи употреба на потребната должина за да ги собере целите пакети.

Форсирај пакети избрани со " израз " за да се интерпретира наведениот тип . Во моментов познати типови се cnfp (Cisco NetFlow протокол), rpc (Remote Procedure Call), rtp (протокол за апликација во реално време), rtcp (протокол за контрола на апликации во реално време), snmp (Simple Network Management Protocol), vat ), и wb (дистрибуиран бел борд).

Не печатете временска ознака на секоја линија за депонија.

Печатете неформатиран временска ознака на секоја линија за депонија.

-U

Капки привилегии за root и го менува корисничкиот ID на корисничката и групната идентификација до примарната група на корисници .

Забелешка! Red Hat Linux автоматски ги симнува привилегиите на корисникот `` pcap '' ако ништо друго не е одредено.

-ttt

Печатете делта (во микро-секунди) помеѓу тековната и претходната линија на секоја линија за депонија.

-tttt

Печатете временска ознака во стандардниот формат, продолжен по датум на секоја линија за отпад.

Печати некодирани NFS рачки.

-v

(Малку повеќе) главен излез. На пример, се печати време за живеење, идентификација, вкупна должина и опции во IP-пакетот. Исто така овозможува дополнителни проверки на интегритетот на пакети, како што е проверка на контролната сума на IP и ICMP header.

-vv

Уште повеќе главен излез. На пример, дополнителни полиња се испечатени од пакетите за одговор од NFS, и SMB пакетите се целосно декодирани.

-vvv

Уште повеќе главен излез. На пример, телнет SB ... SE опциите се печатат во целост. Со -X телнет опции се испечатени во хекс.

-w

Напишете ги суровите пакети во датотека, наместо да парсирате и да ги испечатите. Подоцна можат да се отпечатат со -r опцијата. Стандардниот излез се користи ако датотеката е `` - ''.

-x

Печатете го секој пакет (минус заглавјето на нивото на врската) во хексадецимален. Ќе бидат испечатени помалите од целиот пакет или бајти со засилување . Имајте на ум дека ова е целиот пакетен линк-слој, па така за слоевите за поврзување што рамката (на пр. Ethernet) ќе се отпечатат бајтите, кога пакетот за повисок слој е пократок од потребното дополнување.

-X

Кога печатете хексадецимално, исто така отпечатете ascii. Така, ако -x е исто така наместено, пакетот е отпечатен во хекс / ascii. Ова е многу корисно за анализирање на нови протоколи. Дури и ако -x не е исто така наместено, некои делови од некои пакети може да се испечатат во hex / ascii.

израз

избира кои пакети ќе бидат фрлени. Ако не е даден израз , сите пакети на мрежата ќе бидат фрлени. Инаку, само пакети за кои изразот е "точно" ќе бидат фрлени.

Изразот се состои од еден или повеќе примитиви. Примитивите обично се состојат од идентитет (име или број) претходен од еден или повеќе квалификатори. Постојат три различни видови на квалификациите:

тип

квалификациите велат каква работа се однесува на името на името или бројот. Можни типови се домаќин , мрежа и порта . На пример, `host foo ',` net 128.3', `port 20 '. Ако не постои квалификуван тип, се претпоставува домаќин .

реж

квалификациите наведете одредена насока на пренос на и / или од идентификаторот . Можни насоки се src , dst , src или dst и src и dst . На пример, `src foo ',` dst net 128.3', `src или dst port ftp-data '. Доколку не постои квалификациски репер, се претпоставува src или dst . За слоеви со `нула` врска (т.е. точка-точка протоколи како што се лизга), влезни и излезни квалификатори може да се користат за да се определи саканата насока.

прото

квалификациите го ограничуваат натпреварот на одреден протокол. Можни прототи се: етер , fddi , tr , ip , ip6 , arp , rarp , decnet , tcp и udp . На пример, `ether src foo ',` arp net 128.3', `tcp port 21 '. Доколку не постои прото квалификатор, се претпоставуваат сите протоколи што се во согласност со типот. На пример, `src foo 'значи` (ip или arp или rarp) src foo' (освен ако вториот не е правна синтакса), `net bar 'значи` (ip или arp или rarp) net bar' и `port 53 ' `(TCP или udp) порта 53 '.

[`fddi 'всушност е алијас за` етер`; парсерот ги третира идентично како што значи "ниво на податочна врска што се користи на наведениот мрежен интерфејс." Заглавјата на FDDI содржат етернет-извозни и дестинациски адреси, и често содржат етернет-тип пакетски типови, па можете да филтрирате на овие FDDI полиња исто како и со аналогните Етернет полиња. Заглавјата на FDDI исто така содржат и други полиња, но не можете да ги наведете експлицитно во израз на филтер.

Слично, `tr 'е алијас за` етер`; изјавите од претходниот став за заглавјата на FDDI, исто така, се однесуваат на заглавјето за Token Ring.]

Покрај горенаведените, постојат и некои специјални примитивни клучни зборови кои не ја следат моделот: портал , емитувани , помалку , поголеми и аритметички изрази. Сите овие се опишани подолу.

Покомплексните изрази на филтерот се изградени со користење на зборовите и , или, а не да се комбинираат примитивите. На пример, "домаќин foo, а не порта ftp, а не порта ftp-податоци". За да зачувувате пишување, идентични списоци за квалификациите може да бидат изоставени. На пример, `tcp dst port ftp или ftp-data или domain 'е иста како и` tcp dst port ftp или tcp dst port ftp-data или tcp dst port domain'.

Дозволените примитиви се:

dst домаќин домаќин

Точно ако полето за дестинација IPv4 / v6 на пакетот е домаќин , што може да биде или адреса или име.

срцев домаќин домаќин

Точно, ако полето за извор на IPv4 / v6 на пакетот е домаќин .

домаќин

Точно ако или изворот или дестинацијата на пакетот е домаќин на IPv4 / v6. Секој од горенаведените изрази на домаќинот може да се залепи со клучните зборови, ip , arp , rarp или ip6 како што се:

ip домаќин домаќин

што е еквивалентно на:

етер прото \ ip и домаќин домаќин

Ако домаќинот е име со повеќе IP адреси, секоја адреса ќе биде проверена за натпревар.

ether dst ehost

Точно, ако адресата за етернет дестинација е ехо . Ехо може да биде или име од / etc / ethers или број (види етер (3N) за нумерички формат).

ether src ehost

Точно, ако адресата на етернет извор е ехо .

етер домаќин емост

Точно ако етернет или дестинација адреса е ехо .

портал домаќин

Точно, ако пакетот користи домаќин како портал. Односно, изворот на етернет или дестинациската адреса беше домаќин, но ниту еден ИП извор ниту дестинацијата за ИП не беа домаќини . Домаќинот мора да биде име и мора да биде пронајден и од механизмите за решавање на името на домаќинот-до-IP-адреса (име на датотека со името на домаќинот, DNS, NIS, итн.) И од адресата на компјутерот-име-до-етернет-адреса механизам (/ etc / ethers, итн.). (Еквивалентен израз е

ether домаќин ehost, а не домаќин домаќин

која може да се користи со имиња или броеви за домаќин / ehost .) Оваа синтакса не работи во IPv6-конфигурирана конфигурација во овој момент.

dst net net

Точно, ако IPv4 / v6 дестинационата адреса на пакетот има мрежен број на нето . Нет може да биде или име од / etc / мрежи или мрежен број (видете мрежи (4) за детали).

нето мрежа

Точно, ако IPv4 / v6 изворната адреса на пакетот има мрежен број на мрежи .

нето нето

Точно, ако или изворот на изворот или дестинацијата на IPv4 / v6 на пакетот има мрежен број на мрежи .

net net маска маска за маска

Точно ако IP адресата се совпаѓа со мрежата со одредена мрежна маска . Може да се квалификува со src или dst . Забележете дека оваа синтакса не е валидна за IPv6 мрежата .

нето нето / len

Точно, ако адресата IPv4 / v6 се совпаѓа со мрежата ширум матичните мрежи . Може да се квалификува со src или dst .

dst порта пристаниште

Точно, ако пакетот е ip / tcp, ip / udp, ip6 / tcp или ip6 / udp и има вредност за пристаниште на пристаништето . Портата може да биде број или име што се користи во / etc / services (видете tcp (4P) и udp (4P)). Ако се користи име, се проверува бројот и протоколот. Ако се користи број или двосмислено име, се проверува само бројот на портата (на пр., Dst пристаништето 513 ќе печати и TCP / сообраќај за најава и udp / кој сообраќај, а доменот на портата ќе печати и tcp / domain и udp / domain domain).

src порта пристаниште

Точно, ако пакетот има вредност на изворната порта на портата .

порта пристаниште

Вистина ако или портата на изворот или дестинацијата на пакетот е порта . Секој од горенаведените пристанишни изрази може да биде преклопен со клучни зборови, TCP или udp , како во:

TCP порта на портата

кој се совпаѓа само со TCP-пакети чија изворна порта е порта .

помалку должина

Точно ако пакетот има должина помала или еднаква на должина . Ова е еквивалентно на:

len <= должина .

поголема должина

Точно ако пакетот има должина поголема од или еднаква на должина . Ова е еквивалентно на:

len> = должина .

IP прото протокол

Точно, ако пакетот е IP пакет (видете ip (4P)) од протоколот протокол . Протоколот може да биде број или една од имињата icmp , icmp6 , igmp , igrp , pim , ах , esp , vrrp , udp или tcp . Забележете дека идентификаторите tcp , udp и icmp се исто така клучни зборови и мора да се избегнат со обратна коса црта (\), што е \\ во C-shell. Забележете дека овој примитив не го брка синџирот на заглавија на протоколот.

Прото протокол на ip6

Точно ако пакетот е IPv6 пакет од протокол за протокол . Забележете дека овој примитив не го брка синџирот на заглавија на протоколот.

проточен протокол на ip6

Точно, ако пакетот е IPv6 пакет, и содржи заглавие на протоколот со протокол за тип во синџирот на заглавија на протоколот. На пример,

ip6 проточхаин 6

одговара на било кој IPv6 пакет со насловот на TCP протоколот во синџирот на заглавија на протоколот. Пакетот може да содржи, на пример, заглавие за автентикација, рутирачки наслов или опција за заглавие на хоп-по-хоп, помеѓу IPv6 заглавието и TCP заглавието. Кодот BPF емитиран од овој примитивен е комплексен и не може да биде оптимизиран од BPF оптимизаторскиот код во tcpdump , па ова може да биде малку бавно.

Проточен протокол на IP

Еквивалентно на ip6 проточенскиот протокол , но ова е за IPv4.

етер емитува

Точно, ако пакетот е пакет за етернет пренос. Клучен збор етер е опционален.

IP емитува

Точно, ако пакетот е IP-емитуван пакет. Ги проверува и конвенциите за емитување на сите нули и на сите, и ја разгледува локалната подмрежна маска.

етер multicast

Точно, ако пакетот е етернет мултиконтактен пакет. Клучен збор етер е опционален. Ова е кратенка за ` ether [0] & 1! = 0 '.

IP multicast

Точно, ако пакетот е IP multicast пакет.

ip6 multicast

Точно, ако пакетот е IPv6 multicast пакет.

етер прото протокол

Точно, ако пакетот е протокол за етер. Протоколот може да биде број или едно од имињата ip , ip6 , arp , rarp , atalk , aarp , decnet , sca , lat , mopdl , moprc , iso , stp , ipx или netbeui . Забележете дека овие идентификатори се исто така клучни зборови и мора да се избегнат со обратна коса црта (\).

[Во случај на FDDI (на пример, " fddi protocol arp ") и Token Ring (на пример, " tr protocol arp "), за повеќето од тие протоколи, идентификацијата на протоколот доаѓа од заглавјето за контрола на логичка врска 802.2, е обично слоевит на врвот на FDDI или Token Ring заглавието.

Кога се филтрира за повеќето идентификатори на протоколи на FDDI или Token Ring, tcpdump го проверува само полето за идентификација на протоколот на насловот на LLC во т.н. SNAP формат со идентификатор на организациска единица (OUI) од 0x000000, за енкапсулиран етернет; тоа не проверува дали пакетот е во SNAP формат со OUI од 0x000000.

Исклучоците се iso , за што ги проверува полињата на DSAP (дестинација за пристапна точка за услуги) и SSAP (Source Service Access Point) од насловот на LLC, stp и netbeui , каде што го проверува DSAP од насловот на LLC и приходот , каде што проверки за SNAP-формат пакет со OUI од 0x080007 и Appletalk етипот.

Во случај на Ethernet, tcpdump го проверува полето за етернет тип за повеќето од тие протоколи; исклучоците се iso , sap , и netbeui , за што проверува рамка 802.3, а потоа го проверува заглавието на LLC, како што тоа го прави за FDDI и Token Ring, atalk , каде што проверува и за Appletalk etype во етернет рамка и за SNAP-формат пакет како што тоа го прави за FDDI и Token Ring, aarp , каде што проверува за Appletalk ARP етипот или во Етернет рамка или 802.2 SNAP рамка со OUI од 0x000000, и ipx , каде што проверува за IPX етипот во етернет рамка, IPX DSAP во заглавието на LLC, 802,3 без инкапсулација на заглавјето на LLC на IPX и IPX етипот во рамка SNAP.]

Детективски српски домаќин

Точно, ако адресата на изворот DECNET е домаќин , што може да биде адреса на формата `` 10.123 '' или името на хостот DECNET. [DECNET поддршка за името на серверот е достапна само на Ultrix системите кои се конфигурирани да работат на DECNET.]

decnet dst домаќин

Точно, ако адресата на дестинацијата DECNET е домаќин .

деке домаќин домаќин

Точно, ако било кој од изворите на DECNET или одредишната адреса е домаќин .

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

Кратенки за:

ether proto p

каде p е еден од горенаведените протоколи.

лат , moprc , mopdl

Кратенки за:

ether proto p

каде p е еден од горенаведените протоколи. Забележете дека tcpdump во моментов не знае како да ги анализира овие протоколи.

vlan [vlan_id]

Точно, ако пакетот е IEEE 802.1Q VLAN пакет. Ако е наведено [vlan_id] , единствено true е пакетот го има наведено vlan_id . Забележете дека првиот vlan клучен збор кој се среќава во изразот ги менува offset за декодирање за остатокот на изразување, под претпоставка дека пакетот е VLAN пакет.

tcp , udp , icmp

Кратенки за:

ip proto p или ip6 proto p

каде p е еден од горенаведените протоколи.

iso прото протокол

Точно, ако пакетот е пакет на OSI со протокол за протокол . Протоколот може да биде број или едно од имињата clnp , esis или isis .

clnp , esis , isis

Кратенки за:

iso proto p

каде p е еден од горенаведените протоколи. Забележете дека tcpdump прави нецелосна задача да ги анализира овие протоколи.

expr relop expr

Точно, ако релацијата има, каде што relop е една од> ,,, =,, = ,,, =, и expr е аритметичка експресија составена од целобројни константи (изразени во стандардна C синтакса), нормалните бинарни оператори [+ , -, *, /, &, |], оператор со должина и специјални додатоци за пакет податоци. За да пристапите до податоците во пакетот, користете ја следнава синтакса:

прото [ expr : големина ]

Прото е еден од етер, fddi, tr, ppp, лизга, линк, ip, arp, rarp, tcp, udp, icmp или ip6 , и го означува слојот на протоколот за индексната операција. ( ether, fddi, tr, ppp, лизгање и линк сите се однесуваат на слојот на врската.) Забележете дека tcp, udp и други типови протоколи од горниот слој се однесуваат само на IPv4, а не на IPv6 (ова ќе биде фиксирано во иднина). Бајт офсет, во однос на наведениот слој на протокол, е даден со expr . Големината е опционална и го покажува бројот на бајти во полето на интерес; тоа може да биде или еден, два или четири и стандардно на едно. Операторот на должина, назначен со клучен збор len , ја дава должината на пакетот.

На пример, ` ether [0] & 1! = 0 'го фаќа целиот multicast сообраќај. Изразот " ip [0] & 0xf! = 5 " ги фаќа сите IP пакети со опции. Изразот " ip [6: 2] & 0x1fff = 0 " фаќа само дефрагментирани датаграми и frag нула на фрагментирани датаграми. Оваа проверка имплицитно се применува на операциите на индексите TCP и UDP . На пример, tcp [0] секогаш го означува првиот бајт на TCP заглавието , и никогаш не значи дека првиот бајт на интервенирачкиот фрагмент.

Некои неутрализи и вредности на поле може да се изразат како имиња, а не како нумерички вредности. Достапни се следните offset насловот на заглавјето на протоколот: icmptype (поле за тип на ICMP), icmpcode (поле на ICMP-код) и tcpflags (TCP-знаменце поле).

Достапни се следните вредности на полето за ICMP : 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 .

Следните вредности на полето на TCP-знамињата се достапни: tcp-fin , tcp-syn , tcp-rst , tcp-push , tcp-push , tcp-ack , tcp-urg .

Примитивите може да се комбинираат со помош на:

Групи од примитиви и оператори со заострени граници (загради се посебни за Шел и мора да се избегнат).

Негирање (` ! 'Или` не ').

Конкатенација (` && 'или` и ').

Алтернација (` || 'или` или ').

Негацијата има највисок приоритет. Алтернацијата и конкатенацијата имаат еднаква предност и соработник од лево надесно. Забележете дека експлицитните и токени, а не придружувањето, сега се потребни за конкатенација.

Ако идентификатор е даден без клучен збор, се претпоставува најновата клучен збор. На пример,

не домаќин против и кец

е краток за

не е домаќин на натпреварот против домаќинот

со што не треба да се мешаат

не (домаќин vs или кец)

Аргументите за изразување може да се пренесат на tcpdump или како единствен аргумент или како повеќекратни аргументи, во зависност кое е попогодно. Општо земено, ако изразот содржи Мешави зборови на Шел, полесно е да се пренесе како единствен цитиран аргумент. Повеќе аргументи се конкатенирани со празни места пред да бидат анализирани.

ПРИМЕРИ

За да ги испечатите сите пакети кои пристигнуваат или заминуваат од зајдисонце :

tcpdump домаќин зајдисонце

За печатење на сообраќај помеѓу хелиосот и топло или ас :

tcpdump домаќин хелиос и \ (топла или ace \)

За да ги испечатите сите IP пакети помеѓу ace и било кој домаќин освен хелиосот :

tcpdump ip домаќин ace, а не хелиос

Да се ​​печати целиот сообраќај помеѓу локалните домаќини и домаќините во Беркли:

tcpdump net ucb-етер

За да го испечатите сите FTP сообраќај преку Интернет портал snup : (Забележете дека изразот е цитиран за да се спречи школка од (неправилно) толкување на загради):

tcpdump 'портал snup и (порта ftp или ftp-податоци)'

За печатење на сообраќај ниту од извори ниту пак наменети за локалните компјутери (ако сте на портата до друга мрежа, ова не треба да го направите на вашата локална мрежа).

tcpdump ip, а не мрежен мрежа

За да ги испечатите пакетите за почеток и крај (SYN и FIN пакетите) на секој TCP разговор кој вклучува не-локален домаќин.

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

За печатење на IP-пакети подолги од 576 бајти испратени преку портата:

tcpdump 'портал snup и ip [2: 2]> 576'

За печатење на IP емитувани или multicast пакети кои не беа испратени преку етернет пренос или multicast:

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

Да се ​​испечатат сите пакети на ICMP кои не се барања за ехо / одговори (на пример, не пинг-пакети):

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

ФОРМАТ НА ИЗЛЕЗ

Излезот на tcpdump е зависен од протоколот. Следново дава краток опис и примери за повеќето формати.

Линија ниво заглавија

Ако е дадено опцијата "-e", се отстранува заглавието на врвот на врската. На етернети, изворот и дестинацијата адреси, протокол и должина на пакетот се испечатени.

Во FDDI мрежите, опцијата "-e" предизвикува tcpdump да го испечати полето "рамка за контрола", изворната и дестинациската адреса и должината на пакетот. Нормалните пакети (како што се оние кои содржат IP датаграми) се `асинхроматски 'пакети, со приоритетна вредност помеѓу 0 и 7, на пример,' async4 '. се претпоставува дека пакетите содржат 802.2 пакет за контрола на логичка врска (ДОО), насловот на ДОО е отпечатен ако не е датаграм на ISO или т.н. SNAP пакет.

На мрежи за Token Ring, опцијата -e 'предизвикува tcpdump да ги печати полето за контрола на пристапот и контролата на рамката, изворната и дестинациската адреса и должината на пакетот. Како и во FDDI мрежите, се претпоставува дека пакетите содржат ДОО пакет. Без оглед на тоа дали опцијата "-e" е одредена или не, изворот на рутирање информации се испечатени за извор-рутирачки пакети.

(Забелешка: Следниот опис претпоставува блискост со алгоритмот за компресија на SLIP опишан во RFC-1144.)

На SLIP линкови се испечатени индикатор за насока (`` јас '' за Влезни, `` O '' за излезни), тип на пакет и информации за компресија. Типот на пакетот се печати прво. Трите видови се ip , utcp и ctcp . Не се испечатени дополнителни информации за линкови за IP- пакети. За TCP пакетите, идентификаторот за конекција се печати по типот. Ако пакетот е компресиран, неговото кодирано заглавие е испечатено. Специфичните случаи се отпечатени како * S + n и * SA + n , каде што n е износот за кој бројот на секвенцата (или секвенцискиот број и ack) се менува. Ако не е посебен случај, се отпечатени нула или повеќе промени. Промена е означена со U (итен покажувач), W (прозорец), A (ack), S (број на секвенца) и I (ID на пакет), проследено со делта (+ n или -n) или нова вредност (= n). Конечно, се испечатени количината на податоци во пакетот и должината на компресираниот насловот.

На пример, следнава линија покажува излезен компресиран TCP пакет, со имплицитен идентификатор за поврзување; ack се промени со 6, бројот на секвенца со 49, а идентификацијата на пакетот за 6; постојат 3 бајти на податоци и 6 бајти на компримиран заглавие:

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

ARP / RARP пакети

Arp / rarp излез го покажува типот на барање и неговите аргументи. Форматот е наменет да биде само објаснување. Еве краток примерок земен од почетокот на ` rlogin` од домаќинот rtsg да биде домаќин на csam :

Арп кој има csam кажам rtsg arp одговорот csam е-во CSAM

Во првата линија се вели дека rtsg испратил лап пакет кој бара етернет адреса на csam на интернет-домаќин. Csam одговара со етернет адресата (во овој пример, адресите со етернет се во капи и интернет адреси во мали букви).

Ова би изгледало помалку излишно доколку го направивме tcpdump-n :

arp кој има 128.3.254.6 каже 128.3.254.68 arp одговор 128.3.254.6 е-во 02:07:00 во 02: 07: 01: 00: 01: c4

Ако го направивме tcpdump-e , фактот дека првиот пакет се емитува, а вториот е точка-до-точка би бил видлив:

RTSG Broadcast 0806 64: Арп кој има csam кажам rtsg CSAM RTSG 0806 64: Арп одговор csam е-во CSAM

За првиот пакет во кој се вели дека адресата на изворот на етернет е RTSG, дестинацијата е етернет емитуваната адреса, полето за тип содржи hex 0806 (тип ETHER_ARP) и вкупната должина изнесува 64 бајти.

TCP пакети

(Забелешка: Следниот опис претпоставува познавање на протоколот TCP опишан во RFC-793. Доколку не сте запознаени со протоколот, ниту овој опис, ниту tcpdump нема да бидат многу корисни за вас.)

Општ формат на TCP протоколот е:

src> dst: знамиња податоци-seqno ack прозорец итни опции

Src и dst се изворни и дестинациски IP адреси и пристаништа. Знамињата се комбинација од S (SYN), F (FIN), P (PUSH) или R (RST) или единечна `. ' (без знамиња). Data-seqno го опишува делот од просторот за секвенца опфатен со податоците во овој пакет (видете го примерот подолу). Ack е број на секвенца од следните податоци се очекуваше на другиот правец на оваа врска. Прозорецот е бројот на бајти на приемот на баферот кој е достапен во друга насока на оваа врска. Urg укажува дека има "итни" податоци во пакетот. Опциите се TCP опции заградени во аголни загради (на пример, ).

Src, dst и знамињата секогаш се присутни. Другите полиња зависат од содржината на заглавието на TCP протоколот на пакетот и се излегуваат само ако е соодветно.

Еве го делот за отворање на rlogin од домаќинот rtsg да биде домаќин на 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. Логирај Се: . 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

Првата линија вели дека TCP портата 1023 на rtsg испрати пакет до влезот на портата на csam. S означува дека е поставено знамето SYN . Број на секвенца на пакети беше 768512 и не содржи податоци. (Нотификацијата е `прв: последен (nbytes) 'што значи` редоследни броеви најпрво до, но не вклучувајќи ги последните што е nbytes бајти на кориснички податоци'.) Немаше свинско потпрено Ack , достапниот прозорец за примање беше 4096 бајти и постоеше опција со големина на макс-сегмент која бараше MSS од 1024 бајти.

Csam одговори со сличен пакет, освен тоа вклучува и свинче со помош на rtsg SYN. Rtsg потоа acks csam SYN. На `. ' значи немаше знамиња. Пакетот не содржи податоци, па не постои број на секвенца на податоци. Имајте на ум дека aq-секвенцата број е мал број (1). Првиот пат tcpdump гледа TCP `разговор ', го отпечанува бројот на секвенцата од пакетот. На следните пакети на разговорот, се отпечати разликата помеѓу секвентниот број на тековниот пакет и овој почетен низа број. Ова значи дека секвентните броеви по првиот може да се толкуваат како релативни бајт позиции во поток на податоци на конверзацијата (со првиот бајт на податоци секоја насока е `1 '). `-S 'ќе ја пребрише оваа функција, предизвикувајќи излезните броеви на секвенци.

На шестата линија, rtsg испраќа csam 19 бајти на податоци (бајти 2 до 20 во rtsg -> csam страна на разговорот). Знакот PUSH е поставен во пакетот. На 7-та линија, csam вели дека се примени податоци испратени од rtsg до, но не вклучувајќи го и бајтот 21. Повеќето од овие податоци очигледно седат во баферот на сокетот, бидејќи приклучокот за примање на csam добил 19 бајти помали. Csam, исто така, испраќа еден бајт на податоци за rtsg во овој пакет. На 8-та и 9-тата линија, csam испраќа два бајта од итни, ги наметнува податоците во rtsg.

Ако сликата е доволно мала дека tcpdump не го фати целосниот заглавје на TCP, тој го толкува оној дел од заглавието што може, а потоа извештаи `` [| tcp ] '' за да го покаже остатокот не може да се толкува. Ако заглавието содржи лажна опција (една со должина која е или премногу мала или над крајот на заглавјето), tcpdump го пријавува како `` [ лошо тргнете ] '' и не ги толкува сите дополнителни опции (бидејќи е невозможно да се каже каде што почнуваат). Ако должината на заглавието укажува на опциите се присутни, но должината на IP-датаграм не е доволно долг за опциите да бидат таму, tcpdump јавува како `` [ лоша должина на hdr ] ''.

Снимање на TCP пакети со одредени комбинации на знамиња (SYN-ACK, URG-ACK, итн.)

Има 8 бита во делот за контролни битови на насловот на TCP:

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

Да претпоставиме дека сакаме да гледаме пакети кои се користат за воспоставување на TCP-врска. Потсетиме дека TCP користи протокол за ракување со три начини кога иницијализира нова конекција; низата за поврзување во врска со TCP контролните битови е

1) Повикувачот испраќа SYN

2) Примачот реагира со SYN, ACK

3) Повикувачот испраќа ACK

Сега сме заинтересирани да ги фатиме пакети кои имаат само бит на SYN (чекор 1). Забележете дека не сакаме пакети од чекор 2 (SYN-ACK), само обичен почетна SYN. Она што ни треба е точен израз на филтер за tcpdump .

Потсети се на структурата на насловот на TCP без опции:

0 15 31 ----------------------------------------------- ------------------ | изворна порта | дестинација порта | -------------------------------------------------- --------------- | број на секвенца | -------------------------------------------------- --------------- | број за потврда | -------------------------------------------------- --------------- | HL | rsvd | C | E | U | A | P | R | S | F | големината на прозорецот | -------------------------------------------------- --------------- | Проверка на TCP | итен покажувач | -------------------------------------------------- ---------------

Заглавието TCP обично има 20 октети на податоци, освен ако не постојат опции. Првата линија на графиконот содржи октети 0-3, втората линија покажува октети 4-7 итн.

Почнувајќи да бројат со 0, соодветните TCP контролни битови се содржани во октет 13:

0 7 | 15 | 23 | 31 ---------------- | --------------- | --------------- | ---------------- | HL | rsvd | C | E | U | A | P | R | S | F | големината на прозорецот | ---------------- | --------------- | --------------- | - --------------- | | 13-ти октет | | |

Ајде да погледнеме поблиску до октет бр. 13:

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

Ова се TCP контролните битови за кои сме заинтересирани. Ние ги нумериравме битови во овој октет од 0 до 7, десно од лево, па битот PSH е малку број 3, додека бит URG е број 5.

Потсетиме дека сакаме да ги фатиме пакетите само со поставено SYN. Ајде да видиме што ќе се случи со октет 13 ако TCP-датаграмот пристигне со бит SYN поставен во нејзиниот заглавие:

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

Гледајќи го делот за контролни битови, гледаме дека е поставен само бит број 1 (SYN).

Претпоставувајќи дека октет број 13 е 8-битен непознат цел број во мрежниот бајт ред, бинарната вредност на овој октет е

00000010

и неговото децимално претставување е

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

Скоро сме готови, бидејќи сега знаеме дека ако е поставено само SYN, вредноста на 13-от октет во заглавјето на TCP, кога се толкува како 8-битен непознат цел број во мрежниот бајт, мора да биде точно 2.

Овој однос може да се изрази како

tcp [13] == 2

Овој израз можеме да го користиме како филтер за tcpdump, за да гледаме пакети кои имаат само SYN:

tcpdump -i xl0 tcp [13] == 2

Изразот вели: "нека 13-от октет на датаграм на TCP ја има децималната вредност 2", што е токму она што го сакаме.

Сега, да претпоставиме дека треба да ги фатиме SYN пакетите, но не ни е важно дали ACK или било кој друг TCP контролен бит е поставен истовремено. Ајде да видиме што ќе се случи со октет 13 кога ќе пристигне датаграм на TCP со SYN-ACK сет:

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

Сега бита 1 и 4 се поставени во 13 октет. Бинарна вредност на октет 13 е


00010010

што се преведува на децимална

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

Сега не можеме едноставно да го користиме "tcp [13] == 18" во изразот tcpdump филтер, бидејќи тоа би ги избрале само оние пакети кои имаат SYN-ACK сет, но не и оние со само SYN сет. Запомнете дека не ни е важно дали ACK или било кој друг контролен бит е поставен се додека SYN е поставен.

За да ја оствариме нашата цел, треба логично и бинарната вредност на октет 13 со некоја друга вредност за да го зачуваме SYN бит. Знаеме дека сакаме SYN да биде поставена во секој случај, така логично ќе ја и вредноста во 13-от октет со бинарна вредност на SYN:

00010010 SYN-ACK 00000010 SYN И 00000010 (сакаме SYN) И 00000010 (сакаме SYN) -------- -------- = 00000010 = 00000010

Гледаме дека оваа И операција го дава истиот резултат без оглед дали е поставен ACK или друг TCP контролен бит. Децималната претстава за ИН вредноста како и резултатот од оваа операција е 2 (бинарна 00000010), па знаеме дека за пакети со SYN поставен, следнава врска мора да се одржи:

((вредност на октет 13) И (2)) == (2)

Ова нè упатува на изразот на филтер tcpdump

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

Забележете дека треба да користите единечни цитати или обратна коса црта во изразот за да го скриете И ('&') специјалниот знак од школка.

UDP пакети

UDP формат е илустриран со овој rwho пакет:

actinide.who> broadcast.who: udp 84

Ова вели дека пристаништето коешто го прими актиноидот испрати утпад датаграм за пристаниште кое емитува емитување , интернет емитуваната адреса. Пакетот содржи 84 бајти на кориснички податоци.

Некои UDP услуги се препознаваат (од бројот на изворот или од дестинацијата на портата) и се отпечатени информациите за протоколот на повисоко ниво. Особено, барања за услуги на име на домен (RFC-1034/1035) и повици за Sun RPC (RFC-1050) до NFS.

Барања на серверот за име на UDP

(Забелешка: Следниот опис претпоставува блискост со протоколот за домен на домен опишан во RFC-1035. Доколку не сте запознаени со протоколот, следниов опис ќе биде напишан на грчки.)

Барањата на серверот за имиња се форматирани како

src> dst: id op? знамиња qtype qclass име (len) h2opolo.1538> helios.domain: 3+ A? ucbvax.berkeley.edu. (37)

Домаќинот h2opolo побара од серверот на доменот на хелиосот за запис за адреси (qtype = A) поврзан со името ucbvax.berkeley.edu. Иденот за пребарување беше `3 '. `+ 'Покажува дека е поставено саканото знаме за рекурзијата . Должината на барањето беше 37 бајти, не вклучувајќи ги и UDP и IP протоколните заглавија. Операцијата за пребарување беше нормална, Query , па оп полето беше испуштено. Ако ОП било било што друго, тоа би било отпечатено помеѓу "3" и "+". Слично на тоа, qclass беше нормален, C_IN , и исфрлен. Било кој друг qclass би бил испечатен веднаш по "А".

Неколку аномалии се проверуваат и може да резултираат со дополнителни полиња опфатени во квадратни загради: Ако барањето содржи одговор, евиденција за орган или дополнителен записник, ancount , nscount или arcount се испечатени како `[ n a] ',` [ n n ] 'или `[ n au]' каде n е соодветен број. Ако било кој од одговорите битови се поставени (AA, RA или rcode) или кој било од "мора да биде нула" битови се поставени во бајти два и три, "[b2 & 3 = x ]" е отпечатен, каде што x е хекса вредност на насловот бајтови два и три.

UDP Name Server Responses

Одговорите на серверот за имиња се форматирани како

src> dst: id op rcode знамиња a / n / au тип класа податоци (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)

Во првиот пример, хелиосот реагира на барањето id 3 од h2opolo со 3 записи за одговор, 3 евиденција за серверот за имиња и 7 дополнителни записи. Првиот рекорд е тип А (адреса) и неговите податоци се интернет адреса 128.32.137.3. Вкупната големина на одговор беше 273 бајти, со исклучок на UDP и IP заглавија. Пропустот (Query) и одговорот (NoError) беа изоставени, како и класата (C_IN) на записот А.

Во вториот пример, хелиосот реагира на барањето 2 со код за одговор на непостоечки домен (NXDomain) без одговори, еден сервер за имиња и нема податоци за авторитет. `* 'Покажува дека авторитативниот бит за одговор е поставен. Бидејќи немаше одговори, не беа отпечатени ниту еден вид, класа или податоци.

Други знаци за знамиња кои може да се појават се `- '(рекурзијата е достапна, RA, не е поставена) и` |' (скратена порака, TC, поставена). Ако делот "прашање" не содржи точно еден запис, се печати "[ n q]".

Забележете дека барањата за серверот за имиња и одговорите имаат тенденција да бидат големи, а стандардното закрепнување од 68 бајти не може да фати доволно пакет за печатење. Користете го знакот -s за да ја зголемите моќта на потребата за сериозно испитување на сообраќајот на серверот за имиња. ` -s 128 'добро работеше за мене.

SMB / CIFS декодирање

tcpdump сега вклучува доста екстензивен SMB / CIFS / NBT декодирање за податоци за UDP / 137, UDP / 138 и TCP / 139. Исто така се прави и некои примитивни декодирање на IPX и NetBEUI SMB податоци.

Стандардно е направена прилично минимална декодирање, со многу подетална декодираност ако се користи -v. Бидете предупредени дека со -Во еден SMB пакет може да заземаат една страница или повеќе, па само користете -v ако навистина сакате сите детали за крвави детали.

Ако декодирате SMB сесии кои содржат уникодни стрингови, тогаш можеби ќе сакате да ја поставите променливата на околината USE_UNICODE до 1. А закрпи за автоматско откривање на unicode цевки би биле добредојдени.

За информации за SMB формати на пакети и што сите полиња значат, видете www.cifs.org или директориумот pub / samba / specs / на вашата омилена страница на огледалото samba.org. Патниците на SMB беа напишани од Андреј Триџел (tridge@samba.org).

NFS барања и одговори

Сонцето NFS (мрежна датотека систем) барањата и одговорите се испечатени како:

src.xid> dst.nfs: len op args src.nfs> dst.xid: одговори на статијата на резултатите со суши.6709> wrl.nfs: 112 читање врска 21,24 / 10,73165 wrl.nfs> суши.6709: одговорете во ред 40 readlink "../var" sushi.201b> wrl.nfs: 144 пребарување fh 9,74 / 4096,6878 "xcolors" wrl.nfs> sushi.201b: одговорот ok 128 пребарување fh 9,74 / 4134,3150

Во првата линија, суши- домаќинот испраќа трансакција со ID 6709 во wrl (имајте во предвид дека бројот што следи ср ср хостот е идентификатор на трансакција, а не изворната порта). Барањето беше 112 бајти, со исклучок на UDP и IP заглавјата. Операцијата беше readlink (читај симболичка врска) на рачката на датотеката ( fh ) 21,24 / 10,731657119. (Ако некој е среќен, како во овој случај, рачката на датотеката може да се толкува како главен, помал пар број на уред, проследен со бројот на инодата и генерациски број.) Wrl одговара на `ok 'со содржината на врската.

Во третата линија, суши прашува wrl да го побара името ` xcolors 'во датотеката со директориумот 9,74 / 4096,6878. Имајте на ум дека печатените податоци зависи од типот на операцијата. Форматот е наменет да биде само објаснување ако се чита заедно со протоколот за NFS протокол.

Ако е дадено знакот -v (глагол), се испечатени дополнителни информации. На пример:

sushi.1372a> wrl.nfs: 148 читање fh 21,11 / 12,195 8192 бајти @ 24576 wrl.nfs> суши.1372а: одговорете ok 1472 прочитај REG 100664 ids 417/0 sz 29388

(-v, исто така, ги отпечати полињата на TTL, ID, должина и фрагментација на IP заглавието, кои се изоставени од овој пример.) Во првата линија, суши прашува wrl да чита 8192 бајти од датотеката 21,11 / 12,195, на бајт offset 24576. Wrl одговара на `ok '; пакетот прикажан на втората линија е првиот фрагмент од одговорот, а оттука е долг само 1472 бајти (другите бајти ќе следат во последователните фрагменти, но овие фрагменти немаат NFS или дури UDP заглавија и затоа не може да се отпечатат, во зависност од употребениот израз на филтерот). Бидејќи е дадено знакот -v, се отпечатени некои од атрибутите на датотеката (кои се враќаат во дополнение на податоците за датотеката): тип на датотека (`` REG '', за редовна датотека), режимот на датотеката (во осумнаесеттиот) uid и gid, и големината на датотеката.

Ако знамето -v е дадено повеќе од еднаш, се отпечатени уште повеќе детали.

Имајте на ум дека барањата на NFS се многу големи, а голем дел од деталите нема да се отпечатат, освен ако не се зголеми силата . Обидете се да користите ` -s 192 'за да гледате NFS сообраќај.

Пакетите за одговор од NFS експлицитно не ја идентификуваат операцијата RPC. Наместо тоа, tcpdump следи "` неодамнешни '' барања и ги поклопува со одговорите користејќи го ID на трансакцијата. Ако одговорот не го следи соодветното барање, тоа може да не биде parsable.

AFS Барања и одговори

Барањата и одговорите на Transarc AFS (Andrew File System) се печатат како:

src.sport> dst.dport: rx пакет тип src.sport> dst.dport: rx пакет тип на вид повик име на повик аргументи src.sport> dst.dport: rx пакет тип на тип на одговор на повик-име на аргумент elvis. 7001> pike.afsfs: rx податоци fs преименување на стариот приказ 536876964/1/1 ".newsrc.new" нов увид 536876964/1/1 ".newsrc" pike.afsfs> elvis.7001: rx податоци fs одговори преименување

Во првата линија, домаќинот Елвис испраќа RX пакет на штука. Ова беше RX податочен пакет до сервисот fs (fileserver), и е почеток на RPC повик. Повикот RPC беше преименуван, со стариот именски именик на директориумот од 536876964/1/1 и старото име на датотеката `.newsrc.new ', како и нов идентитет на идентитетот на директориумот 536876964/1/1 и ново име на`. newsrc ". Штеката домаќин одговара со RPC одговор на повикот за преименување (кој беше успешен, бидејќи тоа беше пакет на податоци, а не пакет за прекинување).

Општо земено, сите AFS RPCs се декодирани барем со RPC име на повик. Повеќето AFP RPC имаат барем некои од аргументите декодирани (обично само "интересни" аргументи, за некои дефиниции за интересни).

Форматот е наменет само за опишување, но веројатно нема да биде корисно за луѓето кои не се запознаени со работата на AFS и RX.

Ако знакот -v (verbose) е даден двапати, се отпечатени пакети за потврда и дополнителни информации за заглавие, како што се идентификацијата на RX повик, број на повик, број на секвенца, сериски број и знаменца за RX пакети.

Ако знакот -v е даден двапати, се испечатени дополнителни информации, како што се идентификацијата на RX повик, серискиот број и знаменцата на пакетот RX. Информации за преговарање со MTU исто така се испечатени од RX ack пакети.

Ако знакот -v е даден три пати, безбедносниот индекс и услугата се печатат.

Кодови за грешки се отпечатени за прекинување на пакети, со исклучок на Ubik beacon пакетите (бидејќи abort пакетите се користат за означување на гласањето за "Ub").

Забележете дека барањата за AFS се многу големи и многу од аргументите нема да бидат отпечатени, освен ако не се зголеми бројот на сигнали . Обидете се да користите ` -s 256 'за да гледате AFS сообраќај.

Пакетите за одговор од AFS не ја објаснуваат експлицитно RPC операцијата. Наместо тоа, tcpdump следи "неодамнешни" барања и ги поклопува со одговорите користејќи го бројот на повикот и услугата. Ако одговорот не го следи соодветното барање, тоа може да не биде parsable.

KIP Appletalk (DDP во UDP)

Appletalk DDP-пакетите инкапсулирани со UDP-датаграми се де-инкапсулирани и фрлени како DDP-пакети (т.е. сите UDP-заглавни информации се отфрлени). Датотеката /etc/atalk.names се користи за преведување на аплетот на нето и броеви на јазли на имиња. Линиите во оваа датотека имаат форма

име на број 1,254 етер 16,1 icsd-net 1,254,110 кец

Првите две линии даваат имиња на аплетални мрежи. Третата линија го дава името на одреден домаќин (домаќин се разликува од мрежата од 3 октет во бројот - нето бројот мора да има два октети и бројот на домаќинот мора да има три октети.) Бројот и името треба да се одделат од празни места (празни места или јазичиња). Датотеката /etc/atalk.names може да содржи празни линии или линии за коментари (линии почнувајќи со `# ').

Адресирачките адреси се испечатени во форма:

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

(Ако /etc/atalk.names не постои или не содржи запис за некој appletalk домаќин / нето број, адресите се печатат во нумеричка форма.) Во првиот пример, NBP (DDP port 2) на нето 144.1 јазолот 209 испраќа на она што слуша на порта 220 од нето icsd јазол 112. Втората линија е иста, освен ако е познато целото име на изворниот јазол (`office '). Третата линија е испраќање од порта 235 на нето jssmag јазол 149 за емитување на портата icsd-net NBP (забележете дека емитуваната адреса (255) е означена со нето име без број на домаќинот - поради оваа причина тоа е добра идеја да ги задржи имињата на јазовите и нето имињата различни во /etc/atalk.names).

NBP (протоколот за обврзувачко име) и пакетите на ATP (Appletalk transaction protocol) ја толкуваат нивната содржина. Другите протоколи само го исфрлаат името на протоколот (или бројот ако не е регистрирано име за протоколот) и големината на пакетот.

NBP пакетите се форматирани како следниве примери:

icsd-net.112.220> jssmag.2: nbp-lkup 190: "=: LaserWriter @ *" jssmag.209.2> icsd-net.112.220: nbp-одговор 190: "RM1140: LaserWriter @ *" 250 techpit.2> icsd -net.112.220: nbp-одговор 190: "techpit: LaserWriter @ *" 186

Првата линија е барање за барање на име за лазерните уреди испратени од нето icsd домаќин 112 и емитувано на нето jssmag. ID на nbp за пребарување е 190. Втората линија покажува одговор за ова барање (имајте во предвид дека го има истиот идентификатор) од домаќинот jssmag.209, велејќи дека има ресурс на ласер, наречен "RM1140" регистриран на пристаништето 250. Третиот линија е уште еден одговор на истото барање велејќи дека домаќин techpit има ласерски текст "techpit" регистрирани на порта 186.

Форматирањето на АТП пакети е прикажано со следниов пример:

jssmag.209.165> helios.132: atp-req 12266 <0-7> 0xae030001 helios.132> jssmag.209.165: atp-resp 12266: 0 (512) 0xae040000 хелио.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: 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> хелиос.132: atp-rel 12266 <0-7> 0xae030001 jssmag.209.133> helios.132: atp-req * 12267 <0 -7> 0xae030002

Jssmag.209 иницира трансакција id 12266 со хелиоз хост со барање до 8 пакети ("<0-7>"). Хекс број на крајот од линијата е вредноста на полето "userdata" во барањето.

Хелиос реагира со 8 512-бајт пакети. `` Цифра '' по идентификацијата на трансакцијата го дава бројот на секвенца на пакет во трансакцијата, а бројот во парамените е количината на податоци во пакетот, со исклучок на заглавјето на АП. `* 'На пакетот 7 укажува на тоа дека битот за EOM е поставен.

Jssmag.209 потоа бара да бидат пренесени пакети 3 и 5. Хелиос ги препраќа, тогаш jssmag.209 ја ослободува трансакцијата. Конечно, jssmag.209 го иницира следното барање. `* 'На барањето покажува дека XO (` точно еднаш') не е поставен.

Фрагментација на IP

Фрагментираните интернет-датаграми се испечатени како

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

(Првата форма покажува дека има повеќе фрагменти. Вториот покажува дека ова е последниот фрагмент.)

Id е фрагмент id. Големината е големината на фрагментот (во бајти), со исклучок на IP заглавието. Офсет е офсет на овој фрагмент (во бајти) во оригиналниот датаграм.

Информацијата за фрагментот е излез за секој фрагмент. Првиот фрагмент содржи насловот на протоколот на повисоко ниво, а информациите за фраг е испечатено по информациите за протоколот. Фрагменти по првиот не содржат заглавие на повисоко ниво, а информациите за фраг е испечатено по изворните и одредишните адреси. На пример, тука е дел од ftp од arizona.edu до lbl-rtsg.arpa преку CSNET-врска што не се појавува да се справува со 576 бајт-датаграми:

arizona.ftp-податоци> rtsg.1170 :. 1024: 1332 (308) ack 1 win 4096 (frag 595a: 328 @ 0 +) arizona> rtsg: (frag 595a: 204 @ 328) rtsg.1170> arizona.ftp-податоци:. победа 1536 победа 2560

Има неколку работи што треба да ги забележиме овде: Прво, адресите во 2-та линија не ги вклучуваат броевите на портите. Ова е затоа што информациите за TCP протоколот се сите во првиот фрагмент и ние немаме идеја што се броеви на портот или секвенцата кога ги испечатаме подоцнежните фрагменти. Второ, информациите за tcp секвенцата во првата линија се испечатени како да имало 308 бајти на кориснички податоци кога, всушност, има 512 бајти (308 во првиот дел и 204 во вториот). Ако барате дупки во просторот за секвенца или се обидувате да ги совладате акциите со пакети, ова може да ве измами.

Пакетот со IP не е означено со фрагмент (DF) .

Временски ознаки

Стандардно, на сите излезни линии претходи временската ознака. Временската ознака е моменталното време на часовникот во форма

hh: mm: ss.frac

и е прецизен како часовникот на кернелот. Временската ознака го одразува времето кога кернелот прв пат го виде пакетот. Не се прави обид да се води сметка за временскиот застој помеѓу кога Ethernet интерфејсот го отстрани пакетот од жицата и кога кернелот го сервисира прекинот на нов пакет.

ИСТО ТАКА ВИДИ

сообраќај (1C), nit (4P), bpf (4), pcap (3)

Важно: Користете ја командата за човекот ( % man ) за да видите како се користи командата на вашиот компјутер.