traceroute / tracert แสดงการกระโดดทุกครั้งหรือไม่หรือข้าม / ซ่อนรายละเอียดบางส่วนของเส้นทาง


35

ขณะนี้ฉันอยู่ในวิทยาลัยสำหรับปริญญาตรีสาขาวิศวกรรมเครือข่ายและอาจารย์คนหนึ่งของฉันอธิบายในชั้นเรียนว่ามี traceroute ที่แสดงตัวอย่างเช่นการกระโดด 15 ครั้งเป็นการทำให้เส้นทางเป็นจริงและในความเป็นจริงมีโหนดอื่น ๆ อีกมากมายที่เกี่ยวข้อง มันเป็นเรื่องจริงเหรอ?

สิ่งนี้ขัดแย้งกับทุกสิ่งที่ฉันสามารถพบได้ใน traceroute สำหรับความรู้ของฉัน traceroute ทำงานโดยการส่งแพ็คเก็ต ICMP (หรือ UDP) ไปยังปลายทางที่เฉพาะเจาะจงด้วย TTL จาก 0 -> n จนกว่าจะถึงปลายทาง โพรบแพ็คเก็ตที่ส่งออกหมดเวลาในแต่ละตำแหน่งตามลำดับอย่างต่อเนื่องทำให้เกิดการตอบกลับ "เกินเวลา" ICMP และในที่สุดก็เป็นข้อความ "พอร์ตที่เข้าไม่ถึง" เมื่อถึงปลายทาง

ฉันเข้าใจถึงความไม่สมบูรณ์ของ traceroute - ตัวอย่างเช่นปริมาณการใช้ traceroute อาจถูกปิดกั้นโดยเกตเวย์บางอย่างหรือ TTL ของแพ็กเก็ตตอบกลับอาจถูกตั้งค่าเป็น TTL ที่เหลือของโพรบทำให้มันไม่กลับไปหาผู้ส่ง

อย่างไรก็ตามหลังจากการค้นคว้ามากมายฉันไม่พบสิ่งใดที่อ้างอิง traceroute ที่ไม่ถูกต้องในกรณีของ traceroute ที่มักจะส่งกลับเส้นทางเดียวกัน ในทำนองเดียวกันไม่มีการอ้างอิงใด ๆ ว่ามีฮ็อป "พิเศษ" ที่ไม่ได้รับการรายงานโดย traceroute (นอกเหนือจาก * * * ฮ็อปที่หมดเวลาโดยไม่มีการตอบกลับ)

ฉันเปิดให้มีการอภิปรายและฉันสนใจที่จะรู้คำตอบสำหรับสิ่งนี้อย่างแท้จริง


1
เพียงเพื่อให้ชัดเจนแพ็คเก็ต
icmp

1
นี่อาจเป็นที่สนใจของคุณ: nanog.org/meetings/nanog47/presentations/Sunday/…
codey

คำตอบ:


40

Traceroute จะแสดงให้คุณเห็นว่ามีกี่เลเยอร์ 3 กระโดดจาก A ถึง B

อย่างไรก็ตามคุณอาจต้องผ่านสวิตช์หลายร้อยตัวในระหว่างนั้น คุณอาจต้องผ่านเราเตอร์ ISP 10 เครื่องที่เรียกใช้เลเยอร์ 2 vpn ซึ่งจะปรากฏเป็น hop เดียว เครือข่าย MPLS สามารถซ่อน internals หรือแสดง internals ของคุณ คุณสามารถมีไฟร์วอลล์โปร่งใสในเส้นทางเช่นกัน

ไม่ว่าศาสตราจารย์ของคุณจะถูกต้องในการบอกว่าคุณไม่สามารถรับประกันได้ว่าอุปกรณ์ทุกชิ้นในเส้นทางจะนับว่าเป็นการกระโดดของคุณ จากจุดที่กล่าวถึงข้างต้นคุณอาจจะผ่านอุปกรณ์ 50 เครื่อง แต่มันอาจมีลักษณะสามอย่างกับคุณ

มันไม่ได้เกิดขึ้นตลอดเวลา ถ้าคุณเห็น 15 ฮ็อปมันก็ดีมากอาจเป็น 15 ฮอป

นี่เป็นตัวอย่างพื้นฐานของ MPLS ที่ตั้งค่าในส่วนที่เกี่ยวกับ TTL: http://www.juniper.net/techpubs/en_US/junos13.2/topics/reference/configuration-statement/no-propagate-ttl-edit-protocols -mpls.html


ขอขอบคุณ! สถานการณ์ที่คุณชี้ให้เห็นอย่างชัดเจนยิ่งขึ้นเกี่ยวกับสิ่งที่ traceroute อาจหายไป
WilHall

1
ไม่ต้องห่วง. แม้แต่สิ่งต่าง ๆ เช่นอุโมงค์ GRE สามารถซ่อนฮอป
อันเดอร์ได้เนื่องจาก

18

อุปกรณ์ใด ๆ ที่ไม่ลดค่าฟิลด์ TTL ของ IP จะไม่ปรากฏในเส้นทาง traceroute ยกตัวอย่างเช่น Cisco ASA Firewall สามารถกำหนดค่าให้พร่องฟิลด์ IP TTL สำหรับแพ็กเก็ตภายในไฟร์วอลล์ ( การเชื่อมต่อชุดพร่อง-TTL ) ตามค่าเริ่มต้น TTL จะไม่ลดลงดังนั้นจึงซ่อนไฟร์วอลล์เอาไว้


13

Traceroute จะไม่แสดงอุปกรณ์ที่ไม่ลดช่อง TTL ของ IP datagram

นอกจากนี้ยังจะไม่แสดงอุปกรณ์ที่ลดช่อง TTL และใช้แพ็กเก็ตหาก TTL ถึงศูนย์ แต่อย่าลืมแจ้งผู้ส่งเหตุการณ์นี้ผ่านทาง ICMP datagram นี่ไม่ใช่สิ่งที่มองไม่เห็นทั้งหมด คุณสามารถอนุมานการมีอยู่ของ hop ที่ขาดหายไปนี้ใน traceroute เพราะเมื่อใช้ค่า TTL ที่สูงขึ้นถัดไปอุปกรณ์ถัดไปในห่วงโซ่จะตอบสนองและเรารู้ว่ามีบางสิ่งระหว่างนั้นและอุปกรณ์ก่อนหน้านี้คือการลด TTL แต่ไม่ประกาศตัวเอง . tracerouteutilty แบบดั้งเดิมพิมพ์เครื่องหมายดอกจันเมื่อไม่ได้รับคำตอบ มันจะพิมพ์แถวของเครื่องหมายดอกจันสำหรับโฮสต์ประเภทนี้

นอกจากนี้ยังมีความเป็นไปได้ระยะไกลที่เราเตอร์บางตัวอยู่ระหว่างการเลือกที่จะแทนที่ข้อความ ICMP เหล่านี้ขึ้นอยู่กับแหล่งที่มาของพวกเขาทำให้บางส่วนของเส้นทางที่มองไม่เห็นแม้ว่าพวกเขาจะสร้างการตอบสนอง


ไม่ใช่ความเป็นไปได้ในระยะไกลสิ่งที่ต้องทำก็คือเครือข่ายเดียวที่ใช้ IP ส่วนตัวสำหรับลิงก์ระหว่างเราเตอร์และอีกเครือข่ายหนึ่งที่ทิ้งแพ็กเก็ตทั้งหมดด้วย IP ต้นทางส่วนตัว
ปีเตอร์กรีน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.