Route Map là gì?
Route Map là một cơ chế chính sách (policy) được Cisco sử dụng để bổ sung khả năng kiểm soát chi tiết cho nhiều tính năng khác nhau trong mạng.
Ví dụ:
Ngoài redistribution, Route Map còn được sử dụng rất nhiều trong:
Do đó khi troubleshooting BGP, OSPF Redistribution hoặc PBR, Route Map thường là nơi cần kiểm tra đầu tiên.
Cấu trúc của Route Map
Một Route Map gồm:
Ví dụ:
route-map TSHOOT_ROUTE_MAP permit 10
match ip address 10 11
set metric 500
route-map TSHOOT_ROUTE_MAP permit 20
match ip address prefix-list OSPF_ROUTE
set metric-type type-1
route-map TSHOOT_ROUTE_MAP permit 25
match interface FastEthernet3/0
set ip next-hop 10.1.12.2
route-map TSHOOT_ROUTE_MAP deny 30
match tag 88
route-map TSHOOT_ROUTE_MAP permit 100
set local-preference 150
Phân tích từng sequence
Sequence 10
route-map TSHOOT_ROUTE_MAP permit 10
match ip address 10 11
set metric 500
Ý nghĩa:
Ứng dụng phổ biến:
Ví dụ:
redistribute eigrp 100 route-map TSHOOT_ROUTE_MAP
Những route khớp ACL sẽ được redistribute với metric mới là 500.
Sequence 20
route-map TSHOOT_ROUTE_MAP permit 20
match ip address prefix-list OSPF_ROUTE
set metric-type type-1
Ý nghĩa:
Ứng dụng:
Redistribute route vào OSPF.
Ví dụ:
redistribute static subnets route-map TSHOOT_ROUTE_MAP
Kết quả:
Các route phù hợp sẽ trở thành:
O E1
thay vì:
O E2
Sequence 25
route-map TSHOOT_ROUTE_MAP permit 25
match interface FastEthernet3/0
set ip next-hop 10.1.12.2
Ý nghĩa:
Ứng dụng:
Policy-Based Routing (PBR)
Ví dụ:
interface Fa3/0
ip policy route-map TSHOOT_ROUTE_MAP
Khi đó router không dùng Routing Table bình thường mà chuyển tiếp theo chính sách đã định.
Sequence 30
route-map TSHOOT_ROUTE_MAP deny 30
match tag 88
Ý nghĩa:
Nếu Route Map dùng cho Redistribution:
→ Route có tag 88 sẽ không được redistribute.
Đây là kỹ thuật rất phổ biến để chống Routing Loop khi thực hiện Mutual Redistribution giữa OSPF và EIGRP.
Ví dụ:
route-map REDIST deny 10
match tag 88
route-map REDIST permit 20
Sequence 100
route-map TSHOOT_ROUTE_MAP permit 100
set local-preference 150
Điểm đặc biệt:
Không có match clause.
Khi Route Map không có match clause:
match all
ngầm định.
Do đó:
Mọi route chưa match các sequence trước sẽ match sequence 100.
Thao tác:
set local-preference 150
là thay đổi thuộc tính BGP Local Preference.
Ứng dụng:
Điều khiển đường đi outbound trong AS.
Logic xử lý của Route Map
Route Map hoạt động rất giống ACL.
Bước 1: Xử lý từ trên xuống dưới
Ví dụ:
10
20
25
30
100
Router sẽ kiểm tra:
10 → 20 → 25 → 30 → 100
theo thứ tự sequence.
Bước 2: Dừng ngay khi Match
Khi một sequence match:
Ví dụ:
route-map TEST permit 10
match ip address 10
set metric 100
route-map TEST permit 20
match ip address 20
set metric 200
Nếu route match ACL 10:
→ Dừng ngay tại sequence 10.
Sequence 20 không được kiểm tra nữa.
Quy tắc OR và AND trong Match Clause
Đây là phần rất hay xuất hiện trong kỳ thi ENARSI/TSHOOT.
OR Logic
Nếu nhiều điều kiện nằm cùng một dòng match:
match ip address 10 11
Có nghĩa:
ACL 10 OR ACL 11
Chỉ cần khớp một ACL là đủ.
AND Logic
Nếu nhiều loại match khác nhau:
match ip address 10
match interface Fa0/0
Có nghĩa:
ACL 10 AND Interface Fa0/0
Phải đồng thời thỏa cả hai điều kiện.
Implicit Deny
Giống ACL và Prefix List, Route Map luôn có:
implicit deny all
ở cuối.
Ví dụ:
route-map TEST permit 10
match ip address 10
Nếu route không match ACL 10:
→ Rơi xuống implicit deny.
Một số lỗi Route Map thường gặp khi Troubleshooting
1. Quên gõ deny
Thay vì:
route-map REDIST deny 10
Admin cấu hình:
route-map REDIST permit 10
Kết quả:
Route không bị chặn mà vẫn được redistribute.
2. Thiếu sequence permit cuối
Ví dụ:
route-map REDIST deny 10
match tag 88
Do có implicit deny cuối Route Map:
→ Tất cả route khác cũng bị chặn luôn.
Thông thường cần:
route-map REDIST deny 10
match tag 88
route-map REDIST permit 20
3. ACL hoặc Prefix List không match
Route Map đúng nhưng ACL sai.
Kiểm tra:
show access-lists
show ip prefix-list
4. Route Map chưa được áp dụng
Route Map tồn tại nhưng chưa attach vào tính năng.
Ví dụ:
route-map REDIST permit 10
nhưng quên:
redistribute ospf 1 route-map REDIST
hoặc:
neighbor 10.1.1.1 route-map REDIST in
5. PBR không hoạt động
Thường do quên áp dụng:
ip policy route-map PBR
trên interface inbound.
Tóm tắt
Khi đọc Route Map, hãy nhớ 5 nguyên tắc quan trọng:
Trong thực tế, hơn 80% sự cố liên quan đến Route Map thường xuất phát từ:
Route Map là một cơ chế chính sách (policy) được Cisco sử dụng để bổ sung khả năng kiểm soát chi tiết cho nhiều tính năng khác nhau trong mạng.
Ví dụ:
- Khi thực hiện redistribution giữa các routing protocol, mặc định tất cả các route sẽ được redistribute giống nhau.
- Khi gắn thêm Route Map vào quá trình redistribution, chúng ta có thể:
- Chọn route nào được redistribute.
- Thay đổi metric của từng route.
- Thay đổi route tag.
- Thay đổi các thuộc tính của BGP.
Ngoài redistribution, Route Map còn được sử dụng rất nhiều trong:
- BGP Path Manipulation
- Policy-Based Routing (PBR)
- Route Filtering
- QoS
- NAT nâng cao
Do đó khi troubleshooting BGP, OSPF Redistribution hoặc PBR, Route Map thường là nơi cần kiểm tra đầu tiên.
Cấu trúc của Route Map
Một Route Map gồm:
- Tên Route Map
- Các sequence number
- Match clause
- Set clause
- Permit hoặc Deny
Ví dụ:
route-map TSHOOT_ROUTE_MAP permit 10
match ip address 10 11
set metric 500
route-map TSHOOT_ROUTE_MAP permit 20
match ip address prefix-list OSPF_ROUTE
set metric-type type-1
route-map TSHOOT_ROUTE_MAP permit 25
match interface FastEthernet3/0
set ip next-hop 10.1.12.2
route-map TSHOOT_ROUTE_MAP deny 30
match tag 88
route-map TSHOOT_ROUTE_MAP permit 100
set local-preference 150
Phân tích từng sequence
Sequence 10
route-map TSHOOT_ROUTE_MAP permit 10
match ip address 10 11
set metric 500
Ý nghĩa:
- Match ACL 10 hoặc ACL 11
- Nếu route hoặc traffic khớp ACL 10 hoặc ACL 11
- Gán metric = 500
Ứng dụng phổ biến:
- Redistribution
Ví dụ:
redistribute eigrp 100 route-map TSHOOT_ROUTE_MAP
Những route khớp ACL sẽ được redistribute với metric mới là 500.
Sequence 20
route-map TSHOOT_ROUTE_MAP permit 20
match ip address prefix-list OSPF_ROUTE
set metric-type type-1
Ý nghĩa:
- Match các route trong Prefix List OSPF_ROUTE
- Chuyển metric type thành OSPF External Type 1 (E1)
Ứng dụng:
Redistribute route vào OSPF.
Ví dụ:
redistribute static subnets route-map TSHOOT_ROUTE_MAP
Kết quả:
Các route phù hợp sẽ trở thành:
O E1
thay vì:
O E2
Sequence 25
route-map TSHOOT_ROUTE_MAP permit 25
match interface FastEthernet3/0
set ip next-hop 10.1.12.2
Ý nghĩa:
- Match các packet đi vào interface Fa3/0
- Ép packet sử dụng next-hop 10.1.12.2
Ứng dụng:
Policy-Based Routing (PBR)
Ví dụ:
interface Fa3/0
ip policy route-map TSHOOT_ROUTE_MAP
Khi đó router không dùng Routing Table bình thường mà chuyển tiếp theo chính sách đã định.
Sequence 30
route-map TSHOOT_ROUTE_MAP deny 30
match tag 88
Ý nghĩa:
- Match route có route-tag = 88
- DENY
Nếu Route Map dùng cho Redistribution:
→ Route có tag 88 sẽ không được redistribute.
Đây là kỹ thuật rất phổ biến để chống Routing Loop khi thực hiện Mutual Redistribution giữa OSPF và EIGRP.
Ví dụ:
route-map REDIST deny 10
match tag 88
route-map REDIST permit 20
Sequence 100
route-map TSHOOT_ROUTE_MAP permit 100
set local-preference 150
Điểm đặc biệt:
Không có match clause.
Khi Route Map không có match clause:
match all
ngầm định.
Do đó:
Mọi route chưa match các sequence trước sẽ match sequence 100.
Thao tác:
set local-preference 150
là thay đổi thuộc tính BGP Local Preference.
Ứng dụng:
Điều khiển đường đi outbound trong AS.
Logic xử lý của Route Map
Route Map hoạt động rất giống ACL.
Bước 1: Xử lý từ trên xuống dưới
Ví dụ:
10
20
25
30
100
Router sẽ kiểm tra:
10 → 20 → 25 → 30 → 100
theo thứ tự sequence.
Bước 2: Dừng ngay khi Match
Khi một sequence match:
- Router dừng kiểm tra các sequence phía dưới.
- Thực hiện các lệnh set của sequence đó.
Ví dụ:
route-map TEST permit 10
match ip address 10
set metric 100
route-map TEST permit 20
match ip address 20
set metric 200
Nếu route match ACL 10:
→ Dừng ngay tại sequence 10.
Sequence 20 không được kiểm tra nữa.
Quy tắc OR và AND trong Match Clause
Đây là phần rất hay xuất hiện trong kỳ thi ENARSI/TSHOOT.
OR Logic
Nếu nhiều điều kiện nằm cùng một dòng match:
match ip address 10 11
Có nghĩa:
ACL 10 OR ACL 11
Chỉ cần khớp một ACL là đủ.
AND Logic
Nếu nhiều loại match khác nhau:
match ip address 10
match interface Fa0/0
Có nghĩa:
ACL 10 AND Interface Fa0/0
Phải đồng thời thỏa cả hai điều kiện.
Implicit Deny
Giống ACL và Prefix List, Route Map luôn có:
implicit deny all
ở cuối.
Ví dụ:
route-map TEST permit 10
match ip address 10
Nếu route không match ACL 10:
→ Rơi xuống implicit deny.
Một số lỗi Route Map thường gặp khi Troubleshooting
1. Quên gõ deny
Thay vì:
route-map REDIST deny 10
Admin cấu hình:
route-map REDIST permit 10
Kết quả:
Route không bị chặn mà vẫn được redistribute.
2. Thiếu sequence permit cuối
Ví dụ:
route-map REDIST deny 10
match tag 88
Do có implicit deny cuối Route Map:
→ Tất cả route khác cũng bị chặn luôn.
Thông thường cần:
route-map REDIST deny 10
match tag 88
route-map REDIST permit 20
3. ACL hoặc Prefix List không match
Route Map đúng nhưng ACL sai.
Kiểm tra:
show access-lists
show ip prefix-list
4. Route Map chưa được áp dụng
Route Map tồn tại nhưng chưa attach vào tính năng.
Ví dụ:
route-map REDIST permit 10
nhưng quên:
redistribute ospf 1 route-map REDIST
hoặc:
neighbor 10.1.1.1 route-map REDIST in
5. PBR không hoạt động
Thường do quên áp dụng:
ip policy route-map PBR
trên interface inbound.
Tóm tắt
Khi đọc Route Map, hãy nhớ 5 nguyên tắc quan trọng:
- Route Map xử lý từ sequence thấp đến sequence cao.
- Match đầu tiên thành công sẽ dừng xử lý.
- Nhiều giá trị trong cùng một lệnh match là OR.
- Nhiều dòng match khác loại là AND.
- Cuối Route Map luôn tồn tại implicit deny all.
Trong thực tế, hơn 80% sự cố liên quan đến Route Map thường xuất phát từ:
- Sai permit/deny.
- Thiếu sequence permit cuối.
- ACL hoặc Prefix List không match.
- Quên attach Route Map vào BGP, Redistribution hoặc PBR.