Điều khiển lưu lượng Outbound với BGP – Hiểu sâu về Best Path & Local Preference
Trong thực tế triển khai BGP trong Enterprise, việc có nhiều đường ra Internet (multi-homing) là rất phổ biến. Khi đó, bài toán quan trọng không còn là có route hay không, mà là:
→ Chọn route nào để đi ra ngoài (egress path selection)
1. Cơ chế chọn đường đi trong BGP (Best Path Selection)
BGP không đơn thuần chọn đường “ngắn nhất” như OSPF hay EIGRP. Thay vào đó, nó sử dụng một chuỗi các thuộc tính (attributes) để quyết định.
Thứ tự đánh giá như sau:
Insight quan trọng (CCIE level):
Nếu bạn không chủ động control, BGP sẽ fallback về các tiêu chí “không mong muốn” như Router ID hoặc path age → điều này dẫn đến routing không deterministic.
2. Phân tích trạng thái ban đầu (Before Optimization)
Routing Table trên ENT-CORE
B* 0.0.0.0/0 via 192.168.255.1
B 10.9.0.0/24 via 192.168.255.1
→ Traffic đang đi qua ENT-PEER1 (ISP1)
BGP Table
*>i 10.9.0.0/24 via 192.168.255.1 (AS 64512 → ISP1)
* i 10.9.0.0/24 via 192.168.255.5 (AS 64513 → ISP2)
→ Có 2 đường đi hợp lệ, nhưng chỉ 1 đường được chọn
Phân tích Best Path
Best Path Evaluation: Higher router ID
→ Route qua ISP2 bị loại vì router ID cao hơn
Vấn đề ở đây là gì?
→ BGP phải dùng tiêu chí phụ: Router ID
Đây là điều KHÔNG nên trong thiết kế production
3. Tư duy thiết kế chuẩn: Control tại Edge
Nguyên tắc quan trọng:
→ Thay vì config ở CORE, ta config tại ENT-PEER2 (edge router)
4. Giải pháp: Sử dụng Local Preference
Cấu hình trên ENT-PEER2
route-map SET-LOCAL-PREF permit 10
set local-preference 200
router bgp 65534
address-family ipv4
neighbor 172.16.2.1 route-map SET-LOCAL-PREF in
Giải thích (rất quan trọng)
→ Ta set = 200 cho route từ ISP2
5. Kết quả sau khi tối ưu
Routing Table
B* 0.0.0.0/0 via 192.168.255.5
B 10.9.0.0/24 via 192.168.255.5
→ Traffic đã chuyển sang ISP2
BGP Table
*>i 10.9.0.0/24 via 192.168.255.5 LocPrf 200
* i 10.9.0.0/24 via 192.168.255.1 LocPrf 100
Best Path Reason
Best Path Evaluation: Lower local preference (for ISP1 path)
→ ISP2 thắng vì Local Preference cao hơn
6. Insight thực chiến (rất quan trọng cho CCNP/CCIE)
6.1 Local Preference = Công cụ điều khiển Outbound Traffic
6.2 So sánh nhanh với các thuộc tính khác
6.3 Sai lầm phổ biến
7. Kết luận
Trong môi trường multi-homed enterprise:
Gợi mở thảo luận
Trong bài này chúng ta mới chỉ xử lý:
→ Outbound Traffic Engineering
Câu hỏi tiếp theo (rất hay trong thực tế):
👉 Làm sao để control Inbound Traffic từ Internet về Enterprise?
(AS Path prepending, MED, community…)
Trong thực tế triển khai BGP trong Enterprise, việc có nhiều đường ra Internet (multi-homing) là rất phổ biến. Khi đó, bài toán quan trọng không còn là có route hay không, mà là:
→ Chọn route nào để đi ra ngoài (egress path selection)
1. Cơ chế chọn đường đi trong BGP (Best Path Selection)
BGP không đơn thuần chọn đường “ngắn nhất” như OSPF hay EIGRP. Thay vào đó, nó sử dụng một chuỗi các thuộc tính (attributes) để quyết định.
Thứ tự đánh giá như sau:
- Weight (Cisco proprietary) → cao hơn là tốt hơn
- Local Preference → cao hơn là tốt hơn
- Locally originated
- AS Path → ngắn hơn là tốt hơn
- Origin type → IGP < EGP < Incomplete
- MED → thấp hơn là tốt hơn
- EBGP > IBGP
- IGP metric tới next-hop → thấp hơn là tốt hơn
- Path age → lâu hơn là tốt hơn
- Router ID → thấp hơn là tốt hơn
- Neighbor IP → thấp hơn là tốt hơn
Insight quan trọng (CCIE level):
Nếu bạn không chủ động control, BGP sẽ fallback về các tiêu chí “không mong muốn” như Router ID hoặc path age → điều này dẫn đến routing không deterministic.
2. Phân tích trạng thái ban đầu (Before Optimization)
Routing Table trên ENT-CORE
B* 0.0.0.0/0 via 192.168.255.1
B 10.9.0.0/24 via 192.168.255.1
→ Traffic đang đi qua ENT-PEER1 (ISP1)
BGP Table
*>i 10.9.0.0/24 via 192.168.255.1 (AS 64512 → ISP1)
* i 10.9.0.0/24 via 192.168.255.5 (AS 64513 → ISP2)
→ Có 2 đường đi hợp lệ, nhưng chỉ 1 đường được chọn
Phân tích Best Path
Best Path Evaluation: Higher router ID
→ Route qua ISP2 bị loại vì router ID cao hơn
Vấn đề ở đây là gì?
- Local Preference = 100 (default) → giống nhau
- AS Path length → giống nhau
- MED → giống nhau
→ BGP phải dùng tiêu chí phụ: Router ID
Đây là điều KHÔNG nên trong thiết kế production
3. Tư duy thiết kế chuẩn: Control tại Edge
Nguyên tắc quan trọng:
“Policy nên được áp dụng tại điểm route đi vào hệ thống”
→ Thay vì config ở CORE, ta config tại ENT-PEER2 (edge router)
4. Giải pháp: Sử dụng Local Preference
Cấu hình trên ENT-PEER2
route-map SET-LOCAL-PREF permit 10
set local-preference 200
router bgp 65534
address-family ipv4
neighbor 172.16.2.1 route-map SET-LOCAL-PREF in
Giải thích (rất quan trọng)
- local-preference là thuộc tính chỉ tồn tại trong AS
- Giá trị mặc định: 100
- Giá trị càng cao → càng được ưu tiên
→ Ta set = 200 cho route từ ISP2
5. Kết quả sau khi tối ưu
Routing Table
B* 0.0.0.0/0 via 192.168.255.5
B 10.9.0.0/24 via 192.168.255.5
→ Traffic đã chuyển sang ISP2
BGP Table
*>i 10.9.0.0/24 via 192.168.255.5 LocPrf 200
* i 10.9.0.0/24 via 192.168.255.1 LocPrf 100
Best Path Reason
Best Path Evaluation: Lower local preference (for ISP1 path)
→ ISP2 thắng vì Local Preference cao hơn
6. Insight thực chiến (rất quan trọng cho CCNP/CCIE)
6.1 Local Preference = Công cụ điều khiển Outbound Traffic
- Dùng để chọn đường đi ra khỏi AS
- Áp dụng inbound route từ ISP
- Propagate toàn bộ trong iBGP
6.2 So sánh nhanh với các thuộc tính khác
- Weight → chỉ local router (không scale)
- Local Preference → toàn AS (chuẩn best practice)
- AS Path → thường dùng cho inbound traffic engineering
6.3 Sai lầm phổ biến
- Không control Local Preference → route bị chọn theo Router ID
- Config tại CORE thay vì EDGE → khó scale
- Dùng Weight thay vì Local Pref → mất tính consistency
7. Kết luận
Trong môi trường multi-homed enterprise:
- Không bao giờ để BGP tự quyết định bằng các tiêu chí ngẫu nhiên
- Luôn control bằng Local Preference
- Áp dụng policy tại edge (PE routers)
Gợi mở thảo luận
Trong bài này chúng ta mới chỉ xử lý:
→ Outbound Traffic Engineering
Câu hỏi tiếp theo (rất hay trong thực tế):
👉 Làm sao để control Inbound Traffic từ Internet về Enterprise?
(AS Path prepending, MED, community…)