Danh mục sản phẩm
Bài 47: Định Tuyến Động Là Gì — Distance Vector vs Link State
💡 Liên hệ thực tế
Ở Bài 44-46, bạn đã thành thạo Static Route — tự tay khai báo từng đường đi. Nhưng hãy tưởng tượng VNExperts có 50 Router trải khắp các chi nhánh — nếu chỉ dùng Static Route, mỗi khi thêm 1 chi nhánh mới hoặc 1 đường dây bị đứt, quản trị viên phải cập nhật thủ công trên tất cả 50 Router. Đây chính là giới hạn lớn nhất của Static Route ở quy mô lớn.
🔄 Định tuyến động (Dynamic Routing) giải quyết đúng vấn đề này — các Router tự động trao đổi thông tin với nhau, tự xây dựng và cập nhật Routing Table mà không cần con người can thiệp mỗi lần có thay đổi.
📘 Kiến thức cốt lõi
⚖️ So sánh Static Route và Dynamic Routing:
| Tiêu chí | Static Route | Dynamic Routing |
|---|---|---|
| Cách xây dựng Routing Table | Quản trị viên tự tay khai báo | Router tự động trao đổi thông tin |
| Khả năng tự thích ứng khi mạng thay đổi | Không — cần cập nhật thủ công | Có — tự động phát hiện và cập nhật |
| Độ phù hợp về quy mô | Mạng nhỏ, ít thay đổi | Mạng lớn, thường xuyên thay đổi |
| Tài nguyên tiêu tốn | Không tốn thêm CPU/băng thông | Tốn thêm CPU và băng thông để trao đổi thông tin định tuyến |
| Administrative Distance | Thấp (1) — rất được tin tưởng | Tùy giao thức (cao hơn Static, ví dụ OSPF = 110) |
⚖️ Administrative Distance (AD) là gì?
Khi Routing Table nhận được thông tin về cùng 1 mạng đích từ nhiều nguồn khác nhau (ví dụ vừa có Static Route, vừa có OSPF, vừa có EIGRP cùng chỉ đến 1 mạng), Router cần 1 tiêu chí để quyết định tin nguồn nào hơn. Đó chính là vai trò của Administrative Distance — một con số từ 0 đến 255, thể hiện mức độ "đáng tin cậy" của từng nguồn thông tin định tuyến. AD càng thấp, càng được ưu tiên đưa vào Routing Table.
| Nguồn định tuyến | Administrative Distance (AD) |
|---|---|
| Connected (mạng đấu trực tiếp vào Router) | 0 |
| Static Route | 1 |
| EIGRP (nội bộ) | 90 |
| OSPF | 110 |
| IS-IS | 115 |
| RIP | 120 |
| Unknown / không xác định | 255 (không bao giờ được dùng) |
🎯 Ví dụ: nếu cùng 1 mạng đích
192.168.10.0/24vừa được khai báo bằng Static Route (AD=1), vừa được học qua OSPF (AD=110), Router sẽ ưu tiên Static Route vì AD thấp hơn — bất kể đường đi qua OSPF có ngắn hơn hay không. Đây chính là lý do Static Route mặc định luôn "thắng" các giao thức định tuyến động nếu không có cấu hình gì đặc biệt (như Floating Static Route đã học ở Bài 45, dùng để cố tình đẩy AD cao hơn nhằm nhường quyền ưu tiên cho Dynamic Routing).
📎 Phân biệt AD với Metric: AD dùng để so sánh giữa các nguồn/giao thức khác nhau (Static vs OSPF vs EIGRP...), còn Metric (ví dụ hop count của RIP, Cost của OSPF - học ở bài 48) dùng để so sánh giữa nhiều đường đi trong cùng 1 giao thức. Router luôn xét AD trước — chỉ khi AD bằng nhau mới xét tiếp đến Metric.
🗺️ 2 trường phái chính của giao thức định tuyến động:
📏 Distance Vector — "hỏi hàng xóm, không tự vẽ bản đồ toàn cảnh":
Mỗi Router chỉ biết thông tin cơ bản: "Muốn đến mạng X, đi hướng nào, và cách bao xa (bao nhiêu chặng — hop count)" — dựa hoàn toàn vào những gì hàng xóm trực tiếp báo lại, không có "cái nhìn toàn cảnh" về cấu trúc mạng. Ví dụ tiêu biểu: RIP (Routing Information Protocol) — giao thức cũ, ít dùng trong thực tế hiện đại nhưng vẫn xuất hiện trong đề thi CCNA ở mức khái niệm.
🗺️ Link State — "mỗi Router tự vẽ ra toàn bộ bản đồ mạng":
Mỗi Router thu thập thông tin về toàn bộ cấu trúc mạng (không chỉ từ hàng xóm trực tiếp), tự xây dựng 1 "bản đồ" đầy đủ, sau đó tự tính toán ra đường đi ngắn nhất từ bản đồ đó. Ví dụ tiêu biểu và cũng là giao thức trọng tâm của CCNA: OSPF (Open Shortest Path First) — sẽ học chi tiết từ Bài 48 trở đi.
🎯 Ẩn dụ dễ nhớ để phân biệt 2 trường phái:
Distance Vector giống như hỏi đường từng người dân dọc đường đi: "Từ đây đến chợ đi hướng nào, xa không?" — bạn tin tưởng câu trả lời của người ngay trước mặt mà không tự kiểm chứng toàn bộ tuyến đường.
Link State giống như bạn tự mua 1 tấm bản đồ đầy đủ toàn thành phố, tự nhìn vào bản đồ và tính ra đường ngắn nhất — không cần hỏi ai, vì bạn đã có "cái nhìn toàn cảnh".
| Distance Vector | Link State | |
|---|---|---|
| Nguồn thông tin | Chỉ từ hàng xóm trực tiếp | Toàn bộ cấu trúc mạng |
| Tốc độ hội tụ khi có thay đổi | Chậm hơn | Nhanh hơn |
| Yêu cầu tài nguyên (CPU, RAM) | Thấp hơn | Cao hơn (cần lưu và xử lý toàn bộ bản đồ) |
| Ví dụ giao thức | RIP | OSPF, IS-IS |
📎 EIGRP nằm ở đâu trong 2 trường phái này? EIGRP (Enhanced Interior Gateway Routing Protocol) do Cisco phát triển, thường bị xếp nhầm chung với RIP vào nhóm Distance Vector thuần túy — nhưng thực chất EIGRP là Advanced Distance Vector (hybrid): vẫn dựa trên thông tin từ hàng xóm trực tiếp như Distance Vector, nhưng dùng thuật toán DUAL (Diffusing Update Algorithm) để hội tụ nhanh hơn nhiều so với Distance Vector cổ điển như RIP, gần tiệm cận tốc độ của Link State. Ở cấp CCNA 200-301 hiện tại, EIGRP không còn là nội dung cấu hình bắt buộc trong đề thi (trọng tâm chính là OSPF) — nhưng vẫn cần nhớ Administrative Distance mặc định của EIGRP là 90, thấp hơn (đáng tin cậy hơn) OSPF (110), vì đây là kiến thức nền tảng hay được hỏi dưới dạng so sánh AD giữa các giao thức.
💡 CCNA 200-301 tập trung chủ yếu vào OSPF (Link State) vì đây là giao thức phổ biến nhất trong mạng doanh nghiệp thực tế hiện nay — RIP chỉ còn xuất hiện ở mức khái niệm để so sánh, hiếm khi triển khai mới trong hệ thống hiện đại.
🔍 TTL & Traceroute — "nhìn thấy" từng chặng Router mà gói tin đi qua
Quay lại ví dụ 50 Router của VNExperts ở đầu bài: khi 1 gói tin đi từ chi nhánh này sang chi nhánh khác, nó có thể phải đi qua nhiều Router trung gian — mỗi Router đó gọi là 1 hop (chặng). Làm sao để biết chính xác gói tin đã đi qua bao nhiêu chặng, và chặng nào đang gây chậm trễ hoặc đứt kết nối? Đây là lúc 2 công cụ gắn liền với ICMP (đã học ở Bài 20) phát huy tác dụng.
⏳ TTL (Time To Live) là 1 trường trong IP header, mang giá trị số nguyên (thường mặc định 64, 128 tùy hệ điều hành). Mỗi khi gói tin đi qua 1 Router, Router đó sẽ trừ TTL đi 1 trước khi chuyển tiếp. Nếu TTL giảm về 0 mà gói tin vẫn chưa đến đích, Router hiện tại sẽ hủy gói tin và gửi ngược lại nguồn 1 thông điệp ICMP Time Exceeded, báo rằng gói tin đã "hết hạn sử dụng" trước khi đến nơi.
🎯 TTL không phải đơn vị thời gian thực (giây/phút) như tên gọi dễ gây hiểu lầm — nó là bộ đếm số chặng tối đa, tồn tại chủ yếu để tránh gói tin bị kẹt lặp vô hạn trong mạng nếu routing table có cấu hình sai gây loop.
🗺️ Traceroute — lợi dụng chính cơ chế TTL để "vẽ" ra đường đi:
Lệnh traceroute (Linux/macOS) hoặc tracert (Windows) khai thác đúng cơ chế TTL ở trên theo cách rất khéo léo:
- Gửi gói tin đầu tiên với TTL = 1 → Router đầu tiên nhận, trừ TTL về 0, hủy gói và trả về ICMP Time Exceeded — từ đó nguồn biết được Router #1 trên đường đi.
- Gửi tiếp gói tin với TTL = 2 → gói tin qua được Router #1 (TTL còn 1), đến Router #2 thì TTL về 0, Router #2 trả về Time Exceeded — biết được Router #2.
- Lặp lại, tăng dần TTL = 3, 4, 5... cho đến khi gói tin cuối cùng đến được đích thật sự (nhận ICMP Echo Reply thay vì Time Exceeded) — từ đó dựng được toàn bộ danh sách Router trung gian theo đúng thứ tự gói tin đã đi qua.
C:\> tracert 8.8.8.8 1 2 ms 1 ms 1 ms 192.168.1.1 2 8 ms 7 ms 9 ms 10.10.0.1 3 15 ms 14 ms 16 ms 203.0.113.1 4 18 ms 17 ms 18 ms 8.8.8.8
📎 Nhìn vào kết quả trên: mỗi dòng là 1 hop, cột đầu là số thứ tự Router, 3 cột thời gian là 3 lần đo RTT đến đúng Router đó (đo bằng cùng cơ chế ICMP Echo Request/Reply đã học ở Bài 20). Đây chính là công cụ troubleshooting quan trọng bậc nhất khi cần xác định chặng nào trong hành trình đang gây chậm trễ hoặc mất kết nối — thay vì chỉ biết "không ping được tới đích" mà không rõ đứt ở đâu.
💬 Hỏi & Đáp nhanh
❓ Dynamic Routing có hoàn toàn thay thế được Static Route trong thực tế không?
❌ Không hoàn toàn — nhiều hệ thống thực tế kết hợp cả hai: dùng Dynamic Routing (OSPF) cho phần lớn mạng nội bộ phức tạp, nhưng vẫn giữ Static Route (hoặc Default Route) cho các trường hợp đơn giản, cố định như đường ra Internet — đúng tinh thần đã học ở Bài 45 về Floating Static Route.
❓ Vì sao Link State hội tụ nhanh hơn Distance Vector khi mạng có thay đổi?
✅ Vì mỗi Router chạy Link State đã có sẵn bản đồ đầy đủ của toàn mạng — khi có thay đổi (ví dụ 1 đường bị đứt), Router chỉ cần cập nhật đúng phần bản đồ bị ảnh hưởng và tính lại đường đi ngay lập tức. Ngược lại, Distance Vector phải chờ thông tin "truyền tai nhau" tuần tự qua từng Router láng giềng, mất nhiều thời gian hơn để toàn mạng đồng bộ lại thông tin mới.
❓ Nếu Link State tốt hơn về mọi mặt, vì sao RIP (Distance Vector) vẫn còn được nhắc đến trong CCNA?
✅ RIP được giữ lại trong chương trình học chủ yếu vì giá trị lịch sử và khái niệm nền tảng — hiểu rõ hạn chế của Distance Vector giúp bạn hiểu sâu hơn vì sao Link State (OSPF) ra đời và được ưu tiên. Trong thực tế triển khai mới hiện nay, RIP hầu như không còn được chọn cho hệ thống doanh nghiệp.
❓ Vậy EIGRP có còn cần học kỹ để đi thi không?
✅ Không cần học cấu hình chi tiết — blueprint CCNA 200-301 hiện tại chỉ tập trung cấu hình sâu vào OSPF. Với EIGRP, chỉ cần nhớ đây là giao thức hybrid (Advanced Distance Vector) của Cisco và Administrative Distance mặc định là 90 là đủ cho mức yêu cầu hiện tại của kỳ thi.
❓ ping và traceroute khác nhau ở điểm nào, khi nào nên dùng cái nào?
✅ ping chỉ cho biết đích có hay không trả lời (kèm RTT), không nói được gói tin bị nghẽn/đứt ở chặng nào. traceroute cho biết toàn bộ hành trình qua từng Router — nên khi ping thất bại hoặc chậm bất thường, bước tiếp theo hợp lý là chạy traceroute để xác định chính xác chặng nào đang có vấn đề, thay vì đoán mò.
📝 Bài tập đánh giá
Câu 1: Điểm khác biệt cốt lõi giữa Distance Vector và Link State là gì?
- A. Distance Vector chỉ biết thông tin từ hàng xóm trực tiếp, Link State tự xây dựng bản đồ toàn bộ mạng
- B. Distance Vector chỉ dùng được cho IPv6
- C. Link State không cần Router để hoạt động
- D. Không có khác biệt, đây là 2 tên gọi của cùng 1 giao thức
Câu 2: Giao thức định tuyến động nào được CCNA 200-301 tập trung giảng dạy nhiều nhất?
- A. RIP
- B. OSPF
- C. BGP
- D. EIGRP
Câu 3: Khi TTL của 1 gói tin giảm về 0 trước khi đến đích, Router hiện tại sẽ làm gì?
- A. Tự động tăng TTL lên và tiếp tục chuyển tiếp gói tin
- B. Hủy gói tin và gửi lại nguồn 1 thông điệp ICMP Time Exceeded
- C. Chuyển gói tin sang giao thức UDP để tiếp tục gửi đi
- D. Lưu gói tin lại và chờ đến khi có đường đi mới
👉 Đáp án:
Câu 1: A — Distance Vector dựa vào thông tin từ hàng xóm trực tiếp (như hỏi đường từng người), còn Link State tự xây dựng bản đồ đầy đủ toàn mạng để tính toán đường đi.
Câu 2: B — OSPF (Open Shortest Path First) là giao thức Link State phổ biến nhất trong thực tế và là trọng tâm chính của CCNA 200-301, sẽ được học chi tiết từ Bài 48 trở đi.
Câu 3: B — Khi TTL về 0, Router hủy gói tin và gửi lại nguồn thông điệp ICMP Time Exceeded — đây chính là cơ chế mà traceroute khai thác để dò ra từng chặng Router trên đường đi.
📚 Bài viết thuộc khóa học CCNA của VNExperts
🧭 Điều hướng
| ⬅️ Bài trước | 🏠 Mục lục khóa học | Bài kế tiếp ➡️ |
|---|---|---|
| Bài 46: Static Route cho IPv6 | Mục lục khóa học CCNA | Bài 48: OSPFv2 — khái niệm cơ bản, Area, Router ID, Cost |
