กำลังมองหา Traceroute บน RHEL 8 อยู่ใช่ไหม ลอง Tracepath

เผยแพร่แล้ว: 2022-06-14

การวินิจฉัยเครือข่ายเป็นส่วนสำคัญของงานของผู้ดูแลระบบเครือข่าย/ระบบ ซึ่งรวมถึงการวิเคราะห์และการแก้ไขปัญหาเครือข่ายประเภทต่างๆ

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

เครื่องมือข้ามแพลตฟอร์มที่ได้รับความนิยมและใช้กันทั่วไปซึ่งช่วยในการวิเคราะห์และแก้ไขปัญหาเกี่ยวกับเส้นทางเครือข่ายคือ traceroute

พูดง่ายๆ ก็คือ traceroute ติดตามเส้นทางของแพ็กเก็ต IP ระหว่างต้นทางและปลายทางโดยส่งแพ็กเก็ตโพรบ (น่าจะเป็น ICMP ECHO หรือ TCP SYN) จากนั้นฟังการตอบสนอง "เกินเวลา" ของ ICMP TTL ของแพ็กเก็ตเหล่านี้จะถูกเก็บไว้เป็นหนึ่งเดียวและเพิ่มขึ้นทีละหนึ่งจนกว่าเราจะได้รับ "พอร์ตที่ไม่สามารถเข้าถึงได้" ของ ICMP ซึ่งหมายความว่าเราไปถึงโฮสต์หรือเข้าถึงค่าสูงสุด (โดยค่าเริ่มต้นคือ 30 ฮ็อพ)

ตัวอย่างเอาต์พุต traceroute มีลักษณะดังนี้:

 $ traceroute google.com traceroute to google.com (172.217.169.14), 30 hops max, 60 byte packets 1 140.91.200.22 (140.91.200.22) 0.129 ms 140.91.200.19 (140.91.200.19) 0.151 ms 140.91.200.77 (140.91.200.77) 0.114 ms 2 linxbgp1.iwscloud.com (195.66.226.34) 0.735 ms 0.701 ms 1.024 ms 3 195.66.224.125 (195.66.224.125) 0.603 ms 0.591 ms 0.591 ms 4 108.170.246.129 (108.170.246.129) 0.583 ms 0.745 ms 0.714 ms 5 209.85.241.95 (209.85.241.95) 1.576 ms 209.85.241.93 (209.85.241.93) 1.545 ms 209.85.241.95 (209.85.241.95) 1.520 ms 6 lhr25s26-in-f14.1e100.net (172.217.169.14) 0.584 ms 0.547 ms 0.507 ms $

เอาต์พุตการ traceroute เริ่มต้น ดังที่แสดงด้านบน แสดง TTL (Time To Live) หรือเวลาไปกลับของสามแพ็กเก็ต จำนวนฮ็อพสูงสุดและขนาดแพ็กเก็ตเป็นไบต์ และที่อยู่ IP และชื่อโดเมนที่ได้รับการแก้ไขแล้ว หากเป็นไปได้

Traceroute มีประโยชน์มากในการกำหนดการตอบสนองล่าช้าและการกำหนดเส้นทางระหว่างสองโหนด นอกจากนี้ยังช่วยกำหนดจุดบกพร่องในเส้นทางไปยังปลายทาง ไฟร์วอลล์และเราเตอร์จำนวนมากบล็อกข้อความติดตามเส้นทางบนอินเทอร์เน็ต ดังนั้นเอาต์พุตจึงอาจไม่ถูกต้องเสมอไป

มีวิธีแก้ปัญหาที่เป็นไปได้ในระดับหนึ่งโดยการเปลี่ยนประเภทข้อความโพรบ แต่สามารถช่วยได้เพียงระดับหนึ่งเท่านั้นที่จะหลีกเลี่ยงปัญหานี้ ดังนั้นต้องจำสิ่งนี้ไว้ในขณะที่ใช้ยูทิลิตี้นี้

บางตัวเลือกใน traceroute ต้องการสิทธิ์ superuser ระดับสูงที่เปิดใช้งานการแก้ไขแพ็กเก็ตดิบ

คำสั่งติดตามเส้นทาง

Red Hat Enterprise Linux หรือ RHEL 8 และลีนุกซ์รุ่นที่ได้รับไม่ได้มาพร้อมกับคำสั่ง traceroute ที่ติดตั้งไว้ตามค่าเริ่มต้น นี่อาจดูเหมือนการเปลี่ยนแปลงครั้งสำคัญสำหรับผู้ที่เคยใช้ในการ traceroute ยูทิลิตี้บน Red Hat Linux หรือ CentOS เวอร์ชันก่อนหน้า

แต่มีคำสั่งที่มีความสามารถเท่าเทียมกันโดยค่าเริ่มต้นบน RHEL8 ที่เรียกว่า tracepath ซึ่งมีความสามารถที่คล้ายคลึงกันกับ tracepath คู่และพร้อมสำหรับการใช้งานกับการติดตั้งระบบปฏิบัติการ

นอกจากนี้ tracepath ยังรองรับตัวเลือก MTU ซึ่งช่วยให้สามารถตรวจจับค่า MTU หรือ Maximum Transmission Unit ซึ่งเป็นแพ็กเก็ตที่ใหญ่ที่สุดที่ tracepath สามารถส่งผ่านเครือข่ายได้

ตัวอย่างเอาต์พุต tracepath แสดงอยู่ด้านล่างสำหรับการอ้างอิง:

 $ tracepath 131.153.76.66 1?: [LOCALHOST] pmtu 9000 1: 140.91.200.23 0.416ms asymm 2 1: 140.91.200.23 0.239ms asymm 2 2: 140.91.200.74 0.194ms pmtu 1500 2: oracle-svc071175-lag003322.ip.twelve99-cust.net 1.344ms 3: ldn-b7-link.ip.twelve99.net 19.996ms asymm 2 4: ldn-bb1-link.ip.twelve99.net 0.803ms asymm 5 5: prs-bb1-link.ip.twelve99.net 8.548ms asymm 6 6: mei-b5-link.ip.twelve99.net 18.111ms asymm 5 7: no reply 8: phoenix-svc071932-ic358857.ip.twelve99-cust.net 179.691ms asymm 7 9: 131.153.47.139 163.358ms asymm 8 10: no reply 11: 131.153.76.66 159.071ms !H Resume: pmtu 1500 $

เอาต์พุต tracepath เริ่มต้นดังที่แสดงด้านบน แสดง TTL (Time To Live) หรือเวลาไปกลับของแพ็กเก็ต MTU (Maximum Transmission Unit) ที่สามารถส่งผ่านเครือข่ายโดย tracepath และระบุชื่อโดเมนที่แก้ไขได้ทุกเมื่อ

ไวยากรณ์ tracepath

ไวยากรณ์การใช้งานทั่วไปของคำสั่ง tracepath มีดังนี้:

 $ tracepath <options> <destination DNS or IP>

#1. ไม่มีแฟล็ก tracepath จะแสดงเส้นทางไปยังปลายทางที่แสดงด้านล่าง:

 $ tracepath 131.153.56.85 1?: [LOCALHOST] pmtu 9000 1: 140.91.200.77 0.226ms asymm 2 1: 140.91.200.79 0.497ms asymm 2 2: 140.91.200.74 0.216ms pmtu 1500 2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.691ms 3: slou-b1-link.ip.twelve99.net 1.249ms asymm 2 4: ldn-bb4-link.ip.twelve99.net 0.749ms asymm 3 5: nyk-bb1-link.ip.twelve99.net 80.617ms asymm 8 6: rest-bb1-link.ip.twelve99.net 153.250ms asymm 21 7: nyk-bb1-link.ip.twelve99.net 83.084ms asymm 6 8: nash-bb1-link.ip.twelve99.net 280.770ms asymm 9 9: no reply 10: dls-b23-link.ip.twelve99.net 110.820ms asymm 9 11: phx-b1-link.ip.twelve99.net 131.524ms 12: phx-b1-link.ip.twelve99.net 131.632ms asymm 11 13: giglinx-ic305413-phx-b1.ip.twelve99-cust.net 132.583ms asymm 12 14: no reply 15: giglinx-ic305414-phx-b1.ip.twelve99-cust.net 142.685ms asymm 12 16: PHOENIX-NAP.ear3.Chicago2.Level3.net 135.245ms asymm 4 17: no reply 18: no reply 19: speedchi.phoenixnap.com 133.809ms reached Resume: pmtu 1500 hops 19 back 8 $

#2. หากคุณต้องการพิมพ์ที่อยู่ IP เท่านั้น คุณสามารถใช้แฟล็ก -n :

 $ tracepath -n 131.153.56.85 1?: [LOCALHOST] pmtu 1500 1: 140.91.200.74 0.393ms asymm 2 1: 140.91.200.21 0.180ms asymm 2 2: 213.248.69.255 0.576ms 3: 213.248.98.246 1.210ms asymm 2 4: 62.115.117.122 1.371ms asymm 3 5: 62.115.133.239 141.920ms asymm 20 6: 62.115.141.244 77.732ms asymm 7 7: no reply 8: 62.115.137.55 881.711ms asymm 9 9: no reply 10: 62.115.137.55 914.855ms asymm 9 11: 62.115.125.97 132.182ms 12: 62.115.125.97 131.686ms asymm 11 13: 62.115.42.6 133.132ms asymm 12 14: no reply 15: 62.115.42.10 143.880ms asymm 12 16: 4.14.13.150 134.869ms asymm 4 17: no reply 18: 4.14.13.150 145.263ms asymm 4 19: 131.153.56.85 133.636ms reached Resume: pmtu 1500 hops 19 back 8 $

#3. หากต้องการพิมพ์ทั้งชื่อโฮสต์และที่อยู่ IP ให้ใช้แฟล็ก -b :

 $ tracepath -b 131.153.56.85 1?: [LOCALHOST] pmtu 1500 1: 140.91.200.19 (140.91.200.19) 0.197ms asymm 2 1: 140.91.200.74 (140.91.200.74) 0.141ms asymm 2 2: oracle-svc071175-lag003322.ip.twelve99-cust.net (213.248.98.247) 1.186ms 3: slou-b1-link.ip.twelve99.net (213.248.98.246) 10.273ms asymm 2 4: ldn-bb4-link.ip.twelve99.net (62.115.141.246) 0.941ms asymm 3 5: prs-bb2-link.ip.twelve99.net (62.115.133.239) 141.858ms asymm 20 6: rest-bb1-link.ip.twelve99.net (62.115.141.244) 76.210ms asymm 7 7: no reply 8: rest-bb1-link.ip.twelve99.net (62.115.141.244) 89.209ms asymm 7 9: no reply 10: dls-b23-link.ip.twelve99.net (62.115.136.119) 110.335ms asymm 9 11: phx-b1-link.ip.twelve99.net (62.115.125.97) 132.091ms 12: phx-b1-link.ip.twelve99.net (62.115.125.97) 131.844ms asymm 11 13: giglinx-ic315451-phx-b1.ip.twelve99-cust.net (80.239.195.78) 142.975ms asymm 14 14: no reply 15: no reply 16: PHOENIX-NAP.ear3.Chicago2.Level3.net (4.14.13.150) 135.233ms asymm 4 17: no reply 18: no reply 19: speedchi.phoenixnap.com (131.153.56.85) 133.871ms reached Resume: pmtu 1500 hops 19 back 8 $

#4. ในการตั้งค่าแบบกำหนดเองของความยาวแพ็กเก็ตแทนการใช้ค่าเริ่มต้นของ tracepath เช่น 65535 ให้ระบุค่าด้วยแฟล็ก -l :

 $ tracepath -l 300 131.153.56.85 1: 140.91.200.77 0.405ms asymm 2 2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.589ms 3: slou-b1-link.ip.twelve99.net 1.448ms asymm 2 4: ldn-bb4-link.ip.twelve99.net 0.960ms asymm 3 5: nyk-bb1-link.ip.twelve99.net 81.564ms asymm 8 6: rest-bb1-link.ip.twelve99.net 78.414ms asymm 7 7: nyk-bb1-link.ip.twelve99.net 84.286ms asymm 6 8: rest-bb1-link.ip.twelve99.net 87.529ms asymm 7 9: no reply 10: dls-b23-link.ip.twelve99.net 110.534ms asymm 9 11: phx-b1-link.ip.twelve99.net 131.449ms 12: phx-b1-link.ip.twelve99.net 131.303ms asymm 11 13: giglinx-ic315451-phx-b1.ip.twelve99-cust.net 143.059ms asymm 14 14: phx-b1-link.ip.twelve99.net 142.348ms asymm 11 15: giglinx-ic--305416-phx-b1.ip.twelve99-cust.net 143.554ms asymm 12 16: PHOENIX-NAP.ear3.Chicago2.Level3.net 134.790ms asymm 4 17: no reply 18: PHOENIX-NAP.ear3.Chicago2.Level3.net 145.926ms asymm 4 19: speedchi.phoenixnap.com 133.736ms reached Resume: pmtu 300 hops 19 back 8 $

#5. นอกจากนี้เรายังสามารถตั้งค่าพอร์ตปลายทางเริ่มต้นโดยใช้แฟล็ก -p เป็น:

 $ tracepath -p 9000 131.153.56.85 1?: [LOCALHOST] pmtu 1500 1: 140.91.200.18 0.160ms asymm 2 1: 140.91.200.74 0.177ms asymm 2 2: oracle-svc071175-lag003322.ip.twelve99-cust.net 1.151ms 3: slou-b1-link.ip.twelve99.net 1.727ms asymm 2 4: no reply 5: nyk-bb1-link.ip.twelve99.net 81.357ms asymm 8 6: rest-bb1-link.ip.twelve99.net 78.325ms asymm 7 7: no reply 8: rest-bb1-link.ip.twelve99.net 87.908ms asymm 7 9: no reply 10: dls-b23-link.ip.twelve99.net 109.797ms asymm 9 11: phx-b1-link.ip.twelve99.net 132.036ms 12: dls-b23-link.ip.twelve99.net 121.404ms asymm 9 13: giglinx-ic315450-phx-b1.ip.twelve99-cust.net 136.322ms asymm 12 14: phx-b1-link.ip.twelve99.net 142.596ms asymm 11 15: no reply 16: PHOENIX-NAP.ear3.Chicago2.Level3.net 135.182ms asymm 4 17: no reply 18: no reply 19: speedchi.phoenixnap.com 133.562ms reached Resume: pmtu 1500 hops 19 back 8 $

#6. ฮ็อพสูงสุดซึ่งโดยค่าเริ่มต้นตั้งไว้ที่ 30 สามารถปรับแต่งได้โดยใช้แฟ -m ดังที่แสดงด้านล่าง:

 $ tracepath -m 20 131.153.56.85 1?: [LOCALHOST] pmtu 1500 1: 140.91.200.18 0.175ms asymm 2 1: 140.91.200.77 0.169ms asymm 2 2: oracle-svc071174-lag003319.ip.twelve99-cust.net 0.669ms 3: slou-b1-link.ip.twelve99.net 2.443ms asymm 2 4: no reply 5: prs-bb2-link.ip.twelve99.net 142.778ms asymm 20 6: rest-bb1-link.ip.twelve99.net 76.756ms asymm 7 7: no reply 8: rest-bb1-link.ip.twelve99.net 89.272ms asymm 7 9: no reply 10: dls-b23-link.ip.twelve99.net 110.378ms asymm 9 11: phx-b1-link.ip.twelve99.net 132.582ms 12: phx-b1-link.ip.twelve99.net 132.135ms asymm 11 13: phx-b1-link.ip.twelve99.net 142.154ms asymm 11 14: no reply 15: giglinx-ic305414-phx-b1.ip.twelve99-cust.net 142.298ms asymm 12 16: PHOENIX-NAP.ear3.Chicago2.Level3.net 134.362ms asymm 4 17: no reply 18: no reply 19: speedchi.phoenixnap.com 133.474ms reached Resume: pmtu 1500 hops 19 back 8 $

โปรดทราบว่า tracepath ไม่รองรับสิทธิ์ superuser ระดับสูง เช่น traceroute เนื่องจากไม่รองรับคุณสมบัติการแก้ไขแพ็กเก็ตขั้นสูง

สรุป

บทความนี้สรุปการใช้คำสั่ง traceroute วิธีที่ใช้ในการแก้ไขปัญหาที่เกี่ยวข้องกับเครือข่าย และวิธีที่เราสามารถทำงานเดียวกันในระบบ RHEL8 โดยใช้คำสั่ง tracepath

หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งเหล่านี้ ให้ใช้หน้าคนที่เกี่ยวข้องของเครื่องมือ

 $ man traceroute $ man tracepath