traceroute ใช้ UDP หรือ ICMP หรือทั้งสองอย่าง?


24

เมื่อฉันติดตามโดเมน www.google.com จากแล็ปท็อปของฉันฉันใช้ icmp หรือ udp หรือไม่
ฉันคิดว่ามันเป็น icmp ชนิดที่ 11 แต่ในขณะที่ค้นหาอย่างอื่นฉันเจอกฎที่ใช้ icmp ประเภท 30 และฉันเห็นกฎที่ใช้ udp
มีใครช่วยอธิบายให้ฉันฟังได้ไหม
ฉันกำลังทำงานกับไฟร์วอลล์ (iptables) สำหรับเซิร์ฟเวอร์เฉพาะเสมือน

คำตอบ:


26

ชนิดของแพ็กเก็ตที่ส่งแตกต่างกันไปขึ้นอยู่กับการใช้งาน โดยค่าเริ่มต้น Windows tracertใช้ ICMP และทั้ง Mac OS X และ Linux tracerouteใช้ UDP ฉันไม่มีเครื่อง BSD หรือ Solaris หรือระบบปฏิบัติการอื่น ๆ ในมือเพื่อตรวจสอบ แต่หน้า man สำหรับรุ่น Mac OS X ระบุว่าที่มาของมันคือ BSD 4.3

รุ่น Mac และ Linux ฉันมีความสามารถในการเลือกโปรโตคอลที่แตกต่างหลากหลายรวมถึงแพ็คเก็ต ICMP, TCP, UDP และ GRE โปรโตคอลอื่นสามารถระบุได้โดยชื่อหรือหมายเลขของพวกเขา แต่ traceroute ไม่รู้อะไรเกี่ยวกับวิธีการทำงานของโปรโตคอลอื่น ๆ มันส่งพวกเขาแบบสุ่ม ๆ

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

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

ICMP ประเภท 30ได้รับการกำหนดเป็นพิเศษสำหรับ traceroute และมีป้ายกำกับว่า "คำขอข้อมูล" ฉันไม่สามารถค้นหาได้ทุกที่ที่ใช้งานจริง หน้า man สำหรับ Mac OS X และ Linux บอกว่า-Iจะส่งICMP type 8 (คำขอ echo) Wikipedia กล่าวว่า Windows tracertใช้ ICMP echo ICMP type 30 หรือ type 8 เป็นแพ็กเก็ตขาออกไม่ใช่ขาเข้า

ICMP type 0 (echo response) อาจกลับมาเป็นแพ็กเก็ตสุดท้ายเมื่อ TTL เท่ากับจำนวนฮ็อพ Traceroute จะรู้ว่ามันเสร็จสิ้นเมื่อได้รับหนึ่งในนั้น นี่คือแพ็คเก็ตขาเข้า

แพ็คเก็ตTCP SYNจะทำให้เกิดRSTแพ็คเก็ตหรือSYN ACKแพ็คเก็ตในการตอบสนองเมื่อพวกเขามาถึงปลายทางของพวกเขา หากคุณได้รับSYN ACKแพ็คเก็ตก็จะสุภาพในการติดตามRSTแพ็คเก็ตเพื่อที่จะไม่ปล่อยให้การเชื่อมต่อครึ่งเปิดบนเซิร์ฟเวอร์

เป็นไปได้ที่จะได้รับการตอบกลับICMP ประเภท 3 รหัส 4กลับมาแทนการตอบกลับประเภท ICMP 11 หากคุณส่งแพ็คเก็ตขนาดใหญ่ที่มีการตั้งค่าสถานะ . โดยปกติคุณจะได้รับการตอบกลับแบบนี้จากการกระโดดหนึ่งครั้งตลอดเส้นทาง ไม่ใช่ทั้งหมด.


8

traceroute แบบดั้งเดิมใช้ UDP ในการเพิ่มพอร์ตสำหรับทุกการฟ้อนรำ

คุณสามารถใช้แพ็คเก็ตประเภทใดก็ได้เพื่อนำไปใช้งาน - ICMP, TCP SYN, และอื่น ๆ สิ่งที่ต้องทำคือแพ็คเก็ต IP ที่หมดอายุและคุณมีสีทอง

การใช้งานที่หลากหลายเช่น MacOS ให้การสนับสนุน traceroute หลายประเภทรวมถึงโหมดที่ไม่เพิ่มพอร์ต ฯลฯ เพื่อหลีกเลี่ยงข้อ จำกัด ของไฟร์วอลล์


7
พอร์ต UDP ที่เป็นค่าเริ่มต้นในการใช้งานแบบ unix นั้นมาจาก 33434 ถึง 33534 การใช้งาน ICMP ใช้ "คำขอ echo" (ชนิด 8)
Ouki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.