traceroute không in toàn bộ tuyến đường đôi khi


7

Theo dõi mạng của tôi, trước đây tôi nhận ra rằng traceroute được sử dụng để in các tuyến đường hoàn chỉnh hơn so với hiện tại ... và, ngay bây giờ, đôi khi traceroute bỏ qua một số thiết bị.

Ví dụ: đây là một traceroute hoàn chỉnh hơn, bao gồm cả cổng của tôi:

$ sudo traceroute -F xxx.xx.136.5

traceroute to xxx.xx.136.5 (xxx.xx.136.5), 30 hops max, 60 byte packets

 1  * * *

 2  192.168.1.1 (192.168.1.1)  1.607 ms  1.604 ms  1.627 ms

 3  xxx.xx.136.5 (xxx.xx.136.5)  3.286 ms  5.729 ms  7.416 ms

Bây giờ, cùng một lệnh bỏ qua cổng của tôi:

$ sudo traceroute -F xxx.xx.136.5

traceroute to xxx.xx.136.5 (xxx.xx.136.5), 30 hops max, 60 byte packets

1  xxx.xx.136.5 (xxx.xx.136.5)  24.004 ms  28.267 ms  42.343 ms

Các lệnh này đã được đưa ra trên cùng một máy.

Làm thế nào tôi có thể thiết lập để luôn luôn có toàn bộ tuyến đường?


1
Một số thiết bị không trả lời ICMP do ACL hoặc các cấu hình khác. Ngoài ra, bất kỳ lưu lượng truy cập nào được tạo đường hầm sẽ không trả về ping ngoại trừ các điểm cuối giao diện vật lý của chúng.
HAL

2
Một số thiết bị không làm giảm chỉ số TTL của các gói đi qua chúng, vì vậy chúng sẽ không hiển thị trong các lần theo dõi. Ví dụ: tường lửa Cisco PIX / ASA hoạt động theo cách này theo mặc định.
James Sneeringer 6/2/2015

1
Có câu trả lời nào giúp bạn không? nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

@HAL Linux traceroute sử dụng UDP giả thay vì ICMP, do đó, nó sẽ hoạt động với mọi thứ trả về ICMP TTL đã hết hạn.
Zac67

Có câu trả lời nào giúp bạn không? Nếu vậy, bạn nên chấp nhận câu trả lời để câu hỏi không xuất hiện mãi mãi, tìm kiếm câu trả lời. Ngoài ra, bạn có thể cung cấp và chấp nhận câu trả lời của riêng bạn.
Ron Maupin

Câu trả lời:


6

Bất kỳ hình thức theo dõi nào đều hoạt động bằng cách tăng TTL của gói IP lên một. Gói đầu tiên có chỉ số TTL là một và bộ định tuyến 1 giảm thời gian hẹn giờ và gửi thông báo lỗi thông qua ICMP (Thời gian tồn tại vượt quá). Traceroute tiêu chuẩn * NIX sử dụng UDP, Windows tracert ICMP, cũng có các phiên bản sử dụng TCP.

Có nhiều trường hợp khác nhau tại sao bạn không thấy một bước nhảy:

  • Mọi người nghĩ rằng ICMP là một khối ác. Điều này sẽ dẫn đến nhiều vấn đề (ví dụ phát hiện PMTU).
  • Mọi người chỉ nghĩ về windows và chặn UDP. Hãy thử chạy traceroute -Inên để lừa.
  • bạn cũng có thể muốn thử sử dụng tcptraceroute
  • Nếu một bộ định tuyến đang bận định tuyến các gói thì tôi không có tài nguyên để gửi các gói ICMP.

5

Tôi thích sử dụng tcptraceroutecho một chi tiết tốt hơn của định tuyến hop-to-hop.

tcptraceroutevề cơ bản bỏ qua hầu hết các tường lửa bảo vệ bỏ qua các gói ICMP được sử dụng bởi traceroute. Sử dụng cổng 80 hoặc 53.


1

Nếu cổng của bạn có một tùy chọn đăng nhập, kích hoạt nó. Bạn có thể tìm thấy một mục giải thích hành vi quan sát. Một bộ định tuyến có thể hiểu ICMP lặp đi lặp lại là DOS.

... Mặc dù, theo trực giác, người ta có thể mong đợi nguồn sẽ ở trên mạng bên ngoài.


0

Tôi đã phát hiện ra những gì thực sự xảy ra với traceroute (và mtr, tpctraceroute, v.v.) trên mạng nội bộ của tôi. Đó là bộ định tuyến của riêng tôi ẩn những bước nhảy đã biết. Bộ định tuyến của tôi (một TP-Link Wap như, với Linux 2.6.15) sử dụng để ẩn các bước nhảy đến các tuyến đã biết. Vì vậy, vg, đưa ra traceroute trên google, sẽ chỉ xuất ra một bước nhảy, bởi vì bộ định tuyến của tôi biết rất rõ về tuyến đường (tôi sử dụng google cả ngày dài). Nhưng, chỉ cần kết nối PC trực tiếp trên điểm truy cập, sau đó đưa traceroute về phía google, nó sẽ xuất lại toàn bộ tuyến đường từ đây đến google.

Vì vậy, bây giờ tôi biết những gì đang xảy ra, nhưng không phải tại sao nó làm điều đó theo cách này.

Như một giải pháp thay thế, tôi sử dụng bộ theo dõi được cung cấp bởi linux nhúng chạy trên bộ định tuyến (có vấn đề): đó là bộ định tuyến, thông qua PC của tôi, ẩn các bước nhảy, trong hệ thống nhúng của chính nó cung cấp giao diện thực hiện theo dõi đúng cách ...

Sao cũng được, cảm ơn đã trả lời!


Có vẻ như bộ định tuyến của bạn có tường lửa chặn các thông báo vượt quá ICMP TTL mà các bước nhảy trung gian tạo ra, nhưng thông báo ICMP cho phản hồi tiếng vang cho bước nhảy cuối cùng không bị chặn. Đây là một vấn đề cấu hình bộ định tuyến / tường lửa (ngoài chủ đề vì nó là thiết bị tiêu dùng).
Ron Maupin

0

Triển khai một máy chủ mới và nhận thấy rằng tuyến đường theo dõi sẽ chỉ hiển thị địa chỉ của cổng cục bộ, địa chỉ trên mạng LAN của Máy chủ, nhưng tất cả các bước nhảy khác được hiển thị dưới dạng *.

Khi tôi chạy TCPDUMP trên cùng một máy chủ trong khi thực hiện theo dõi lộ trình, tôi có thể thấy rằng ICMP TTL vượt quá các thông báo được tạo bởi các nút trong đường dẫn nhưng TRACEROUTE chỉ không hiển thị địa chỉ IP ... chỉ là nhiều hơn *.

Máy chủ lưu trữ có hai giao diện mạng, Giao diện A có tuyến mặc định được định cấu hình trên đó và Giao diện B có tuyến tĩnh đến Đích. Đó là Giao diện B mà tôi đang chạy tuyến đường trên đó chỉ hiển thị *.

Để thử và giải quyết vấn đề, tôi đã thêm một tuyến tĩnh khác cho bước nhảy thứ hai, bộ định tuyến tiếp theo trong đường dẫn, để tôi có thể làm việc trên một con đường ngắn hơn nhiều. Khi tôi lần đầu tiên bắt đầu thử nghiệm, bước nhảy thứ hai chỉ được hiển thị dưới dạng * nhưng ngay sau khi tôi thêm một tuyến tĩnh vào tuyến theo dõi mạng hiển thị địa chỉ IP của nó.

Tôi đã thực hiện lại một lộ trình theo dõi đến đích cuối cùng và lưu ý tất cả các địa chỉ IP đã tạo ICMP TTL vượt quá các tin nhắn để tôi có thể chắc chắn rằng định tuyến của Giao diện B có tất cả các mạng này được định cấu hình tĩnh. Khi tôi làm điều này, bây giờ tôi có thể thấy tất cả các IP được liệt kê trong kết quả các tuyến đường theo dõi.

Vì vậy, có vẻ như nếu Giao diện nhận tin nhắn vượt quá ICMP TTL không có định tuyến trở lại địa chỉ đó thì nó không được hiển thị trong kết quả lộ trình theo dõi. Tôi chắc chắn rằng ai đó trong cộng đồng có thể giải thích lý do tại sao nó hoạt động như vậy nhưng một máy chủ có nhiều giao diện chạy tuyến theo dõi trên giao diện mà không có tuyến mặc định được định cấu hình thì khá lãng phí thời gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.