Khái quát về Route Redistribution
Route Redistribution cho phép các tuyến đường (route) học được từ một nguồn này (ví dụ: route tĩnh, route kết nối trực tiếp hoặc route học từ một giao thức định tuyến) được đưa vào một giao thức định tuyến khác.
Nếu hai giao thức định tuyến thực hiện redistribution hai chiều (mutual redistribution), thì các route học được từ mỗi giao thức sẽ được đưa sang giao thức còn lại.
Phần này sẽ trình bày cách troubleshooting các sự cố liên quan đến Route Redistribution.
Tổng quan về Route Redistribution
Một router kết nối hai hoặc nhiều routing domain và thực hiện chức năng redistribution được gọi là Boundary Router, như minh họa trong Hình 17-1.
Boundary Router có thể redistribute:
Ví dụ:
RIP EIGRP
R1 -------- R2 -------- R3
^
|
Boundary Router
Trong mô hình này:
Redistribution diễn ra ở đâu?
Đây là một khái niệm cực kỳ quan trọng khi troubleshooting.
Redistribution không diễn ra trực tiếp giữa hai giao thức định tuyến.
Thay vào đó, quá trình luôn diễn ra theo trình tự:
Routing Protocol A
│
▼
IP Routing Table
│
▼
Routing Protocol B
Ví dụ:
EIGRP
│
▼
IP Routing Table
│
▼
OSPF LSDB
Nghĩa là:
Đối với EIGRP, route được đưa vào Topology Table.
Đối với OSPF, route được đưa vào Link-State Database (LSDB).
Đây là chìa khóa khi Troubleshooting
Muốn một route được redistribute thì điều kiện tiên quyết là:
Nếu route chưa có trong Routing Table thì redistribution sẽ không bao giờ xảy ra.
Ví dụ:
Bạn cấu hình:
Redistribute EIGRP into OSPF
nhưng route EIGRP chưa được cài vào Routing Table.
Lúc này vấn đề không nằm ở Redistribution.
Vấn đề thực sự là:
Nói cách khác:
Metric giữa các giao thức khác nhau
Mỗi giao thức định tuyến sử dụng một kiểu metric riêng.
Ví dụ:
RIP:
Hop Count
Trong khi EIGRP sử dụng:
Bandwidth
Delay
(Có thể thêm Reliability và Load nếu cấu hình)
Do metric khác nhau nên khi route được redistribute sang giao thức khác, router phải gán cho route đó một metric phù hợp với giao thức đích.
Seed Metric là gì?
Metric được gán cho một route trong quá trình redistribution được gọi là Seed Metric.
Seed Metric có nhiệm vụ:
Nếu không có Seed Metric thì giao thức đích sẽ không biết route mới này có chi phí (cost) bao nhiêu.
Có ba cách cấu hình Seed Metric
Cách 1
Dùng:
default-metric
Ví dụ:
router eigrp 100
default-metric 10000 100 255 1 1500
Cách 2
Định nghĩa metric trực tiếp trong lệnh redistribute
Ví dụ:
redistribute ospf 1 metric 10000 100 255 1 1500
Cách 3
Dùng Route Map
Ví dụ:
route-map REDIST permit 10
set metric 10000 100 255 1 1500
router eigrp 100
redistribute ospf 1 route-map REDIST
Đây là phương pháp linh hoạt nhất vì có thể gán metric khác nhau cho từng nhóm route.
Thứ tự ưu tiên của Seed Metric
Nếu cấu hình nhiều nơi cùng lúc thì Cisco IOS ưu tiên theo thứ tự:
Ưu tiên 1
Metric trong Route Map
↓
Ưu tiên 2
Metric trong lệnh redistribute
↓
Ưu tiên 3
Metric trong default-metric
Nói cách khác:
Route Map
>
redistribute metric
>
default-metric
Nếu không cấu hình Seed Metric thì sao?
Điều này phụ thuộc vào giao thức đích. RIP
Seed Metric mặc định là:
Unreachable
Nghĩa là:
Route sẽ không được quảng bá.
EIGRP
Tương tự.
Seed Metric mặc định cũng là:
Infinite Metric
Do đó:
Route redistributed sẽ không được quảng bá.
Đây là lỗi rất phổ biến khi mới học Redistribution.
OSPF
OSPF có mặc định:
Cost = 20
Nếu redistribute từ BGP:
Cost = 1
BGP
Khi redistribute IGP vào BGP:
BGP giữ nguyên metric của giao thức IGP.
Một số ngoại lệ
Cisco có một số ngoại lệ rất hữu ích. Redistribute Static hoặc Connected vào RIP
Không cần chỉ định metric thủ công.
Redistribute Static hoặc Connected vào EIGRP
Cũng không cần metric.
Redistribute giữa hai Autonomous System của EIGRP
Ví dụ:
EIGRP AS100
↓
EIGRP AS200
Metric gốc sẽ được giữ nguyên.
Do đó không cần cấu hình Seed Metric.
Internal Route và External Route
Một số giao thức như:
có khả năng phân biệt:
Internal Route
Là route:
Ví dụ:
OSPF Internal
External Route
Là route học từ giao thức khác thông qua redistribution.
Ví dụ:
OSPF External (E1/E2)
hoặc
EIGRP External
Vì sao phải phân biệt Internal và External?
Lý do lớn nhất là:
Ngăn ngừa Routing Loop
Ví dụ:
RIP
↓
OSPF
↓
RIP
Nếu không đánh dấu External Route:
Việc gắn nhãn External Route giúp router nhận biết đây là route được học từ giao thức khác và có thể áp dụng các cơ chế ưu tiên hoặc lọc phù hợp để giảm nguy cơ vòng lặp định tuyến.
Hai điều kiện tiên quyết để Redistribution hoạt động
Trước khi troubleshooting, hãy luôn nhớ rằng muốn redistribution hoạt động thì phải thỏa mãn hai điều kiện bắt buộc:
Tổng kết
Khi troubleshooting Route Redistribution, hãy ghi nhớ bốn nguyên tắc quan trọng:
Route Redistribution cho phép các tuyến đường (route) học được từ một nguồn này (ví dụ: route tĩnh, route kết nối trực tiếp hoặc route học từ một giao thức định tuyến) được đưa vào một giao thức định tuyến khác.
Nếu hai giao thức định tuyến thực hiện redistribution hai chiều (mutual redistribution), thì các route học được từ mỗi giao thức sẽ được đưa sang giao thức còn lại.
Phần này sẽ trình bày cách troubleshooting các sự cố liên quan đến Route Redistribution.
Tổng quan về Route Redistribution
Một router kết nối hai hoặc nhiều routing domain và thực hiện chức năng redistribution được gọi là Boundary Router, như minh họa trong Hình 17-1.
Boundary Router có thể redistribute:
- Static Routes
- Connected Routes
- Các route học được từ một giao thức định tuyến sang giao thức định tuyến khác
Ví dụ:
RIP EIGRP
R1 -------- R2 -------- R3
^
|
Boundary Router
Trong mô hình này:
- R2 là Boundary Router.
- R2 nhận các route từ RIP và đưa vào EIGRP.
- Đồng thời cũng có thể đưa các route từ EIGRP sang RIP.
Redistribution diễn ra ở đâu?
Đây là một khái niệm cực kỳ quan trọng khi troubleshooting.
Redistribution không diễn ra trực tiếp giữa hai giao thức định tuyến.
Thay vào đó, quá trình luôn diễn ra theo trình tự:
Routing Protocol A
│
▼
IP Routing Table
│
▼
Routing Protocol B
Ví dụ:
EIGRP
│
▼
IP Routing Table
│
▼
OSPF LSDB
Nghĩa là:
- EIGRP cài route vào Routing Table.
- Redistribution lấy route từ Routing Table.
- Sau đó đưa route vào cơ sở dữ liệu của OSPF (LSDB).
Đối với EIGRP, route được đưa vào Topology Table.
Đối với OSPF, route được đưa vào Link-State Database (LSDB).
Đây là chìa khóa khi Troubleshooting
Muốn một route được redistribute thì điều kiện tiên quyết là:
Route đó phải tồn tại trong IP Routing Table.
Nếu route chưa có trong Routing Table thì redistribution sẽ không bao giờ xảy ra.
Ví dụ:
Bạn cấu hình:
Redistribute EIGRP into OSPF
nhưng route EIGRP chưa được cài vào Routing Table.
Lúc này vấn đề không nằm ở Redistribution.
Vấn đề thực sự là:
- Neighbor EIGRP chưa lên
- Route chưa học được
- AD khiến route không được cài
- Filtering
- Summarization
- hoặc một lỗi khác của chính EIGRP
Nói cách khác:
Không có route trong Routing Table ⇒ Không có gì để redistribute.
Metric giữa các giao thức khác nhau
Mỗi giao thức định tuyến sử dụng một kiểu metric riêng.
Ví dụ:
RIP:
Hop Count
Trong khi EIGRP sử dụng:
Bandwidth
Delay
(Có thể thêm Reliability và Load nếu cấu hình)
Do metric khác nhau nên khi route được redistribute sang giao thức khác, router phải gán cho route đó một metric phù hợp với giao thức đích.
Seed Metric là gì?
Metric được gán cho một route trong quá trình redistribution được gọi là Seed Metric.
Seed Metric có nhiệm vụ:
Chuyển đổi thông tin "độ tốt" của route từ giao thức nguồn sang cách tính metric của giao thức đích.
Nếu không có Seed Metric thì giao thức đích sẽ không biết route mới này có chi phí (cost) bao nhiêu.
Có ba cách cấu hình Seed Metric
Cách 1
Dùng:
default-metric
Ví dụ:
router eigrp 100
default-metric 10000 100 255 1 1500
Cách 2
Định nghĩa metric trực tiếp trong lệnh redistribute
Ví dụ:
redistribute ospf 1 metric 10000 100 255 1 1500
Cách 3
Dùng Route Map
Ví dụ:
route-map REDIST permit 10
set metric 10000 100 255 1 1500
router eigrp 100
redistribute ospf 1 route-map REDIST
Đây là phương pháp linh hoạt nhất vì có thể gán metric khác nhau cho từng nhóm route.
Thứ tự ưu tiên của Seed Metric
Nếu cấu hình nhiều nơi cùng lúc thì Cisco IOS ưu tiên theo thứ tự:
Ưu tiên 1
Metric trong Route Map
↓
Ưu tiên 2
Metric trong lệnh redistribute
↓
Ưu tiên 3
Metric trong default-metric
Nói cách khác:
Route Map
>
redistribute metric
>
default-metric
Nếu không cấu hình Seed Metric thì sao?
Điều này phụ thuộc vào giao thức đích. RIP
Seed Metric mặc định là:
Unreachable
Nghĩa là:
Route sẽ không được quảng bá.
EIGRP
Tương tự.
Seed Metric mặc định cũng là:
Infinite Metric
Do đó:
Route redistributed sẽ không được quảng bá.
Đây là lỗi rất phổ biến khi mới học Redistribution.
OSPF
OSPF có mặc định:
Cost = 20
Nếu redistribute từ BGP:
Cost = 1
BGP
Khi redistribute IGP vào BGP:
BGP giữ nguyên metric của giao thức IGP.
Một số ngoại lệ
Cisco có một số ngoại lệ rất hữu ích. Redistribute Static hoặc Connected vào RIP
Không cần chỉ định metric thủ công.
Redistribute Static hoặc Connected vào EIGRP
Cũng không cần metric.
Redistribute giữa hai Autonomous System của EIGRP
Ví dụ:
EIGRP AS100
↓
EIGRP AS200
Metric gốc sẽ được giữ nguyên.
Do đó không cần cấu hình Seed Metric.
Internal Route và External Route
Một số giao thức như:
- OSPF
- EIGRP
có khả năng phân biệt:
Internal Route
Là route:
- Connected
- Local
- Học từ chính giao thức đó
Ví dụ:
OSPF Internal
External Route
Là route học từ giao thức khác thông qua redistribution.
Ví dụ:
OSPF External (E1/E2)
hoặc
EIGRP External
Vì sao phải phân biệt Internal và External?
Lý do lớn nhất là:
Ngăn ngừa Routing Loop
Ví dụ:
RIP
↓
OSPF
↓
RIP
Nếu không đánh dấu External Route:
- RIP sẽ redistribute sang OSPF.
- OSPF lại redistribute ngược sang RIP.
- RIP tiếp tục redistribute trở lại OSPF.
- Quá trình lặp vô tận.
Việc gắn nhãn External Route giúp router nhận biết đây là route được học từ giao thức khác và có thể áp dụng các cơ chế ưu tiên hoặc lọc phù hợp để giảm nguy cơ vòng lặp định tuyến.
Hai điều kiện tiên quyết để Redistribution hoạt động
Trước khi troubleshooting, hãy luôn nhớ rằng muốn redistribution hoạt động thì phải thỏa mãn hai điều kiện bắt buộc:
- Route phải được cài vào IP Routing Table của Boundary Router bởi giao thức nguồn. Nếu route chưa xuất hiện trong bảng định tuyến thì sẽ không có gì để redistribute.
- Giao thức định tuyến đích phải có một metric hợp lệ (reachable seed metric) để gán cho các route được redistribute. Nếu metric không tồn tại hoặc là giá trị "unreachable" (đặc biệt với RIP và EIGRP), route sẽ không được quảng bá sang các router khác.
Tổng kết
Khi troubleshooting Route Redistribution, hãy ghi nhớ bốn nguyên tắc quan trọng:
- Redistribution luôn lấy route từ IP Routing Table, không lấy trực tiếp từ cơ sở dữ liệu của giao thức nguồn. Vì vậy, việc đầu tiên cần kiểm tra là route đã được cài vào Routing Table hay chưa.
- Mỗi giao thức định tuyến sử dụng metric khác nhau, nên router phải gán Seed Metric khi đưa route sang giao thức đích.
- Nếu cấu hình nhiều nguồn Seed Metric, Cisco IOS sẽ ưu tiên theo thứ tự: Route Map → tham số metric trong lệnh redistribute → default-metric.
- Với RIP và EIGRP, việc quên cấu hình Seed Metric là một trong những nguyên nhân phổ biến nhất khiến redistribution không hoạt động, vì metric mặc định được xem là không thể đến được (unreachable).