Loading...

Bài 61: Load Balancing & Route Redistribution (Mức Độ CCNA)

💡 Liên hệ thực tế

VNExperts có 2 đường link cùng Cost tới 1 đích trong OSPF — thay vì "lãng phí" 1 đường như Floating Static Route (Bài 45), OSPF có thể dùng cả 2 đường cùng lúc để chia tải. Nhưng nếu công ty đang chạy song song cả Static Route lẫn OSPF, làm sao để các Router chạy OSPF "biết" luôn cả những tuyến Static đã cấu hình? Đây là lúc cần Route Redistribution — "phiên dịch" thông tin định tuyến qua lại giữa các nguồn khác nhau.


📘 Kiến thức cốt lõi

⚖️ Load Balancing trong OSPF — ECMP (Equal Cost Multi-Path):

Khi Router có từ 2 tuyến trở lên cùng Cost dẫn tới 1 đích, OSPF tự động dùng cả 2 tuyến song song để chia tải, gọi là cơ chế ECMP. Mặc định, Cisco IOS cho phép tối đa 4 tuyến ECMP cùng lúc (có thể tăng lên tùy dòng thiết bị bằng lệnh maximum-paths).

⚠️ Lưu ý quan trọng: ECMP không đảm bảo chia tải hoàn toàn đồng đều theo băng thông thực tế — nó chỉ đảm bảo rằng 1 luồng dữ liệu cụ thể (flow) sẽ luôn đi theo đúng 1 đường cố định tại 1 thời điểm (dựa trên hàm băm từ địa chỉ IP nguồn/đích, cổng...), để tránh hiện tượng gói tin đến sai thứ tự. Nghĩa là nếu chỉ có 1 luồng dữ liệu lớn, nó vẫn chỉ đi qua đúng 1 trong 2 đường, không tự động tách nhỏ ra cả 2 đường cùng lúc.

💡 Cách chia tải theo luồng vừa mô tả gọi là per-destination load balancing (mặc định trên Cisco IOS). Có 1 kiểu khác là per-packet load balancing — chia từng gói tin luân phiên qua các đường, tận dụng băng thông đều hơn nhưng dễ gây gói tin đến sai thứ tự nên rất ít dùng trong thực tế, chỉ bật khi thực sự cần thiết.

🔄 Route Redistribution — "phiên dịch" thông tin giữa các nguồn định tuyến khác nhau:

Redistribution là quá trình đưa thông tin định tuyến từ 1 nguồn (Static Route, hoặc 1 giao thức động khác) vào 1 giao thức định tuyến động đang chạy, để các Router khác trong hệ thống đó cũng "biết" các tuyến này.

Router(config)# router ospf 1
Router(config-router)# redistribute static subnets

📎 Từ khóa subnets gần như luôn bắt buộc phải có — nếu thiếu, OSPF chỉ redistribute các Static Route thuộc dạng "classful" (không chia subnet), bỏ sót phần lớn các Static Route thực tế có subnet cụ thể.

🏷️ Khi Static Route được redistribute vào OSPF, nó trở thành "External Route" — có 2 loại:

LoạiCách tính CostĐặc điểm
E2 (External Type 2 — mặc định) Chỉ tính Cost gốc được gán khi redistribute, không cộng dồn thêm Cost nội bộ dọc đường Đơn giản, là mặc định
E1 (External Type 1) Cost gốc cộng dồn thêm Cost nội bộ OSPF dọc đường đi Chính xác hơn để chọn điểm ra (exit point) tối ưu khi có nhiều điểm redistribute
Router(config-router)# redistribute static subnets metric 20 metric-type 1

📎 Lệnh trên gán Cost ban đầu là 20 cho các Static Route khi redistribute, đồng thời chọn kiểu E1 thay vì mặc định E2 — để Cost tăng dần theo khoảng cách thực tế, giúp OSPF chọn đúng điểm ra tối ưu nhất khi có nhiều điểm redistribute khác nhau trong hệ thống.

🎯 Ví dụ thực hành đầy đủ — chứng minh Router B, C học được tuyến Static của Router A:

Trên Router A (có Static Route tới mạng 172.20.0.0/16, đồng thời đang chạy OSPF Area 0):

RouterA(config)# ip route 172.20.0.0 255.255.0.0 10.0.0.5
RouterA(config)# router ospf 1
RouterA(config-router)# redistribute static subnets

Trên Router B (chỉ chạy OSPF, hoàn toàn không cấu hình Static Route nào tới 172.20.0.0/16):

RouterB# show ip route ospf
     172.0.0.0/16 is subnetted, 1 subnets
O E2    172.20.0.0 [110/20] via 192.168.100.1, 00:02:15, GigabitEthernet0/1

📎 Dòng O E2 xác nhận Router B đã học được tuyến 172.20.0.0/16 — dù Router B chưa từng tự cấu hình Static Route này. Ký hiệu E2 cho biết đây là External Route Type 2 (mặc định), Cost 20 chính là con số cố định được gán khi Router A redistribute (không cộng dồn thêm Cost nội bộ dọc đường như kiểu E1 đã giải thích ở trên). Đây chính là bằng chứng trực quan nhất cho thấy Redistribution đã hoạt động đúng — thông tin từ Static Route của Router A đã "lan tỏa" đến toàn bộ hệ thống OSPF, bao gồm cả Router C nếu cũng nằm trong cùng Area.

⚠️ Rủi ro cần lưu ý khi Redistribution — vòng lặp định tuyến (Routing Loop):

Nếu redistribute qua lại 2 chiều giữa 2 giao thức (ví dụ OSPF ↔ EIGRP) mà không kiểm soát cẩn thận, thông tin có thể "đi vòng" lại chính nó, gây ra vòng lặp định tuyến hoặc chọn sai đường. Thực hành an toàn: luôn dùng route-map hoặc prefix-list để lọc kỹ nội dung nào được phép redistribute, tránh redistribute tràn lan.

Route Redistribution đưa Static Route vào hệ thống OSPF Sơ đồ minh họa Router A có Static Route tới mạng 172.20.0.0/16, sau khi redistribute static subnets vào OSPF, Router B và C học được tuyến này dưới dạng O E2 (External Route Type 2) Redistribute Static vào OSPF Quá trình quảng bá các tuyến tĩnh (Static Route) vào miền định tuyến động OSPF Static Route 172.20.0.0/16 Router A redistribute static Router B (OSPF) Học route O E2 Router C (OSPF) Học route O E2 ! Trên Router A (Cấu hình & Redistribute): RouterA(config)# ip route 172.20.0.0 255.255.0.0 10.0.0.5 RouterA(config)# router ospf 1 --> redistribute static subnets ! Kết quả kiểm tra trên Router B / C (Routing Table): RouterB# show ip route ospf O E2 172.20.0.0/16 [110/20] via 192.168.100.1, 00:02:15, GigabitEthernet0/1 (O E2 = OSPF External Type 2 | AD = 110 | Default Cost = 20) ⚠️ Cảnh báo: Redistribute 2 chiều không kiểm soát Có thể gây vòng lặp (Routing Loop) — luôn dùng route-map / prefix-list để lọc


💬 Hỏi & Đáp nhanh

❓ Vì sao ECMP không chia đều 1 luồng dữ liệu lớn ra cả 2 đường cùng lúc?

✅ Vì nếu chia nhỏ 1 luồng dữ liệu ra nhiều đường có độ trễ khác nhau (dù rất nhỏ), các gói tin có thể đến đích không đúng thứ tự — gây khó khăn cho ứng dụng đầu cuối phải sắp xếp lại. Do đó ECMP dùng hàm băm để đảm bảo cùng 1 luồng luôn đi 1 đường cố định, chỉ có các luồng dữ liệu khác nhau mới được phân bổ qua các đường khác nhau.

❓ Nếu quên từ khóa subnets khi redistribute static vào OSPF, hậu quả gì xảy ra?

✅ OSPF sẽ bỏ sót phần lớn Static Route có subnet cụ thể (không phải dạng classful nguyên bản) — đây là lỗi rất phổ biến khiến người mới học redistribute xong nhưng vẫn không thấy tuyến xuất hiện ở các Router khác, tưởng lệnh sai trong khi thực chất chỉ thiếu đúng 1 từ khóa nhỏ.

❓ Khi nào nên chọn External Type 1 (E1) thay vì mặc định Type 2 (E2)?

✅ Nên chọn E1 khi hệ thống có nhiều điểm redistribute khác nhau dẫn tới cùng 1 đích bên ngoài — E1 cộng dồn Cost nội bộ giúp OSPF chọn đúng điểm ra gần nhất/tối ưu nhất. Nếu chỉ có 1 điểm redistribute duy nhất, E2 (mặc định, đơn giản hơn) là đủ dùng, không cần thiết phải đổi sang E1.


📝 Bài tập đánh giá

Câu 1: ECMP trong OSPF đảm bảo điều gì khi có nhiều tuyến cùng Cost tới 1 đích?

  • A. Chia đều tuyệt đối mọi luồng dữ liệu ra tất cả các đường
  • B. Cùng 1 luồng dữ liệu luôn đi theo 1 đường cố định, các luồng khác nhau có thể đi các đường khác nhau
  • C. Chỉ dùng 1 đường duy nhất, các đường còn lại luôn ở chế độ dự phòng
  • D. Tự động tăng gấp đôi băng thông của mỗi đường

Câu 2: Từ khóa nào bắt buộc phải có khi redistribute Static Route có subnet cụ thể vào OSPF?

  • A. metric
  • B. subnets
  • C. area
  • D. priority

👉 Đáp án:

Câu 1: B — ECMP dùng hàm băm để đảm bảo mỗi luồng dữ liệu cụ thể luôn đi theo 1 đường cố định (tránh gói tin đến sai thứ tự), trong khi các luồng khác nhau có thể được phân bổ qua các đường khác nhau.

Câu 2: B — Từ khóa subnets bắt buộc phải có để OSPF redistribute đầy đủ các Static Route có subnet cụ thể, nếu thiếu sẽ bỏ sót phần lớn tuyến thực tế.


📚 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ọcBài kế tiếp ➡️
Bài 60: Interpreting Routing Table Mục lục khóa học CCNA Bài 62: Bài Lab tổng hợp — dựng mạng OSPF + HSRP + ACL hoàn chỉnh