Traceroute hoạt động như thế nào? Vì sao một lệnh đơn giản lại giúp chẩn đoán mạng mạnh đến vậy?
Khi ping thất bại, câu hỏi tiếp theo luôn là:
Đó là lúc traceroute phát huy tác dụng.
Traceroute là gì?
Traceroute là công cụ khám phá từng hop (router) mà packet đi qua từ source tới destination.
Ví dụ:
traceroute 192.168.3.1
Kết quả có thể hiện:
1 192.168.1.254
2 192.168.2.2
3 192.168.2.3
4 192.168.3.1
Điều này cho biết packet đi qua 3 router trung gian trước khi tới đích.
Cơ chế hoạt động phía sau: TTL chính là chìa khóa
Traceroute dựa vào trường TTL (Time To Live) trong IP header.
Mỗi router forwarding sẽ:
Traceroute lợi dụng điều này. Probe 1
Gửi packet TTL=1
=> Ta biết hop đầu tiên.
Probe 2
Gửi packet TTL=2
=> Biết hop thứ hai.
Tiếp tục như vậy đến đích.
Khi packet tới destination:
Đây là tín hiệu “đã tới đích”.
Tài liệu page 2–6 mô tả rất rõ cơ chế này ở mức Wireshark capture.
Windows vs Linux vs Cisco IOS khác nhau ra sao?
Windows (tracert)
Dùng ICMP Echo Request.
tracert 192.168.3.1
Mỗi hop gửi 3 probes.
Ví dụ:
1 1 ms 1 ms 1 ms 192.168.1.254
Linux (traceroute)
Mặc định dùng UDP.
traceroute 192.168.3.1
Destination thường trả:
ICMP Port Unreachable
Tài liệu page 7-9 minh họa rõ increment destination port 33434, 33435… rất quan trọng cho CCNA/CCNP.
Cisco IOS
traceroute 192.168.3.1
Mặc định cũng dùng UDP.
Có thể chọn:
traceroute ip
traceroute ipv6
traceroute source loopback0
Cực kỳ hữu ích khi troubleshoot asymmetric routing hoặc MPLS VPN.
Traceroute giúp gì khi Troubleshooting?
1. Destination Unreachable
Ví dụ:
* * *
Không có phản hồi.
Có thể do:
Trong lab của tài liệu, thêm static route là traceroute đi tiếp được. (page 11–13)
2. Source Unreachable
Rất nhiều người chỉ kiểm tra đường đi tới destination.
Nhưng traceroute còn giúp phát hiện return path lỗi.
Ví dụ source loopback không được route back.
Đây là vấn đề rất hay gặp trong:
Dấu * * * có luôn là lỗi không?
Không hẳn.
Ví dụ:
3 * * *
4 10.1.1.1
Hop 3 có thể chỉ:
Nhưng forwarding vẫn hoạt động.
Đây là lỗi đọc traceroute rất phổ biến.
Khi traceroute đặc biệt hữu ích
Nó cực kỳ mạnh khi xử lý:
Kết hợp:
ping
traceroute
mtr
show ip route
show cef
sẽ rất mạnh.
Một insight hay cho người học CCNA/CCNP
Traceroute thực ra là bài thực hành sống động của:
Một lệnh nhỏ nhưng chạm vào rất nhiều nền tảng của IP networking.
Ai hiểu sâu traceroute thường hiểu sâu IP forwarding.
Kết luận
Ping chỉ trả lời:
“Có tới được hay không?”
Traceroute trả lời:
“Đi qua đâu để tới đó?”
Đó là khác biệt giữa kiểm tra connectivity và thực sự troubleshooting.
Khi ping thất bại, câu hỏi tiếp theo luôn là:
- Gói tin chết ở đâu?
- Router nào trên đường đi đang có vấn đề?
- Đích unreachable hay tuyến đường bị lỗi ở giữa?
Đó là lúc traceroute phát huy tác dụng.
Traceroute là gì?
Traceroute là công cụ khám phá từng hop (router) mà packet đi qua từ source tới destination.
Ví dụ:
traceroute 192.168.3.1
Kết quả có thể hiện:
1 192.168.1.254
2 192.168.2.2
3 192.168.2.3
4 192.168.3.1
Điều này cho biết packet đi qua 3 router trung gian trước khi tới đích.
Cơ chế hoạt động phía sau: TTL chính là chìa khóa
Traceroute dựa vào trường TTL (Time To Live) trong IP header.
Mỗi router forwarding sẽ:
- Giảm TTL đi 1
- Nếu TTL = 0 → drop packet
- Gửi lại ICMP Time Exceeded
Traceroute lợi dụng điều này. Probe 1
Gửi packet TTL=1
- Router đầu tiên giảm còn 0
- Drop packet
- Trả về ICMP Time Exceeded
=> Ta biết hop đầu tiên.
Probe 2
Gửi packet TTL=2
- Router đầu giảm còn 1
- Router thứ hai giảm còn 0
- Trả ICMP Time Exceeded
=> Biết hop thứ hai.
Tiếp tục như vậy đến đích.
Khi packet tới destination:
- Windows dùng ICMP Echo Reply
- Linux/Cisco thường dùng UDP high port và nhận ICMP Port Unreachable
Đây là tín hiệu “đã tới đích”.
Tài liệu page 2–6 mô tả rất rõ cơ chế này ở mức Wireshark capture.
Windows vs Linux vs Cisco IOS khác nhau ra sao?
Windows (tracert)
Dùng ICMP Echo Request.
tracert 192.168.3.1
Mỗi hop gửi 3 probes.
Ví dụ:
1 1 ms 1 ms 1 ms 192.168.1.254
Linux (traceroute)
Mặc định dùng UDP.
traceroute 192.168.3.1
Destination thường trả:
ICMP Port Unreachable
Tài liệu page 7-9 minh họa rõ increment destination port 33434, 33435… rất quan trọng cho CCNA/CCNP.
Cisco IOS
traceroute 192.168.3.1
Mặc định cũng dùng UDP.
Có thể chọn:
traceroute ip
traceroute ipv6
traceroute source loopback0
Cực kỳ hữu ích khi troubleshoot asymmetric routing hoặc MPLS VPN.
Traceroute giúp gì khi Troubleshooting?
1. Destination Unreachable
Ví dụ:
* * *
Không có phản hồi.
Có thể do:
- Missing route
- ACL drop
- Firewall block ICMP
- Routing loop
Trong lab của tài liệu, thêm static route là traceroute đi tiếp được. (page 11–13)
2. Source Unreachable
Rất nhiều người chỉ kiểm tra đường đi tới destination.
Nhưng traceroute còn giúp phát hiện return path lỗi.
Ví dụ source loopback không được route back.
Đây là vấn đề rất hay gặp trong:
- BGP multihoming
- MPLS CE-PE
- VRF route leaking
Dấu * * * có luôn là lỗi không?
Không hẳn.
Ví dụ:
3 * * *
4 10.1.1.1
Hop 3 có thể chỉ:
- Rate-limit ICMP
- Control plane policing
- Router không phản hồi TTL Exceeded
Nhưng forwarding vẫn hoạt động.
Đây là lỗi đọc traceroute rất phổ biến.
Khi traceroute đặc biệt hữu ích
Nó cực kỳ mạnh khi xử lý:
- MTU blackhole
- Asymmetric routing
- MPLS path visibility
- ISP peering issues
- QoS latency per hop
- Firewall drop xác định ở hop nào
Kết hợp:
ping
traceroute
mtr
show ip route
show cef
sẽ rất mạnh.
Một insight hay cho người học CCNA/CCNP
Traceroute thực ra là bài thực hành sống động của:
- TTL
- ICMP
- UDP
- Routing logic
- Control plane messaging
Một lệnh nhỏ nhưng chạm vào rất nhiều nền tảng của IP networking.
Ai hiểu sâu traceroute thường hiểu sâu IP forwarding.
Kết luận
Ping chỉ trả lời:
“Có tới được hay không?”
Traceroute trả lời:
“Đi qua đâu để tới đó?”
Đó là khác biệt giữa kiểm tra connectivity và thực sự troubleshooting.