Sử dụng lệnh traceroute để bắt lỗi

Một phần của tài liệu Cấu hình mạng máy tính và bắt lỗi (Trang 39 - 40)

Lệnh traceroute được sử dụng để xem được con đường mà gói dữ liệu được truyền đi đến đích. Lệnh traceroute còn được sử dụng để kiểm tra kết nối Lớp mạng (Lớp 3) từ hop này đến hop kia (hop: là bước truyền. Trong một mạng chuyển mạch gói được kết nối bằng các bộ định tuyến, như các mạng TCP/IP và Internet. Một hop là một bước nhảy một gói dữ liệu thực hiện từ một bộ định tuyến đến bộ định tuyến kế tiếp) và để so sánh hoạt động của mạng.

Kết quả của lệnh traceroute sẽ hiển thị một danh sách các hop mà gói dữ liệu đã đi qua được. Do đó, nếu dữ liệu truyền đến đích thành công thì kết quả sẽ liệt kê đầy đủ tất cả các Router mà gói dữ liệu đã qua. Chúng ta có thể lưu giữ kết quả này lại để sử dụng khi có sự cố xảy ra ở tương lai.

Lệnh traceroute cũng sẽ cho biết là sự cố xảy ra ở hop nào. Với mỗi Router mà gói dữ liệu đi qua, lệnh traceroute sẽ hiển thị ra một dòng thông tin cho biết địa chỉ IP của cổng mà gói dữ liệu được Router nhận vào. Nếu không hiện ra dòng thông tin này mà thay vào đó là các dấu sao (*) thì có nghĩa là gói dữ liệu đã bị sự cố. Lấy địa chỉ IP của dòng thông tin cuối cùng nhận được đem đối chiếu với sơ đồ cấu trúc mạng, chúng ta có thể xác định được phạm vi xảy ra sự cố.

Lệnh traceroute còn cung cấp thông tin phản ánh hoạt động của đường truyền. Đó là thông tin về thời gian hành trình (Round trip time – RTT), RTT là thời gian tính từ lúc gửi đi một gói cho đến khi nhận được gói trả lời. Dựa vào thông tin này chúng ta có thể ước lượng được độ trễ của đường truyền. Tuy nhiên con số này chưa đủ chính xác để chúng ta đánh giá chính xác sự hoạt động của đường truyền. Mặc dù vậy chúng ta vẫn nên lưu giữ lại kết quả của lệnh traceroute để sau này có thể sử dụng khi xử lý sự cố về hoạt động của hệ thống mạng nếu có.

Lưu ý rằng thiết bị nhận được gói dữ liệu của lệnh traceroute cũng phải gửi được gói trả lời lại cho máy nguồn. Do đó để cho lệnh traceroute và lệnh ping thực hiện hiện thành công thì đường truyền phải thông cả hai chiều. Không nhận được gói trả lời không có nghĩa là sự cố xảy ra mà có thể là do thông điệp ICMP bị chặn ở một host. Điều này rất hay gặp đối với Internet.

Lệnh traceroute thực hiện gửi đi các gói UDP (User Datagram protocol) tới một port không hoạt động trên máy đích. Đầu tiên, máy nguồn phát đi 3 gói với Time€to€ Live (TTL) được đặt bằng 1. Vì TTL=1 nên các gói này chỉ đến được Router đầu tiên rồi bị Router này hủy bỏ vì sau khi trừ đi 1 thì TTL=0. Khi đó, Router đầu tiên này gửi lại cho máy nguồn thông điệp ICMPTime Exceeded để thông báo là các gói dữ liệu bị hủy bỏ vì hết thời hạn TTL.

Tiếp theo máy nguồn phát đi 3 gói khác với TTL được đặt bằng 2. Với giá trị TTL này, các gói dữ liệu sẽ đến được Router thứ 2 trên đường truyền. Tương tự như Router trước, Router này cũng sẽ hủy bỏ gói dữ liệu vì hết thời hạn TTL rồi gửi gói ICMP Time Exceeded lại cho máy nguồn. Quá trình tương tự tiếp tục cho đến khi gói dữ liệu đến được máy đích.

Khi đến máy đích, các gói dữ liệu này có port đích là một port không hoạt động nên máy đích sẽ gửi lại cho máy nguồn một thông điệp ICMP Port Unreachable chứ không phải là thông điệp ICMP Port Reachable sẽ thông báo cho máy nguồn biết là không kết nối được vào port đích và đồng thời báo hiệu cho quá trình traceroute kết thúc.

Một phần của tài liệu Cấu hình mạng máy tính và bắt lỗi (Trang 39 - 40)