Giải thích TTL trong kết quả ping


11

Tôi làm việc cho một nhà cung cấp dịch vụ VoIP và tôi đang làm việc với một khách hàng có kết nối internet cáp khiến tôi phải lo lắng.

Anh ta có một khối duy nhất, mà chúng tôi sẽ giả vờ là 70.141.15.0/29, với cổng tại .1 và bộ định tuyến tại .2 và .3. Cả hai bộ định tuyến đều được kết nối với modem cáp của anh ấy, theo hiểu biết tốt nhất của chúng tôi, được đặt thành bất kỳ nhà cung cấp cáp nào tưởng tượng "chế độ cầu" là gì.

Tôi đồng thời ping cả hai bộ định tuyến này từ cùng một hộp, đó là một hệ thống linux được kết nối với sợi từ Cấp độ (có thể) (3). Vì vậy, không cần phải nói, không ai trên hành tinh biết có bao nhiêu nút giữa đây và đó. Nhưng kiểm tra kết quả ping.

Đến bộ định tuyến đầu tiên:

64 bytes from 70.141.15.2: icmp_seq=2637 ttl=47 time=45.0 ms
64 bytes from 70.141.15.2: icmp_seq=2638 ttl=47 time=39.2 ms
64 bytes from 70.141.15.2: icmp_seq=2639 ttl=47 time=37.3 ms
64 bytes from 70.141.15.2: icmp_seq=2640 ttl=47 time=46.1 ms
64 bytes from 70.141.15.2: icmp_seq=2641 ttl=47 time=45.8 ms
64 bytes from 70.141.15.2: icmp_seq=2642 ttl=47 time=46.5 ms
64 bytes from 70.141.15.2: icmp_seq=2643 ttl=47 time=40.9 ms

Từ thứ hai:

64 bytes from 70.141.15.3: icmp_seq=631 ttl=239 time=54.7 ms
64 bytes from 70.141.15.3: icmp_seq=637 ttl=239 time=40.5 ms
64 bytes from 70.141.15.3: icmp_seq=638 ttl=239 time=40.3 ms
64 bytes from 70.141.15.3: icmp_seq=639 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=640 ttl=239 time=44.9 ms
64 bytes from 70.141.15.3: icmp_seq=641 ttl=239 time=38.4 ms
64 bytes from 70.141.15.3: icmp_seq=642 ttl=239 time=38.8 ms

Kiểm tra các giá trị TTL. Điều này có nghĩa không? Các thiết bị này nằm liền kề nhau, cắm vào modem đó thông qua các cổng chuyển đổi riêng biệt. Làm thế nào một người có thể có thêm gần 200 bước nhảy? Từ việc ping các trang web khác, tôi nhận được ấn tượng rằng TTL chỉ không được triển khai theo cách tôi nghĩ. Tôi nghi ngờ có 200 bước nhảy giữa tôi và 4.2.2.2, hoặc woot.com, nhưng tôi nhận được dưới 50 kết quả từ cả hai kết quả.

Một trong những bộ định tuyến này (bộ định tuyến có chỉ số TTL cao hơn) là của Fortinet, trong khi bộ định tuyến còn lại là một thiết bị dựa trên Linux tùy chỉnh. Tôi khá chắc chắn rằng Forti có một ngăn xếp mạng cuộn tại nhà, trong khi hộp Linux sử dụng bất cứ thứ gì đi kèm với tarball nguồn mà các nhà phát triển phần cứng đã tải xuống. Có khả năng tiếng vang ICMP được thực hiện ở dạng kỳ quái trên một trong những điều này và cố tình gửi tất cả các câu trả lời với chỉ số TTL là 50?

Tôi cũng nhận thấy rằng một trong những trang web duy nhất tôi có thể tìm thấy các câu trả lời với TTL trông có vẻ lành mạnh là slashdot và tôi có thể tưởng tượng rằng các máy chủ và bộ định tuyến của họ có thể ít hơn "bất cứ thứ gì chúng tôi tìm thấy trong nhà để xe" so với trang web trung bình, phần nào khiến tôi cảm thấy mình có thể đi đúng hướng với giả định cuối cùng đó.

Tóm lại: liệu TTL trên ping có ý nghĩa gì đáng tin cậy không?


3
Tôi đã đọc ở đâu đó rằng Windows XP và Windows 7 đặt ở đó là TTL và đối với các hệ thống Linux, chúng thường có TTL 64. Đôi khi không hoàn hảo nhưng rất hữu ích để biết.
Sean

Câu trả lời:


22

Vì vậy, không cần phải nói, không ai trên hành tinh biết có bao nhiêu nút giữa đây và đó.

Tôi biết có bao nhiêu nút. Có chính xác 16. Lý do bạn nhận được các phản hồi khác nhau là do các hệ điều hành khác nhau sử dụng các giá trị bắt đầu khác nhau cho TTL. Một số thiết bị sử dụng 255, trong khi các thiết bị khác sử dụng 63. Vì vậy, một trong những thiết bị bạn đang ping gửi trả lời với cài đặt TTL thành 255. Vào thời điểm nó quay lại với bạn, nó đã giảm xuống còn 239. Đó là 16 bước nhảy.

Thiết bị khác mà bạn ping đặt TTL thành 63. Vì vậy, khi nó đến với bạn, giá trị là 47.

255-239 = 63-47 = 16.

Nếu bạn muốn chắc chắn về số bước nhảy giữa bạn và mục tiêu, hãy sử dụng traceroute.


Cảm ơn bạn! Tôi đã đưa ra một giả định mà bây giờ tôi nhận ra là vô căn cứ (rằng gói trả về TTL theo bất kỳ cách nào được quy định bởi gói yêu cầu TTL). Một câu hỏi nữa: là 255 và 63 giá trị dựa trên tiêu chuẩn hoặc tùy ý? Đó là, tôi có thể giả định một cách an toàn rằng bất kỳ ba chữ số TTL nào bắt đầu cuộc sống là 255, v.v. không?
Daniel Thompson

3
Tôi không nghĩ có "tiêu chuẩn" về điều này. OTOH, tôi chưa bao giờ thấy một hệ thống không phải là cái này hay cái kia.
Ron Trunk

63 âm thanh như một giá trị không phổ biến cho một TTL ban đầu.
JeanPierre

2

Giá trị TTL được xác định bởi máy từ xa. Ví dụ: nếu bạn ping máy Linux, giá trị TTL ban đầu của nó là 64. Tùy thuộc vào số lượng mạng mà nó vượt qua để quay lại với bạn, thì TTL bị trừ bởi giá trị là 1. Vì vậy, nếu bạn ping 8.8.8.8, thì đó là Máy chủ tên của Google, nó có giá trị ban đầu là 128. Vào thời điểm nó quay lại với bạn, nó có thể có giá trị 121 (đối với tôi). Điều đó có nghĩa là nó đã vượt qua 7 mạng để đến với tôi và đó là một máy tính windows.

Giá trị TTL phổ biến

  • Bộ định tuyến - 255
  • Windows - 128
  • Linux-Mac - 64

0

128 - Windows, 64 - hầu hết Linux và bộ định tuyến, 60 - rất hiếm, 32 - Windows 95.

Và không ai sử dụng 63, có lẽ nó đang đánh một bộ định tuyến khác trên đường trở về.


0

thử "Tracert [ĐỊA CHỈ IP]" để xem tổng số tuyến.

Nếu hệ thống Bắt đầu ở 64 TTL thì nếu bạn TRACERT thiết bị có một bước nhảy, bạn sẽ nhận được TTL = 63.

Tôi đã thử và đó là những gì tôi nhận được. Tôi luôn tự hỏi TTL ... hmm ngầu


Điều này không trả lời câu hỏi.
Teun Vink
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.