ฉันสามารถตรวจสอบที่อยู่ IP ได้ แต่ไม่สามารถ ping ได้


19

สำหรับ Windows ถ้าฉันติดตาม Google ฉันได้รับสิ่งต่อไปนี้

C:\Users\Dave>tracert -d -w 100 www.google.com

Tracing route to www.google.com [216.58.220.100]
over a maximum of 30 hops:

  1    <1 ms    <1 ms    <1 ms  192.168.1.1
  2    17 ms     *       16 ms  [redacted]
  3    17 ms    16 ms    17 ms  [redacted]
  4    34 ms    34 ms    34 ms  150.101.33.18
  5    35 ms    43 ms    33 ms  72.14.221.174
  6    33 ms    33 ms    33 ms  66.249.95.234
  7    31 ms    31 ms    31 ms  209.85.142.11
  8    33 ms    33 ms    38 ms  216.58.220.100

Trace complete.

ตอนนี้ถ้าฉัน ping ที่อยู่ IP สุดท้ายที่สามที่ 66.249.95.234 ฉันได้รับสิ่งนี้ ...

C:\Users\Dave>ping 66.249.95.234

Pinging 66.249.95.234 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 66.249.95.234:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

เป็นอย่างไรภายใน 'ping' เพื่อ tracert อย่างใดทำงานแตกต่างจากที่ ping จริง แตกต่างกันอย่างไร ฉันต้องทำอย่างไรเพื่อให้ ping ทำงานเหมือน tracert


3
อาจเป็นเพราะ ICMP ECHO ถูกบล็อก
Burhan Khalid

คำตอบ:


27

ทุกอย่างเกี่ยวข้องกับการทำงานของ tracert Ping เป็น ICMP ที่ตรงจากจุด A ถึงจุด B ซึ่งข้ามเครือข่ายผ่านกฎการจัดเส้นทาง Tracert ทำงานแตกต่างกันมากแม้ว่าจะใช้ ICMP

Tracert ทำงานโดยกำหนดเป้าหมาย hop สุดท้าย แต่ จำกัด TTL และรอข้อความเกินเวลาจากนั้นเพิ่มหนึ่งสำหรับการทำซ้ำครั้งถัดไป ดังนั้นการตอบสนองที่ได้รับไม่ใช่ ICMP echo ที่ตอบกลับไปยังคำขอ ICMP echo จากโฮสต์ระหว่างทาง แต่เวลาเกินกว่าข้อความจากโฮสต์นั้น - ดังนั้นแม้ว่าจะใช้ ICMP แต่ก็ใช้วิธีนี้แตกต่างกันมาก .

คุณสามารถอ่านรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่


12
หากต้องการเพิ่มจุดสุดท้ายทำไมเวลาส่ง Ping ออก: เห็นได้ชัดที่ 3 ช่วง 3 โฮสต์มีการกำหนดค่าการทำงานเป็นเราเตอร์สำหรับการจราจรผ่านมัน (ซึ่งรวมถึงการส่ง ICMP TTL เกินข้อความควบคุมสำหรับความล้มเหลว) แต่การจราจรบล็อกเพื่อมันโดยเฉพาะเพื่อไม่ตอบกลับ ICMP ECHO REQ โดยวิธีการที่ลูกค้า traceroute สามารถส่งสิ่งที่มีกระโดดสุดท้ายเป็นปลายทาง - มันอาจจะเป็น ICMP ECHO REQ แต่มันก็อาจเป็น TCP SYN บางส่วน (ซึ่งอาจเรียกข้อความ ICMP อื่น ๆ โดยเฉพาะเมื่อถึงเป้าหมาย jhost ในความเป็นจริงมีความแตกต่างระหว่างการใช้งานระบบปฏิบัติการแล้วมี. tracepath...
ฮาเจนฟอน Eitzen

@HagenvonEitzen นั่นจะทำให้คำตอบที่ดีในตัวเอง (ที่ดีที่สุด, IMO!)
Lightness Races กับโมนิก้า

3
นอกจากนี้ยังมีข้อสังเกตว่าการใช้งาน "tracert" จำนวนมากไม่ได้ส่งแพ็คเก็ต ICMP อย่างน้อยในกรณีของtracerouteลีนุกซ์ส่วนใหญ่, ซึ่งส่ง UDP ดาตาแกรม, ถึงแม้ว่าฉันไม่แน่ใจว่า Windows version ทำอะไร Intermediate hops ควรส่ง ICMP TTL ที่ยอดเยี่ยมสำหรับแพ็คเก็ตทุกชนิดไม่เพียง แต่ ICMP
บาดเจ็บทางดิจิทัล

1
@DigitalTrauma Wireshark พูดว่าtracertใน Windows 7 ส่งคำขอ ICMP Echo
Bob

4

ก่อนอื่นคำสั่งทั้งสองของคุณกำลังส่งแพ็กเก็ตที่มีที่อยู่ IP ปลายทางที่แตกต่างกัน นั่นหมายความว่าพวกเขาอาจใช้เส้นทางที่แตกต่างกัน

เมื่อคุณเห็น66.249.95.234เส้นทางไปสู่216.58.220.100คุณอาจคิดว่าแพ็กเก็ตที่มีที่อยู่ปลายทาง66.249.95.234จะใช้เส้นทางเดียวกันจนกว่าจะถึงจุดนั้น อย่างไรก็ตามนั่นไม่ใช่ข้อสันนิษฐานที่ถูกต้อง

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

ฉันไม่รู้ว่าtracertและpingคำสั่งที่คุณใช้ทั้งคู่ใช้โปรโตคอลเดียวกันหรือไม่ การใช้งาน ping ส่วนใหญ่ใช้แพ็คเก็ตคำขอ ICMP echo อย่างไรก็ตามการติดตั้ง traceroute นั้นรองรับโปรโตคอลหลากหลายรวมถึงคำขอ ICMP echo, TCP SYN และแพ็คเก็ต UDP หากทั้งสองเกิดขึ้นโดยใช้โปรโตคอลที่แตกต่างกันนั่นอาจเป็นปัจจัยสนับสนุนให้เห็นผลลัพธ์ที่แตกต่างกัน

ในที่สุดมันถึงแม้ว่าทุกแพ็กเก็ตจะไปถึง66.249.95.234ก็เป็นไปได้ที่66.249.95.234จะทำงานแตกต่างกันอย่างดุเดือดขึ้นอยู่กับว่ามันจะต้อง:

  • ส่งต่อแพ็กเก็ต
  • สร้างข้อผิดพลาด ICMP บนแพ็กเก็ตที่ส่งถึงตัวมันเอง
  • สร้างข้อผิดพลาด ICMP บนแพ็กเก็ตที่ส่งถึงบุคคลอื่น

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


0

เมื่อความปลอดภัยบนเครือข่ายเพิ่มขึ้นอย่างต่อเนื่องสิ่งหนึ่งที่ผู้คนจำนวนมากทำตอนนี้ก็คือการปิดใช้งานส่วนต่างๆของโปรโตคอล ICMP สิ่งนี้จะช่วยป้องกันการตอบสนองต่อ traceroutes และส่งคืน FQDN จาก hop บางครั้งผู้ดูแลระบบล็อกสิ่งต่าง ๆ ลงไปอย่างแน่นหนาซึ่งแม้แต่ ping ก็ไม่ทำงาน นี่คือการตัดสินใจของผู้ดูแลระบบที่เกี่ยวข้อง

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


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