ทำไม traceroute แสดงที่อยู่ IP จำนวนมากสำหรับการกระโดดเดียวกัน


14

sina.com.cnนี่คือเส้นทางเส้นทางจากบ้านของฉันไป

 traceroute -n   sina.com.cn
traceroute to sina.com.cn (202.108.33.60), 30 hops max, 60 byte packets
 1  192.168.31.1  0.476 ms  0.587 ms  0.695 ms
 2  140.0.5.1  2.557 ms  2.699 ms  3.065 ms
 3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms
 4  * 221.11.156.18  26.480 ms 221.11.165.233  22.950 ms
 5  219.158.9.97  14.176 ms * 219.158.19.149  21.472 ms
 6  219.158.9.97  18.142 ms 219.158.8.81  44.856 ms  52.539 ms
 7  124.65.194.190  53.162 ms 219.158.8.81  50.614 ms 124.65.194.190  47.266 ms
 8  124.65.194.190  50.760 ms 61.148.143.26  49.351 ms  53.515 ms
 9  210.74.176.138  43.056 ms  43.286 ms 61.148.143.26  53.712 ms
10  202.108.33.60  46.385 ms 210.74.176.138  42.896 ms  46.931 ms

192.168.31.1 เป็นเราเตอร์ที่บ้านของฉัน
140.0.5.1 เป็นไอพีสาธารณะของฉันที่ ISP ให้บริการ

curl  ifconfig.me
140.0.5.1 

ในบรรทัดที่สามพูดว่า

3  221.11.155.65  4.501 ms * 221.11.165.9  5.045 ms

ทำไมมีสองที่อยู่ IP 221.11.155.65 และ221.11.165? มันหมายความว่าอะไร?

แพ็กเก็ตกระโดดจาก 140.0.5.1 ไปยัง 221.11.155.65จากนั้นข้าม 221.11.155.65 ไปยัง221.11.165หรือไม่


หนึ่งการชี้แจง หาก ISP ให้ที่อยู่ IP แก่คุณคุณไม่ควรแสดงคำสั่ง traceroute ที่คุณเรียกใช้ และถ้าคุณทำ traceroute กับที่อยู่ IP มันจะปรากฏขึ้นเป็น hop 1 มีโอกาสมากที่คุณไม่มีที่อยู่ IP ใด ๆ และ140.0.5.1เป็นประเภท CGN บางอย่างที่ทำงานผิดปกติเล็กน้อย
kasperd

คำตอบ:


4

สิ่งที่ traceroute ใช้คือฟิลด์ตัวเลือกเนื่องจากมันจะส่งแพ็คเก็ตโปรโตคอลควบคุมข้อความทางอินเทอร์เน็ต (icmp) แต่ละเกตเวย์หรือจุดการเราต์ในเครือข่ายจะอ่านแพ็คเก็ตบนอินเทอร์เฟซเดียวตัดสินใจว่าควรจะไปที่ไหนและเขียนมันออกมาบนอินเตอร์เฟสอื่น อินเทอร์เฟซนั้นอยู่ใกล้กับปลายทางมากขึ้น ในขณะที่เราเตอร์กำลังส่งต่อแพ็กเก็ตมันยังทำการแก้ไขส่วนหัวของแพ็คเก็ต จะลดฟิลด์ "time to live" หรือ hop count โดยหนึ่ง แต่ละเกตเวย์ในพา ธ ของแพ็กเก็ตไปยังปลายทางจะลดฟิลด์นี้

เมื่อช่องนับฮอปลดลงเป็นศูนย์เราเตอร์จำนวนมากจะส่งข้อความ icmp กลับมาเพื่อบอกตำแหน่งที่แพ็กเก็ตถูกทิ้ง เพื่อค้นหาว่าที่อยู่ IP ใดเป็นระยะทางที่เฉพาะเจาะจง traceroute จะส่งแพ็กเก็ตพร้อมตัวเลือกเวลาในการใช้ชีวิต & ให้การตอบกลับเมื่อหมดเวลา ข้อความที่มีจำนวนฮ็อพเริ่มต้นที่ 1 และเพิ่มขึ้นเรื่อย ๆ แต่ละครั้งจะส่งคืนที่อยู่ IP ของเราเตอร์ที่อยู่ไกลขึ้นเรื่อย ๆ เพราะ traceroute ทำสิ่งนี้หลายครั้งคุณจะได้รับกลับมา (ถ้าคุณมีเครือข่ายที่เชื่อมต่อกันอย่างเต็มเปี่ยมเช่นเดียวกับอินเทอร์เน็ต) คำตอบหลายอย่างในบางครั้ง อาจเป็นกรณีที่เกตเวย์เฉพาะจะตอบในจำนวนที่แตกต่างกันออกไปเนื่องจากเส้นทางไปยังเกตเวย์นั้นผ่านฮอปที่แตกต่างกัน


11

ข้อมูลที่tracerouteให้คุณมาที่นี่คือคุณมีเส้นทางอย่างน้อย 2 เส้นทางเพื่อไปยังจุดหมายปลายทางของคุณโดยเริ่มจากเราเตอร์:

           IP adresses                 Internet operator

           140.0.5.1                   Firstmedia - Indonesia
             /    \
            /      \
221.11.155.65      221.11.165.9        China Unicom - China

นี่เป็นสถานการณ์ปกติสำหรับผู้ให้บริการอินเทอร์เน็ตรายใหญ่: มีเส้นทางมากมายที่จะต่อต้านเหตุการณ์ปกติบนอินเทอร์เน็ต

-aตัวเลือกในการtracerouteอาจช่วยให้คุณระบุที่ผู้ประกอบการทุกคนที่อยู่ IP เป็นของ

นี่คือตัวอย่างของเส้นทางต้นไม้ขนาดใหญ่ที่คุณสามารถรับได้จากโทรศัพท์มือถือของคุณผ่านเครื่องมือเครือข่ายเช่นเซิร์ฟเวอร์http://ping.eu/traceroute/ : traceroute ถึง 140.0.5.1


ไม่มีตัวเลือก -a สำหรับ traceroute ของฉันใน debian9
scrapy

traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate, ... ] [อุปกรณ์ -i] [-m max_ttl] [-p พอร์ต] [-s src_addr] [-qu nqueries] [-n squeries] [ -t tos] [-l flow_label] [-w waittimes] [-z sendwait] [-UL] [-D] [-P proto] [- พอร์ต = พอร์ต] [วิธี -M] [-O mod_options] [ --mtu] [- back] host [packet_len]
scrapy

ฉันใช้ FreeBSD ที่นี่
แดน

8

จากtraceroute(8)คู่มือใน OpenBSD:

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

คู่มือ Linux จะมีข้อความที่คล้ายกัน

ที่อยู่ IP หลายรายการที่คุณเห็นคือเกตเวย์ตอบสนองต่อโพรบแต่ละตัวที่ขีด จำกัด ฮ็อปเฉพาะ

ในกรณีของคุณโพรบทั้งสามส่งผลให้คำตอบที่ขีด จำกัด hop 3 กลับมาหาคุณจากเกตเวย์ที่ 221.11.155.65 และที่ 221.11.165.9

ดังนั้นคำตอบคือ: ไม่แพ็คเก็ตไม่กระโดดระหว่างสองโฮสต์ที่อยู่ในรายการนั้นมีโพรบสามตัวที่ส่งและใช้เส้นทางสองเส้นทางที่แตกต่างจาก 140.0.5.1


1
@RuiFRibeiro ฉันได้ชี้แจงคำตอบของฉันเพื่อตอบคำถามที่ชัดเจนที่ถูกถาม
Kusalananda

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