Traceroute - Linux Command - Unix Command

traceroute - ພິມເສັ້ນທາງເສັ້ນທາງໄປສູ່ເຄືອຂ່າຍໂຮດ

Synopsis

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ]

[ -i iface ] [ -m max_ttl] [ -p port ]

[ -q nqueries ] [ -s src_addr ] [ -t tos ]

[ -w waittime ] [ -z pausemsecs ]

host [ packetlen ]

ລາຍລະອຽດ

ອິນເຕີເນັດແມ່ນບໍລິສັດທີ່ມີຂະຫນາດໃຫຍ່ແລະສັບສົນຂອງຮາດແວເຄືອຂ່າຍເຊື່ອມຕໍ່ກັນໂດຍປະຕູ. ການຕິດຕາມບັນດາເສັ້ນທາງຂອງເສັ້ນທາງຫນຶ່ງຂອງການຕິດຕາມ (ຫຼືຊອກຫາຊ່ອງທາງທີ່ຫຼອກລວງທີ່ຖືກຖີ້ມຂີ້ເຫຍື້ອຂອງທ່ານ) ສາມາດເປັນການຍາກ. Traceroute ໃຊ້ເວລາທີ່ຈະດໍາເນີນການທົດລອງ IP ແລະອະນຸ ຍາດໃຫ້ການຕອບສະຫນອງ ICMP TIME_EXCEEDED ຈາກແຕ່ລະປະຕູຜ່ານເສັ້ນທາງໄປຫາເຈົ້າພາບບາງ.

ພາລາມິເຕີບັງຄັບເທົ່ານັ້ນແມ່ນຊື່ໂຮດຫລື ຫມາຍ IP . ຄວາມຍາວຂອງ datagram ແມ່ນ 40 bytes , ແຕ່ວ່ານີ້ອາດຈະເພີ່ມຂຶ້ນໂດຍກໍານົດຄວາມຍາວຂອງແພໍກເກັດ (in bytes) ຫຼັງຈາກຊື່ໂຮດ.

ທາງເລືອກອື່ນໆແມ່ນ:

-f

ກໍານົດໄລຍະເວລາທີ່ໃຊ້ຊີວິດໃນເບື້ອງຕົ້ນທີ່ໃຊ້ໃນຊຸດການສືບສວນຄັ້ງທໍາອິດ.

-F

ກໍານົດ "ບໍ່ຊິ້ນ" ນ້ອຍ.

-d

ອະນຸຍາດໃຫ້ແກ້ໄຂລະດັບຊັອກເກັດ.

-g

ລະບຸເສັ້ນທາງເສັ້ນທາງເສັ້ນລວງຍາວ (ສູງສຸດ 8).

-i

ກໍານົດອິນເຕີເຟດເຄືອຂ່າຍເພື່ອໃຫ້ໄດ້ຮັບທີ່ຢູ່ IP ແຫຼ່ງຂໍ້ມູນສໍາລັບໂປແກຼມທີ່ອອກກໍາລັງກາຍ. ນີ້ແມ່ນປົກກະຕິພຽງແຕ່ເປັນປະໂຫຍດໃນການໂຮດຫຼາຍໂຮມ. (ເບິ່ງທຸງທົງສໍາລັບວິທີອື່ນເພື່ອເຮັດສິ່ງນີ້.)

-I

ໃຊ້ ICMP ECHO ແທນ Datagram.

-m

ຕັ້ງຄ່າເວລາທີ່ມີຊີວິດທີ່ສູງສຸດ (ຈໍານວນທີ່ສູງສຸດຂອງ hops) ທີ່ໃຊ້ໃນໂປຣແກຣມການສືບສວນອອກ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 30 hops (ຄ່າເລີ່ມຕົ້ນດຽວກັນທີ່ໃຊ້ສໍາລັບການເຊື່ອມຕໍ່ TCP).

-n

Print hop addresses numerically ແທນທີ່ຈະ symbolically ແລະ numerically (saves ການຄົ້ນຫາ address-to-nameerver nameserver ສໍາລັບແຕ່ລະ gateway ທີ່ພົບໃນເສັ້ນທາງ).

-p

ຕັ້ງຄ່າພອດ UDP ຖານທີ່ໃຊ້ໃນ probes (ຄ່າເລີ່ມຕົ້ນແມ່ນ 33434). Traceroute ຫວັງວ່າບໍ່ມີຫຍັງທີ່ຟັງຢູ່ ພພພພພພພພພພພພພພພພພານຖານ + ຂື້ນ - 1 ຢູ່ທີ່ເຈົ້າພາບປາຍທາງ (ດັ່ງນັ້ນຂໍ້ຄວາມ ICMP PORT_UNREACHABLE ຈະຖືກສົ່ງຄືນເພື່ອຢຸດການຕິດຕາມເສັ້ນທາງ). ຖ້າສິ່ງໃດແດ່ທີ່ຟັງຢູ່ໃນພອດໃນລະດັບມາດຕະຖານ, ຕົວເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອເລືອກຂອບເຂດທີ່ບໍ່ຖືກນໍາໃຊ້.

-r

ຂ້າມໄປຫາຕາຕະລາງ routing ປົກກະຕິແລະສົ່ງໂດຍກົງກັບເຈົ້າພາບໃນເຄືອຂ່າຍທີ່ແນບມາ. ຖ້າໂຮດບໍ່ຢູ່ໃນເຄືອຂ່າຍໂດຍກົງ, ຂໍ້ຜິດພາດຈະຖືກສົ່ງຄືນ. ຕົວເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອ ping host ທ້ອງຖິ່ນຜ່ານ interface ທີ່ບໍ່ມີເສັ້ນທາງຜ່ານມັນ (ຕົວຢ່າງເຊັ່ນຫຼັງຈາກ interface ໄດ້ຖືກຫຼຸດລົງໂດຍ routed (8C)).

-s

ໃຊ້ທີ່ຢູ່ IP ຕໍ່ໄປນີ້ (ເຊິ່ງຕາມປົກກະຕິຈະຖືກມອບໃຫ້ເປັນເລກ IP, ບໍ່ແມ່ນຊື່ໂຮດ) ເປັນທີ່ຢູ່ໃນແຫຼ່ງຂໍ້ມູນໃນໂປຼແກຼມທີ່ອອກໄປ. ໃນໂຮມຫຼາຍໂຮນ (ຜູ້ທີ່ມີທີ່ຢູ່ IP ຫຼາຍກວ່າຫນຶ່ງ), ຕົວເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອບັງຄັບໃຫ້ແຫຼ່ງທີ່ມາເປັນສິ່ງອື່ນນອກເຫນືອຈາກທີ່ຢູ່ IP ຂອງການໂຕ້ຕອບໂປແກຼມທີ່ຖືກສົ່ງໄປ. ຖ້າທີ່ຢູ່ IP ບໍ່ແມ່ນຫນຶ່ງໃນເຄື່ອງທີ່ຢູ່ໃນເຄື່ອງຂອງເຄື່ອງນີ້, ຂໍ້ຜິດພາດຈະຖືກສົ່ງຄືນແລະບໍ່ມີຫຍັງຖືກສົ່ງ. (ເບິ່ງທຸງ -i ສໍາລັບວິທີອື່ນເພື່ອເຮັດສິ່ງນີ້.)

-t

ກໍານົດ ຊະນິດຂອງການບໍລິການ ໃນໂປແກຼມໂປຼແກຼມເພື່ອມູນຄ່າຕໍ່ໄປນີ້ (ຄ່າສູນກາງ). ມູນຄ່າຕ້ອງເປັນຈໍານວນເຕັມຕົວເລກໃນລະດັບ 0 ຫາ 255. ຕົວເລືອກນີ້ສາມາດຖືກນໍາໃຊ້ເພື່ອເບິ່ງວ່າຜົນປະໂຫຍດຂອງການບໍລິການແຕກຕ່າງກັນໃນເສັ້ນທາງທີ່ແຕກຕ່າງກັນ. (ຖ້າທ່ານບໍ່ໄດ້ໃຊ້ 4.4bsd, ນີ້ອາດຈະເປັນການສຶກສາເພາະວ່າບໍລິການເຄືອຂ່າຍທົ່ວໄປເຊັ່ນ telnet ແລະ ftp ບໍ່ໃຫ້ທ່ານຄວບຄຸມ TOS). ບໍ່ແມ່ນຄ່າທັງຫມົດຂອງ TOS ແມ່ນກົດຫມາຍຫຼືມີຄວາມຫມາຍ - ເບິ່ງຂໍ້ມູນ IP ສໍາລັບຄໍານິຍາມ. ຄ່າທີ່ເປັນປະໂຫຍດອາດຈະແມ່ນ ` -t 16 '(ຄວາມຊັກຊ້າຕ່ໍາ) ແລະ` -t 8 ' (ປະລິມານສູງ).

-v

ຜົນການອອກສຽງ ໄດ້ຮັບການບັນທຶກ ICMP packets ທີ່ບໍ່ແມ່ນ TIME_EXCEEDED ແລະ UNREACHABLEs.

-w

ຕັ້ງເວລາ (ຕໍ່ວິນາທີ) ເພື່ອລໍການຕອບສະຫນອງຕໍ່ການກວດສອບ (ຄ່າທໍານຽມ 5 ວິນາທີ).

-x

Toggle ip checksums ໂດຍປົກກະຕິ, ນີ້ປ້ອງກັນ traceroute ຈາກການຄິດໄລ່ ip checksums. ໃນບາງກໍລະນີ, ລະບົບປະຕິບັດການສາມາດ overwrite ບາງສ່ວນຂອງ packet ອອກ, ແຕ່ບໍ່ recalculate checksum ໄດ້ (ສະນັ້ນ, ໃນບາງກໍລະນີ, ຄ່າເລີ່ມຕົ້ນແມ່ນບໍ່ຄິດໄລ່ checksums ແລະການນໍາໃຊ້ -x ເຮັດໃຫ້ພວກເຂົາຖືກ calcualted). ໃຫ້ສັງເກດວ່າ checksums ຕາມຄວາມຕ້ອງການຂອງ hop ສຸດທ້າຍເມື່ອໃຊ້ ICMP ECHO probes ( -I ). ດັ່ງນັ້ນພວກເຂົາຖືກຄິດໄລ່ສະເຫມີເມື່ອນໍາໃຊ້ ICMP.

-z

ຕັ້ງເວລາ (ຕໍ່ມິນລິວິນາທີ) ໃຫ້ຢຸດຊົ່ວຄາວລະຫວ່າງ probes (default 0). ລະບົບບາງຢ່າງເຊັ່ນ: Solaris ແລະ Router ເຊັ່ນ: CICOS ອັດຕາຄ່າຂໍ້ຈໍາກັດ icmp. ມູນຄ່າທີ່ດີທີ່ຈະໃຊ້ກັບນີ້ແມ່ນ 500 (ຕົວຢ່າງເຊັ່ນ 1/2 ວິນາທີ).

ໂຄງການນີ້ພະຍາຍາມຕິດຕາມເສັ້ນທາງທີ່ IP packet ຈະປະຕິບັດຕາມເຈົ້າຂອງອິນເຕີເນັດໂດຍການເປີດຕົວໂປແກຼມ UDP probe ກັບ ttl ຂະຫນາດນ້ອຍ (ເວລາທີ່ຈະດໍາລົງຊີວິດ) ຫຼັງຈາກນັ້ນຟັງການຕອບຮັບ ICMP "ເວລາເກີນ" ການຕອບຈາກປ່ອງຢ້ຽມ. ພວກເຮົາເລີ່ມຕົ້ນການສືບສວນຂອງພວກເຮົາກັບ ttl ຂອງຫນຶ່ງແລະເພີ່ມຂຶ້ນໂດຍຫນຶ່ງຈົນກ່ວາພວກເຮົາໄດ້ຮັບ ICMP "port unreachable" (ຊຶ່ງຫມາຍຄວາມວ່າພວກເຮົາໄດ້ກັບ "host") ຫຼືກົດສູງສຸດ (ເຊິ່ງ defaults ກັບ 30 hops ແລະສາມາດປ່ຽນກັບ -m flag) ສາມການກວດສອບ (ມີການປ່ຽນແປງກັບ -q flag) ຖືກສົ່ງໄປທີ່ການຕັ້ງຄ່າ ttl ແຕ່ລະຄົນແລະເສັ້ນພິມແມ່ນສະແດງໃຫ້ເຫັນວ່າ ttl, ທີ່ຢູ່ຂອງປະຕູແລະໄລຍະເວລາການເດີນທາງຮອບຂອງແຕ່ລະລໍາດັບ. ຖ້າຄໍາຕອບຂອງ probe ມາຈາກທີ່ແຕກຕ່າງກັນ, ທີ່ຢູ່ຂອງລະບົບຕອບສະຫນອງແຕ່ລະຈະຖືກພິມ. ຖ້າບໍ່ມີຄໍາຕອບພາຍໃນ 5 ວິນາທີ. ໄລຍະເວລາທີ່ໃຊ້ເວລາ (ມີການປ່ຽນແປງກັບທຸງ -w ), "*" ຖືກພິມສໍາລັບການກວດສອບວ່າ.

ພວກເຮົາບໍ່ຕ້ອງການເຈົ້າພາບຈຸດຫມາຍປາຍທາງໃນການປະມວນຜົນໂປແກຼມ UDP probe ດັ່ງນັ້ນຈຸດຫມາຍປາຍທາງທີ່ຖືກກໍານົດໄວ້ເປັນມູນຄ່າທີ່ບໍ່ເຫມາະສົມ (ຖ້າມີບາງຈຸດທີ່ຢູ່ໃນຈຸດຫມາຍປາຍທາງໃຊ້ມູນຄ່ານັ້ນ, ມັນສາມາດປ່ຽນແປງດ້ວຍ flag -p ).

ການນໍາໃຊ້ຕົວຢ່າງແລະຜົນຜະລິດອາດຈະເປັນ:

[yak 71]% traceroute nisnsnet traceroute to nisnsnet (351148), 30 hops max, 38 byte packet 1 helioseelblgov (12831121) 19 ms 19 ms 0 ms 2 lilac-dmcBerkeleyEDU (12832 2161) 39 ms 39 ms 19 ms 3 lilac-dmcBerkeleyEDU (128322161) 39 ms 39 ms 19 ms 4 ccngw-ner-ccBerkeleyEDU (12832133623) 39 ms 40 ms 39 ms 5 ccn -nerif22BerkeleyEDU (12832166822) 39 ms 39 ms 39 ms 6 128321997 (128321997) 40 ms 59 ms 59 ms 7 13111952 (13111925) 59 ms 59 ms 59 ms 8 129140 7013 (1291407013) 99 ms 99 ms 80 ms 9 129140716 (129140716) 139 ms 239 ms 319 ms 10 129140817 (129140817) 220 ms 199 ms 199 ms 11 nicmerit edu (351 1448) 239 ms 239 ms 239 ms

ໃຫ້ສັງເກດວ່າເສັ້ນ 2 ແລະ 3 ແມ່ນຄືກັນ. ນີ້ແມ່ນເນື່ອງມາຈາກ kernel buggy ໃນລະບົບ hop ທີສອງ - lbl-csam.arpa - ທີ່ສົ່ງຕໍ່ກັບ packets ທີ່ມີ zero ttl (bug ໃນ 43BSD ທີ່ຖືກແຈກຢາຍ). ໃຫ້ສັງເກດວ່າທ່ານຕ້ອງຮີດສິ່ງທີ່ເສັ້ນທາງແພັກເກັດໄດ້ຖືກນໍາໃຊ້ໃນປະເທດນັບຕັ້ງແຕ່ NSFNet (129.140) ບໍ່ສະຫນອງການແປພາສາທີ່ມີຊື່ສຽງສໍາລັບ NSSs ຂອງຕົນ.

ຕົວຢ່າງທີ່ຫນ້າສົນໃຈຫຼາຍແມ່ນ:

[yak 72]% traceroute allspicelcmsedu traceroute ກັບ allspicelcmsmitedu (18260115), 30 hops max 1 helioseelblgov (12831121) 0 ms 0 ms 0 ms 2 lilac-dmcBerkeleyEDU (128322161) 19 ms 19 ms 19 ms 3 lilac-dmcBerkeleyEDU (128322161) 39 ms 19 ms 19 ms 4 ccngw-ner-ccBerkeleyEDU (12832133623) 19 ms 39 ms 39 ms 5 ccn-nerif22 BERKELEYEDU (12832166822) 20 ms 39 ms 39 ms 6 128321997 (128321997) 59 ms 119 ms 39 ms 7 13111952 (13111925) 59 ms 59 ms 39 ms 8 1291407013 ( 1291407013) 80 ms 79 ms 99 ms 9 129140716 (129140716) 139 ms 139 ms 159 ms 10 129140817 (129140817) 199 ms 180 ms 300 ms 11 1291407217 (12914407217) 300 ms 239 ms 239 ms 12 * * * 13 1281215442 (1281215472) 259 ms 499 ms 279 ms 14 * * * 15 * * * 16 * * * 17 * * * 18 ALLSPICELCSMITEDU (1826 0115) 339 ms 279 ms 279 ms

ໃຫ້ສັງເກດວ່າປ່ອງຢ້ຽມ 12, 14, 15, 16 & 17 ຫ່າງອອກໄປບໍ່ສົ່ງ ICMP "ເວລາເກີນ" ຂໍ້ຄວາມຫຼືສົ່ງພວກເຂົາກັບ ttl ເກີນໄປທີ່ຈະສາມາດບັນລຸພວກເຮົາ. 14 - 17 ກໍາລັງໃຊ້ລະຫັດ MIT C Gateway ທີ່ບໍ່ສົ່ງ "ເວລາເກີນ". ພຣະເຈົ້າຮູ້ພຽງແຕ່ສິ່ງທີ່ເຮົາມີຢູ່ກັບ 12.

[23] ລະຫັດເຄືອຂ່າຍ BSD (ແລະສັນຍາລັກຂອງມັນ): 4x (x <= 3) ສົ່ງຂໍ້ຄວາມບໍ່ສາມາດເຂົ້າເຖິງໄດ້ໂດຍໃຊ້ສິ່ງທີ່ ttl ຢູ່ໃນຕົ້ນສະບັບ datagram. ນັບຕັ້ງແຕ່, ສໍາລັບປະຕູຮົ້ວ, ttl ທີ່ຍັງເຫຼືອແມ່ນສູນ, ICMP "ທີ່ໃຊ້ເວລາເກີນ" ແມ່ນຮັບປະກັນທີ່ຈະບໍ່ເຮັດໃຫ້ມັນກັບຄືນໄປບ່ອນພວກເຮົາ. ພຶດຕິກໍາຂອງ bug ນີ້ແມ່ນຫນ້າສົນໃຈເລັກນ້ອຍເມື່ອມັນປາກົດຢູ່ໃນລະບົບປາຍທາງ:

1 helioseelblgov (12831121) 0 ms 0 ms 0 ms 2 lilac-dmcBerkeleyEDU (128322161) 39 ms 19 ms 39 ms 3 lilac-dmcBerkeleyEDU (128322161 ) 19 ms 39 ms 19 ms 4 ccngw-ner-ccBerkeleyEDU (12832133623) 39 ms 40 ms 19 ms 5 ccn-nerif35BerkeleyEDU (12832166835) 39 ms 39 ms 39 ms 6 csgw BerkeleyEDU (12832233254) 39 ms 59 ms 39 ms 7 * * * 8 * * * 9 * * * 10 * * * 11 * * * 12 * * * 13 ripBerkeleyEDU (1283213122) 59 ນາງ​ສາວ ! 39 ms! 39 ms!

ສັງເກດວ່າມີ 12 "gateways" (13 ແມ່ນຈຸດຫມາຍປາຍທາງສຸດທ້າຍ) ແລະແນ່ນອນວ່າເຄິ່ງຫນຶ່ງຂອງພວກເຂົາແມ່ນ "ຫາຍໄປ". ສິ່ງທີ່ເກີດຂຶ້ນກໍ່ຄືວ່າ rip (Sun-3 ແລ່ນ Sun OS3.5) ໃຊ້ ttl ຈາກ datagram ທີ່ມາຮອດຂອງພວກເຮົາເປັນ ttl ໃນການຕອບ ICMP ຂອງຕົນ. ດັ່ງນັ້ນ, ການຕອບຈະຫມົດເວລາອອກໄປຕາມເສັ້ນທາງກັບ (ບໍ່ມີແຈ້ງການສົ່ງກັບໃຜເພາະວ່າ ICMP ບໍ່ຖືກສົ່ງໄປຫາ ICMP) ຈົນກວ່າພວກເຮົາຈະສືບສວນກັບ ttl ທີ່ມີຄວາມຍາວຢ່າງຫນ້ອຍສອງເທົ່າ. ຂ້ອຍ, rip ແມ່ນແທ້ພຽງແຕ່ 7 hops ໄປ. ຄໍາຕອບທີ່ສົ່ງກັບ ttl ຂອງ 1 ເປັນຂໍ້ຄຶດທີ່ມີບັນຫານີ້. Traceroute ພິມ "!" ຫຼັງຈາກທີ່ໃຊ້ເວລາຖ້າ ttl ແມ່ນ <= 1 ນັບຕັ້ງແຕ່ຜູ້ຂາຍທີ່ສົ່ງອອກຫຼາຍຊໍ້າຊໍ້າຊໍ້າຊໍ້າ (Ultrix, Sun 3.x) ຫຼືຊອບແວທີ່ບໍ່ແມ່ນມາດຕະຖານ (HPUX), ຄາດວ່າຈະເຫັນບັນຫານີ້ເລື້ອຍໆແລະ / ຫຼືດູແລເອົາເປົ້າຫມາຍ ເຈົ້າຂອງ probes ຂອງທ່ານ.

ຂໍ້ຄວາມອື່ນໆທີ່ເປັນໄປໄດ້ຫຼັງຈາກທີ່ໃຊ້ເວລາແມ່ນ H , N , ຫຼື ! P (host, network ຫຼືໂປຣແກຣມທີ່ບໍ່ສາມາດເຂົ້າເຖິງໄດ້) ,! S (ເສັ້ນທາງແຫຼ່ງທີ່ລົ້ມເຫລວ) ,! F- (ການຈໍາແນກທີ່ຕ້ອງການ - ຄ່າ RFC1191 Path MTU Discovery) ! X (ການສື່ສານຖືກຫ້າມ) ,! V (ການລະເມີດຄວາມເປັນເຈົ້າຂອງ host) ,! C (ການຕັດຄວາມສໍາຄັນກ່ອນຫນ້ານີ້), ຫຼື ! (ICMP code unreachable). ເຫຼົ່ານີ້ຖືກກໍານົດໂດຍ RFC1812 (ເຊິ່ງແທນທີ່ RFC1716). ຖ້າເກືອບທັງຫມົດ probes ຜົນໄດ້ຮັບໃນບາງປະເພດຂອງ unreachable, traceroute ຈະໃຫ້ແລະອອກ.

ໂຄງການນີ້ແມ່ນສໍາລັບການນໍາໃຊ້ໃນການທົດສອບເຄືອຂ່າຍ, ການວັດແທກແລະການຄຸ້ມຄອງ. ມັນຄວນຈະຖືກນໍາໃຊ້ຕົ້ນຕໍສໍາລັບການແຍກດ້ວຍຄວາມຜິດພາດຄູ່ມື. ເນື່ອງຈາກການໂຫຼດທີ່ມັນສາມາດບັງຄັບໃຊ້ໃນເຄືອຂ່າຍ, ມັນບໍ່ສະຫລາດທີ່ຈະໃຊ້ traceroute ໃນໄລຍະການດໍາເນີນງານຕາມປົກກະຕິຫຼືຈາກສະແກນອັດຕະໂນມັດ.

ເບິ່ງຍັງ

pathchar (8), netstat (1), ping (8)