Cách sử dụng Traceroute và MTR để chẩn đoán sự cố mạng
Giới thiệu
Một phần quan trọng của quản trị server là giám sát kết nối mạng.
Có một số công cụ rất đơn giản để sử dụng, nhưng có giá trị cần biết. Trong hướng dẫn này, ta sẽ thảo luận về cách sử dụng một công cụ có tên là traceroute
để chẩn đoán vị trí có thể xảy ra sự cố mạng.
Ta cũng sẽ xem xét một tiện ích có tên mtr
kết hợp nhiều chức năng của ping và theo dõi vào một giao diện.
Cách sử dụng Traceroute
Traceroute là một công cụ đơn giản để hiển thị đường dẫn đến một server từ xa. Đây có thể là bất cứ thứ gì từ một trang web mà bạn đang cố truy cập, đến một máy in trên mạng local của bạn.
Chương trình theo dõi được cài đặt theo mặc định trên hầu hết các bản phân phối Linux, vì vậy bạn không cần phải cài đặt nó.
Để gọi nó, ta chỉ cần cung cấp một trang web hoặc địa chỉ IP mà ta muốn khám phá:
traceroute google.com
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets
1 192.241.160.253 (192.241.160.253) 0.564 ms 0.539 ms 0.525 ms
2 192.241.164.241 (192.241.164.241) 0.487 ms 0.435 ms 0.461 ms
3 xe-3-0-6.ar2.nyc3.us.nlayer.net (69.31.95.133) 1.801 ms 1.802 ms 1.762 ms
4 144.223.28.73 (144.223.28.73) 0.583 ms 0.562 ms 0.550 ms
5 144.232.1.21 (144.232.1.21) 1.044 ms 1.048 ms 1.036 ms
6 74.125.49.212 (74.125.49.212) 0.494 ms 0.688 ms 0.643 ms
7 209.85.248.180 (209.85.248.180) 0.650 ms 209.85.248.178 (209.85.248.178) 0.621 ms 0.625 ms
8 72.14.236.208 (72.14.236.208) 0.618 ms 72.14.236.206 (72.14.236.206) 0.898 ms 72.14.236.208 (72.14.236.208) 0.872 ms
9 72.14.239.93 (72.14.239.93) 7.478 ms 7.989 ms 7.466 ms
10 72.14.232.73 (72.14.232.73) 20.002 ms 19.969 ms 19.975 ms
11 209.85.248.228 (209.85.248.228) 30.490 ms 72.14.238.106 (72.14.238.106) 34.463 ms 209.85.248.228 (209.85.248.228) 30.707 ms
12 216.239.46.54 (216.239.46.54) 42.502 ms 42.507 ms 42.487 ms
13 216.239.46.159 (216.239.46.159) 76.578 ms 74.585 ms 74.617 ms
14 209.85.250.126 (209.85.250.126) 80.625 ms 80.584 ms 78.514 ms
15 72.14.238.131 (72.14.238.131) 80.287 ms 80.560 ms 78.842 ms
16 209.85.250.228 (209.85.250.228) 171.997 ms 173.668 ms 170.068 ms
17 66.249.94.93 (66.249.94.93) 238.133 ms 235.851 ms 235.479 ms
18 72.14.233.79 (72.14.233.79) 233.639 ms 239.147 ms 233.707 ms
19 sin04s01-in-f9.1e100.net (173.194.38.137) 236.241 ms 235.608 ms 236.843 ms
Cách đọc kết quả của Traceroute
Dòng đầu tiên cho ta biết các điều kiện mà theo dõi đang hoạt động theo:
traceroute to google.com (173.194.38.137), 30 hops max, 60 byte packets
Nó cung cấp cho server lưu trữ được chỉ định, địa chỉ IP mà DNS trả về cho domain đó, số bước nhảy tối đa để kiểm tra và kích thước của gói tin sẽ được sử dụng.
Số lượng bước nhảy tối đa có thể được điều chỉnh bằng cờ -m
. Nếu server lưu trữ bạn đang cố gắng định tuyến còn cách đó hơn 30 bước, bạn có thể cần chỉ định giá trị lớn hơn tại đây. Giá trị tối đa bạn có thể đặt là 255.
traceroute -m 255 obiwan.scrye.net
Bạn có thể điều chỉnh kích thước của gói được gửi đến mỗi bước bằng cách đặt số nguyên sau tên server :
<pre>
traceroute google.com <span class = “highlight”> 70 </span>
</pre>
<pre> theo dõi tới google.com (173.194.38.128), tối đa 30 bước, <span class = “highlight”> gói 70 byte </span>
1 192.241.160.254 (192.241.160.254) 0,364 ms 0,330 ms 0,319 ms
2 192.241.164.237 (192.241.164.237) 0,284 ms 0,343 ms 0,321 ms
</pre>
Sau dòng đầu tiên, mỗi dòng tiếp theo đại diện cho một "hop" hoặc server trung gian mà lưu lượng truy cập của bạn phải đi qua để đến máy tính được đại diện bởi server mà bạn đã chỉ định.
Mỗi dòng có định dạng sau:
hop_number host_name (IP_address) packet_round_trip_times
Đây là một ví dụ về bước nhảy mà bạn có thể thấy:
3 nyk-b6-link.telia.net (62.115.35.101) 0.311 ms 0.302 ms 0.293 ms
Đây là ý nghĩa của từng trường:
hop_number : Số lượng tuần tự của số mức độ tách biệt giữa server với máy tính của bạn. Lưu lượng truy cập từ các server có số lượng cao hơn phải đi qua nhiều máy tính hơn để được định tuyến.
host_name : Trường này chứa kết quả tra cứu ngược DNS về địa chỉ IP của server , nếu có. Nếu không có thông tin nào được trả về từ truy vấn DNS ngược, địa chỉ IP sẽ được cung cấp.
IP_address : Trường này chứa địa chỉ IP cho bước nhảy mạng này.
pack_round_trip_times : Phần còn lại của dòng cung cấp thời gian khứ hồi cho một gói đến server và quay lại lần nữa. Theo mặc định, ba gói được gửi đến mỗi server và mỗi lần thử sẽ được nối vào cuối dòng.
Nếu bạn muốn thay đổi số lượng gói được kiểm tra đối với từng server , bạn có thể chỉ định một số với tùy chọn
-q
, như sau:<pre> traceroute -q1 google.com
</pre>
Nếu bạn muốn bỏ qua tra cứu DNS ngược để tăng tốc theo dõi, bạn có thể chuyển cờ -n
:
traceroute -n google.com
traceroute to google.com (74.125.235.7), 30 hops max, 60 byte packets
1 192.241.160.253 0.626 ms 0.598 ms 0.588 ms
2 192.241.164.241 2.821 ms 2.743 ms 2.819 ms
3 69.31.95.133 1.470 ms 1.473 ms 1.525 ms
Nếu lộ trình theo dõi của bạn tan thành một số dấu hoa thị (*), thì có vấn đề với đường dẫn đến server .
15 209.85.248.220 (209.85.248.220) 121.809 ms 72.14.239.12 (72.14.239.12) 76.941 ms 209.85.248.220 (209.85.248.220) 78.946 ms
16 72.14.239.247 (72.14.239.247) 101.001 ms 92.478 ms 92.448 ms
17 * * 209.85.250.124 (209.85.250.124) 175.083 ms
18 * * *
19 * * *
Vấn đề tuyến đường nghĩa là gì?
Nếu nỗ lực theo dõi của bạn dừng lại ở một bước nhảy hoặc nút cụ thể và không thể tìm thấy đường đến server , bạn đã gặp sự cố.
Mặc dù bước nhảy mà tuyến đường không quay trở lại có thể là vị trí của sự cố mạng, nhưng nó không phải lúc nào cũng dễ dàng chẩn đoán.
Do thực tế là mỗi ping đại diện cho một gói khứ hồi và tình huống mà các gói thường sử dụng các đường dẫn khác nhau theo cả hai hướng, nó có thể chỉ ra một vấn đề ở một đường hoàn toàn khác, có thể gần hơn.
Cũng có thể trường hợp đó là vấn đề xảy ra với hop trực tiếp sau khi hop cuối cùng bạn thấy. Rất khó để chẩn đoán vị trí chính xác của vấn đề trừ khi bạn có thể nhận được một lộ trình quay trở lại từ bước nhảy cụ thể đó. Điều này thường không thể thực hiện được bên ngoài mạng của bạn.
Cách sử dụng MTR
Một thay thế động cho chương trình theo dõi là mtr
. Kết hợp chức năng ping và theo dõi, mtr cho phép bạn liên tục thăm dò một server từ xa và xem độ trễ và hiệu suất thay đổi như thế nào theo thời gian.
Không giống như traceroute, mtr không được cài đặt theo mặc định trên hầu hết các hệ thống. Bạn có thể lấy nó bằng lệnh các lệnh sau.
Ubuntu / Debian:
sudo apt-get install mtr
CentOS / Fedora:
yum install mtr
Vòm:
pacman -S mtr
Sau khi nó được cài đặt, bạn có thể gọi nó bằng lệnh :
mtr google.com
My traceroute [v0.80]
traceroute (0.0.0.0) Tue Oct 22 20:39:42 2013
Resolver: Received error response 2. (server failure)er of fields q
uit Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.241.160.253 0.0% 371 0.4 0.6 0.1 14.3 1.0
2. 192.241.164.241 0.0% 371 7.4 2.5 0.1 37.5 4.8
3. xe-3-0-6.ar2.nyc3.us. 2.7% 371 3.6 2.6 1.1 5.5 1.1
4. sl-gw50-nyc-.sprintli 0.0% 371 0.7 5.0 0.1 82.3 13.1
Mặc dù kết quả có thể trông giống nhau, nhưng lợi thế lớn hơn theo dõi là kết quả được cập nhật liên tục. Điều này cho phép bạn tích lũy các xu hướng và mức trung bình, đồng thời cho phép bạn xem hiệu suất mạng thay đổi như thế nào theo thời gian.
Nếu bạn chạy một tuyến theo dõi, có khả năng các gói được gửi đến mỗi bước nhảy đã xảy ra để thực hiện chuyến đi mà không có sự cố, ngay cả trong tình huống tuyến bị mất gói không liên tục. Tiện ích mtr cho phép bạn theo dõi tình huống này bằng cách thu thập dữ liệu trong một phạm vi thời gian rộng hơn.
Cũng có thể chạy mtr với tùy chọn --report
, tùy chọn này sẽ trả về kết quả của việc gửi 10 gói cho mỗi bước nhảy.
mtr --report google.com
HOST: traceroute Loss% Snt Last Avg Best Wrst StDev
1.|-- 192.241.160.254 0.0% 10 1.5 0.9 0.4 1.5 0.4
2.|-- 192.241.164.237 0.0% 10 0.6 0.9 0.4 2.7 0.7
3.|-- nyk-b6-link.telia.net 0.0% 10 0.5 0.5 0.2 0.7 0.2
4.|-- nyk-bb2-link.telia.net 0.0% 10 67.5 18.5 0.8 87.3 31.8
Điều này có thể hữu ích khi bạn không nhất thiết muốn đo lường trong thời gian thực, nhưng bạn muốn có phạm vi dữ liệu lớn hơn so với quy trình theo dõi cung cấp.
Kết luận
Với traceroute và mtr, bạn có thể biết server nào trên đường đến domain hoặc địa chỉ cụ thể đang gây ra sự cố. Điều này có thể hữu ích khi khắc phục sự cố mạng nội bộ và cũng như khi cố gắng cung cấp thông tin để hỗ trợ các thành viên hoặc ISP khi bạn gặp sự cố mạng.
<div class = “author”> Bởi Justin Ellingwood </div>
Các tin liên quan