BGP Best Path Algorithm: Local Preference

Tiếp theo series bài viết về những thuộc tính ảnh hưởng đến hướng outbound của Enterprise, trong bài viết này chúng ta sẽ cùng nhau tìm hiểu về Local Preference.

  • Giá trị LP được set trên mỗi router trong một AS và sẽ được quảng bá cho tất cả các iBGP router khác trong cùng AS đó, nhờ đó các router trong cùng một AS sẽ xác định được cùng một điểm exit point cho những packet đi ra khỏi AS hướng tới một đích cụ thể.
  • LP được set bởi router khi nó nhận được eBGP route bằng cách sử dụng một inbound route-map. Router sau đó sẽ quảng bá LP trong bản tin iBGP Update.
  • Bảng dưới đây liệt kê một số đặc điểm của LP:
Đặc tínhMô tả
Có phải PA không?
Mục đíchXác định exit point để các packet đi ra khỏi AS
Phạm viĐược quảng bá trong phạm vi một AS, không được quảng bá cho eBGP peer
Dải giá trị0 – 2^32-1
Cách lựa chọnƯu tiên tuyến có LP lớn hơn
Default100
Có thể thay đổi giá trị default không?Có, bằng cách dùng lệnh bgp default local-preference <value>

Cùng xét một ví dụ để hiểu thêm về ảnh hưởng của LP đối với quá trình lựa chọn đường đi tốt nhất của BGP.

  • Enterprise có 2 kết nối Internet đi qua ISP 1 hoặc ISP 3
  • Trong Enterprise, các router được cấu hình full-mesh iBGP
  • E1 và I1-1, E2 và I3-1 có quan hệ hàng xóm eBGP
  • E1 va I1-1 dùng IP của interface loopback để thiết lập hàng xóm eBGP
  • E2 và I3-1 dùng IP của 2 interface kết nối trực tiếp để thiết lập hàng xóm eBGP
  • Ban đầu chưa thay đổi thuộc tính nào của BGP, tất cả đều mang giá trị mặc định
  • Mỗi ISP quảng bá 5 prefix giống nhau từ 181.0.0.0/8 đến 185.0.0.0/8 với thuộc tính AS_Path length khác nhau
  • E1 và E2 sẽ học được các prefix này
  • Đối với mạng 181 và 182, E1 và E2 đều lựa chọn đường đi đến 2 mạng này thông qua ISP 1 vì đường đi qua ISP 1 có AS_Path length nhỏ hơn. E1 sẽ đến 2 mạng này với next-hop là I1-1, E2 sẽ đến 2 mạng này với next-hop là E1.
  • Đối với mạng 184 và 185, E1 và E2 đều lựa chọn đường đi đến 2 mạng này thông qua ISP 2 vì đường đi qua ISP 1 có AS_Path length nhỏ hơn. E2 sẽ đến 2 mạng này với next-hop là I3-1, E1 sẽ đến 2 mạng này với next-hop là E2.
  • Đối với mạng 183, đường đi qua cả 2 ISP có AS_Path length bằng nhau nên cần xét đến tiêu chuẩn tiếp theo để xác định được đâu là đường đi tốt nhất.
  • Dưới đây là BGP table trên 3 router E1, E2 và Core1:

Quan sát cột LocRef ta thấy có route có LocRef bằng 100 (giá trị mặc định), có route không được hiển thị giá trị LocRef (NULL). Đối với tuyến nhận được hàng xóm eBGP thì thuộc tính LP không được mang trong bản tin Update vì vậy IOS sẽ để giá trị LP của những tuyến này là NULL. Tuy nhiên với những tuyến nhận được từ hàng xóm iBGP thì thuộc tính LP được mang đi trong bản tin Update. Vì chưa có cấu hình gì để thay đổi LP nên LP mang giá trị mặc định bằng 100.

Có một vấn đề khác cần chú ý đó là: tại sao đối với prefix 181 và 182, E1 chỉ hiển thị 1 route duy nhất, route đi qua I1-1. Trong trường hợp này, E2 có quảng bá route 181 và 182 cho E1 không?

Câu trả lời là không. Bởi vì E2 học tuyến 181 và 182 thông qua E1, là hàng xóm iBGP của nó. BGP không cho phép quảng bá tuyến học được từ iBGP peer cho iBGP peer nhằm mục đích tránh loop.

Bây giờ, chúng ta sẽ thực hiện thay đổi giá trị LP để xem ảnh hưởng của LP đến việc lựa chọn best path của BGP.

Ta có thể thay đổi LP bằng cách cấu hình lệnh sau trên router:

neighbor neighbor-ip route-map route-map-name in

Route-map thường được áp dụng theo chiều in –> sẽ áp dụng route-map cho các tuyến mà router nhận được từ eBGP peer.

Cùng phân tích ví dụ sau:

  • Bước 1: I1-1 và I3-1 quảng bá đều quảng bá prefix 184 và 185 đến Enterprise nhưng trong bản tin Update sẽ không có thuộc tính Local_Pref bởi vì quan hệ giữa (E1, I1-1) và (E2, I3-1) là quan hệ hàng xóm eBGP.
  • Bước 2: Trên E1 cấu hình route-map để khi nhận được tuyến do I1-1 quảng bá thì sẽ thực hiện các việc sau:
    • Nếu là tuyến 184 thì set Loc_Pref bằng 50
    • Nếu là tuyến 185 thì set Loc_Pref bằng 150
  • Bước 3: E1 thêm thuộc tính LP trong bản tin Update cho tuyến 184 và 185 sau đó quảng bá đến các hàng xóm iBGP là E2, Core1 và Core2.
  • Bước 4: E2 nhận thấy tuyến 185 do E1 quảng bá có LP tốt hơn LP mặc định mà nó gán cho tuyến 185 (tuyến 185 mà nó nhận được từ hàng xóm eBGP I3-1). Ngược lại, E2 nhận thấy tuyến 184 do E1 quảng bá có LP kém hơn LP mặc định mà nó gán cho tuyến 184 (tuyến 184 mà nó nhận được từ hàng xóm eBGP I3-1).
  • Dưới đây là cấu hình trên E1:

Bảng BGP của E1:

E1 học tuyến 184 từ hàng xóm eBGP I1.1 và set LP bằng 50. E1 cũng học được tuyến 184 từ hàng xóm iBGP E2 với LP bằng 100 (giá trị mặc định). Vì vậy E1 sẽ chọn đường đến mạng 184 là đường đi qua E2.

Đối với tuyến 185, E1 chỉ show tuyến BGP đi qua hàng xóm eBGP I1-1 và set LP bằng 150. E2 không quảng bá tuyến 185 sang cho E1 bởi vì E2 đã chấp nhận tuyến tốt nhất để đến mạng 185 là tuyến cho hàng xóm iBGP E1 quảng bá, vì vậy nó không được phép quảng bá lại tuyến 185 cho E1.

E2 học được tuyến 185 từ E1 và I1-3. Tuyến học được từ E1 – hàng xóm iBGP có LP bằng 150. Tuyến học được từ I3-1 – hàng xóm eBGP được E2 gán giá trị LP mặc định bằng 100. Vì vậy E2 sẽ chọn đến mạng 185 qua next-hop E1.

Hi vọng bài viết trên sẽ giúp các bạn hiểu rõ hơn về ảnh hưởng của thuộc tính Local Preference đến quyết định lựa chọn best route của BGP.

Tài liệu tham khảo:

  1. CCNP Route 642-902, Chapter 15, BGP Path Control

Bình luận về bài viết này