Khái niệm chung
Lệnh Traceroute, còn được gọi là tracert trong Windows, là một công cụ chẩn đoán mạng được sử dụng để theo dõi đường dẫn mà gói dữ liệu đi từ nguồn đến đích cuối cùng trên Internet. Công cụ này rất hữu ích để xác định các sự cố mạng có thể xảy ra, chẳng hạn như độ trễ cao hoặc gói bị mất.
Trong quá trình dò tìm tuyến đường, lệnh Traceroute sẽ gửi một loạt gói dữ liệu qua mạng và mỗi gói bao gồm một số TTL (Thời gian tồn tại) bắt đầu bằng giá trị 1. Mỗi lần một gói đến một nút trên mạng, nút sẽ giảm giá trị TTL đi 1 trước khi chuyển tiếp gói. Khi giá trị TTL đạt 0, gói sẽ bị loại bỏ và nút sẽ gửi thông báo “vượt quá thời gian” đến nguồn, cho biết rằng gói không thể đến đích và đã vượt quá thời gian cho phép.
Lệnh Traceroute lặp lại quá trình này cho từng nút trên tuyến cho đến khi gói đến đích cuối cùng. Khi kết thúc quá trình, lệnh Traceroute hiển thị danh sách các nút trên tuyến, cùng với địa chỉ IP của mỗi nút và thời gian phản hồi để gói tin đến được nút đó.
Trình tự gói chi tiết
Hoạt động chi tiết của lệnh Traceroute có thể được thể hiện như sau:
- Lệnh Traceroute gửi gói dữ liệu có giá trị TTL ban đầu là 1 đến đích cuối cùng.
- Nút đầu tiên trên đường dẫn gói sẽ nhận gói, giảm giá trị TTL đi 1 và gửi phản hồi “TTL đã hết hạn” tới nguồn.
- Nguồn gốc sẽ nhận được phản hồi “vượt quá thời gian” và ghi lại địa chỉ IP của nút đầu tiên.
- Lệnh Traceroute sẽ gửi một gói dữ liệu khác có giá trị TTL là 2 đến đích cuối cùng.
- Nút thứ hai trên đường dẫn gói sẽ nhận gói, giảm giá trị TTL đi 1 và gửi phản hồi “vượt quá thời gian” tới nguồn.
- Nguồn gốc sẽ nhận được phản hồi “vượt quá thời gian” và ghi lại địa chỉ IP của nút thứ hai.
- Quá trình này sẽ được lặp lại cho mỗi nút trong đường dẫn của gói, tăng giá trị TTL trong mỗi lần lặp cho đến khi gói đến đích cuối cùng.
- Khi gói đến đích cuối cùng, lệnh Traceroute sẽ hiển thị đường dẫn đầy đủ của gói, bao gồm địa chỉ IP và thời gian phản hồi của từng nút trên tuyến.
Lệnh trong MikroTik RouterOS là gì
Để biết ví dụ về cách sử dụng lệnh Traceroute trên Mikrotik RouterOS, bạn có thể thực hiện các bước sau:
Truy cập giao diện bộ định tuyến Mikrotik và mở bảng điều khiển lệnh.
Nhập lệnh Traceroute theo sau là địa chỉ IP hoặc tên miền của đích mà bạn muốn theo dõi tuyến đường. Ví dụ: để theo dõi đường dẫn đến trang web Google, bạn có thể sử dụng lệnh sau:
[admin@MikroTik] > tool traceroute google.com
Đợi quá trình dò tìm tuyến đường hoàn tất. Tùy thuộc vào số lượng nút trên đường dẫn và độ trễ của mạng, quá trình này có thể mất vài giây hoặc vài phút.
Xem lại kết quả của lệnh Traceroute. Đầu ra của lệnh sẽ hiển thị danh sách tất cả các nút trên đường dẫn đến đích, cùng với địa chỉ IP của mỗi nút và thời gian phản hồi cần thiết để đến được nút đó. Ví dụ:
ADDRESS STATUS
1 192.168.1.1 1ms 1ms 1ms
2 10.0.0.1 5ms 5ms 5ms
3 200.10.0.1 10ms 10ms 10ms
4 200.10.1.1 15ms 15ms 15ms
5 200.10.2.1 20ms 20ms 20ms
6 200.10.3.1 25ms 25ms 25ms
7 8.8.8.8 30ms 30ms 30ms
[admin@MikroTik] >
Trong ví dụ này, bạn có thể thấy gói dữ liệu được truyền qua sáu nút khác nhau trước khi đến đích cuối cùng (8.8.8.8).
Sự khác biệt giữa Linux Traceroute và Windows Tracert
Có một số khác biệt chính giữa hai lệnh:
Cú pháp lệnh: Cú pháp của lệnh Traceroute Linux và lệnh Windows Tracert hơi khác một chút. Trên Linux, lệnh được viết là “traceroute”, trong khi trên Windows nó được viết là “tracert”.
Tùy chọn lệnh: Lệnh Traceroute Linux và lệnh Windows Tracert có các tùy chọn lệnh khác nhau. Ví dụ: trên Linux, lệnh Traceroute hỗ trợ các tùy chọn như -I để chỉ định việc sử dụng ICMP thay vì UDP, trong khi trên Windows, lệnh Tracert hỗ trợ các tùy chọn như -h để chỉ định số bước nhảy tối đa.
Định dạng đầu ra: Định dạng đầu ra của lệnh Linux Traceroute và lệnh Windows Tracert cũng khác nhau. Trên Linux, lệnh Traceroute hiển thị địa chỉ IP và thời gian phản hồi của từng nút trên tuyến, trong khi trên Windows, lệnh Tracert hiển thị tên của từng nút và thời gian phản hồi.
chức năng nâng cao: Lệnh Traceroute của Linux có khả năng thực hiện các dấu vết tuyến đường nâng cao hơn, chẳng hạn như dấu vết tuyến đường ngược và dấu vết đa đường. Ngoài ra, lệnh Traceroute của Linux có khả năng tùy chỉnh cao hơn lệnh Windows Tracert, cho phép người dùng chỉ định kích thước cổng và gói.
Tóm lại, mặc dù cả hai lệnh đều giống nhau về chức năng cơ bản nhưng có một số khác biệt đáng kể về cú pháp lệnh, tùy chọn lệnh, định dạng đầu ra và chức năng nâng cao.
Ví dụ về lệnh trong Linux
traceroute google.com
1 192.168.1.1 (192.168.1.1) 1.107 ms 1.237 ms 1.353 ms
2 10.255.255.1 (10.255.255.1) 14.527 ms 14.622 ms 14.719 ms
3 172.16.1.1 (172.16.1.1) 25.817 ms 25.912 ms 26.005 ms
4 172.16.2.1 (172.16.2.1) 38.320 ms 38.414 ms 38.505 ms
5 203.208.222.125 (203.208.222.125) 38.601 ms 37.301 ms 37.392 ms
6 72.14.195.12 (72.14.195.12) 60.225 ms 60.318 ms 60.415 ms
7 108.170.247.65 (108.170.247.65) 61.424 ms 61.511 ms 61.605 ms
8 108.170.235.225 (108.170.235.225) 62.719 ms 62.814 ms 62.908 ms
9 108.170.232.193 (108.170.232.193) 63.016 ms 63.103 ms 63.197 ms
10 74.125.244.16 (74.125.244.16) 63.300 ms 63.386 ms 63.480 ms
11 172.253.50.138 (172.253.50.138) 64.685 ms 64.781 ms 64.877 ms
12 172.253.66.7 (172.253.66.7) 65.122 ms 65.217 ms 65.314 ms
13 172.253.50.246 (172.253.50.246) 66.493 ms 66.587 ms 66.680 ms
14 74.125.252.128 (74.125.252.128) 66.879 ms 66.965 ms 67.058 ms
15 216.58.214.142 (216.58.214.142) 67.252 ms 67.365 ms 67.454 ms
Ví dụ về lệnh trong Windows
tracert google.com
Tracing route to google.com [172.217.12.142]
over a maximum of 30 hops:
1 1 ms 1 ms 1 ms 192.168.1.1
2 17 ms 17 ms 18 ms 10.255.255.1
3 27 ms 27 ms 27 ms 172.16.1.1
4 40 ms 40 ms 40 ms 172.16.2.1
5 38 ms 37 ms 37 ms 203.208.222.125
6 59 ms 59 ms 59 ms 108.170.247.65
7 61 ms 61 ms 61 ms 108.170.235.225
8 63 ms 63 ms 63 ms 108.170.232.193
9 64 ms 64 ms 64 ms 74.125.244.16
10 67 ms 67 ms 67 ms 172.253.50.138
11 67 ms 67 ms 67 ms 172.253.66.7
12 69 ms 69 ms 69 ms 172.253.50.246
13 66 ms 66 ms 66 ms 74.125.252.128
14 66 ms 66 ms 66 ms 216.58.214.142
Trace complete.
Cái nào tốt hơn?
Nói chung, cả hai lệnh (traceroute
y tracert
) rất hữu ích để theo dõi các sự cố mạng và chẩn đoán sự cố kết nối. Việc chọn sử dụng cái nào sẽ phụ thuộc vào hệ điều hành và sở thích cá nhân.
Về đặc điểm cụ thể, traceroute
trên Linux cung cấp nhiều tùy chọn và tính năng nâng cao hơn tracert
trên Windows, chẳng hạn như hỗ trợ các giao thức UDP và TCP cũng như khả năng tùy chỉnh thời gian chờ và số bước nhảy. Tuy nhiên, tracert
trên Windows, nó dễ sử dụng hơn và có thể cung cấp thông tin rõ ràng hơn, dễ đọc hơn trong một số trường hợp.
Tóm lại, cả hai công cụ đều có điểm mạnh và điểm yếu, việc chọn cái này hay cái kia sẽ phụ thuộc vào mục đích sử dụng cụ thể và sở thích cá nhân.