BGP Route Reflector là gì? Hướng dẫn cấu hình BGP Route Reflector trên router Cisco
BGP Route Reflector là gì?
BGP Route Reflector là 1 phương pháp để loại bỏ yêu cầu kết nối full-mesh giữa các iBGP peer trong hệ thống mạng.
Theo mặc định, các iBGP sẽ không quảng bá các tuyến mà nó học được từ các iBGP khác, vì vậy khi thiết kế các iBGP cần phải kết nối Full-mesh với nhau. Đối với những mạng lớn, điều này sẽ gia tăng độ phức tạp, thời gian cấu hình và khó mở rộng trong tương lai.
Ví dụ chúng ta có mô hình gồm 6 router được cấu hình iBGP. Khi được kết nối full-mesh, dựa trên công thức N (N-1) / 2 với N là số router, chúng ta sẽ tính được số iBGP peering là 6 (6-1 = 5) / 2 = 15 như mô hình bên dưới:
BGP Route Reflector (RR) là phương pháp trong BGP được sử dụng để bỏ qua yêu cầu của iBGP Full Mesh này và cung cấp tất cả thông tin Định tuyến iBGP cho tất cả các iBGP Peer. Với cơ chế này, các router sử dụng ít băng thông và CPU cho các tiến trình BGP, giảm độ phức tạp khi quản trị và có thể mở rộng trong tương lai. Điều này đặc biệt quan trọng đối với các mạng lớn.
Như trong mô hình bên dưới, chúng ta vẫn có 6 router, khi sử dụng BGP Route Reflector, R11 router được chọn làm RR, các router khác (gọi là RR Client) được cấu hình iBGP peer với RR và chỉ gửi các bản update tới RR. Do vậy, chúng ta chỉ cần 5 iBGP giữa 6 router này.
Khi thiết kế BGP sử dụng Route Reflector, chúng ta có thể xây dựng nhiều Route Reflector để dự phòng trong hệ thống, các bạn có thể tham khảo thêm tại bài viết:
Hoạt động của BGP Route Reflector
Có 3 vai trò chính được phân chia trong BGP Route Reflector:
- Route Reflector Server, trong bài viết mình sẽ gọi là RR
- Route Reflector Client, trong bài viết mình sẽ gọi là RR-Client
- Non Client, trong bài viết mình sẽ gọi là Non-RR Client
Khi các route đươc quảng bá từ RR Client đến RR, RR sẽ quảng bá các tuyến này (reflected) tới các RR Client khác, chúng ta cùng xem xét các hành vi quảng bá route của RR.
Trường hợp 1: Route nhận được từ non-client router
Khi RR nhận được 1 Update từ Non-RR Client, RR chỉ quảng bá (reflected) các route này tới các RR-Client mà không gửi cho các Non-RR Client khác.
Trường hợp 2: Route nhận được từ RR-Client
Trong trường hợp 1 RR-Client gửi bản tin Update tới RR, RR sẽ gửi update tới tất cả RR-Client và Non-RR client, trừ router gửi RR-Client gửi ra bản tin update đó.
Trường hợp 3: Route nhận được từ eBGP
Trong trường hợp RR nhận được bản tin update từ 1 eBGP, RR sẽ gửi update tới cả RR-Client và Non-RR Client.
Hướng dẫn cấu hình BGP Route Reflector trên router Cisco
Cấu hình BGP Route Reflector
Ở đây mình sẽ sử dụng mô hình đơn giản với 3 Router Cisco chạy iBGP AS 65000, trong đó 1 router (R2) được cấu hình là RR, 2 router còn lại RR-Client.
Với mô hình trên, với iBGP nếu chúng ta không cấu hình peering giữa R1 và R3 (chỉ cấu hình iBGP giữa R1-R2 và R2-R3) thì R2 sẽ không chuyển tiếp các tuyến học được từ R1 cho R3 (do quy tắc iBGP split horizon trong BGP). Khi R2 được cấu hình là Route Reflector, R2 sẽ chuyển tiếp các route này cho R3.
Cấu hình trên R1
Trên R1 và R3, chúng ta cấu hình iBGP peering với R2 như với iBGP thông thường:
R1(config-if)#router bgp 65000
R1(config-router)#neighbor 10.0.0.2 remote-as 65000
R1(config-router)#network 1.1.1.1 mask 255.255.255.255 |
Cấu hình trên Router R3
R3(config-if)#router bgp 65000
R3(config-router)#neighbor 10.0.0.5 remote-as 65000
R3(config-router)#network 3.3.3.3 mask 255.255.255.255 |
Cấu hình trên router R2
R2(config)#router bgp 65000
R2(config-router)#neighbor 10.0.0.1 remote-as 65000
*Sep 22 10:02:27.162: %BGP-5-ADJCHANGE: neighbor 10.0.0.1 Up
R2(config-router)#neighbor 10.0.0.1 route-reflector-client
R2(config-router)#neighbor 10.0.0.6 remote-as 65000
R2(config-router)#neighbor 10.0.0.6 route-reflector-client
*Sep 22 10:02:53.271: %BGP-5-ADJCHANGE: neighbor 10.0.0.6 Up |
Kiểm tra
Đầu tiên chúng ta sẽ kiểm tra trên R2, lúc này R2 đã học được các route từ R1 và R3:
Kiểm tra chi tiết route 1.1.1.1, chúng ta sẽ thấy route này được học từ RR-Client:
Kiểm tra các tuyến mà R2 quảng bá cho R3, chúng ta có thể thấy R2 đã quảng bá tuyến 1.1.1.1 của R1 cho R3.
Kiểm tra trên R3, chúng ta có thể thấy R3 đã nhận được tuyến 1.1.1.1 của R1
Tuy nhiên trong trường hợp này R3 chưa ping được đến IP 1.1.1.1 trên R1 và chưa đưa vào bảng định tuyến của R3. Trong bài lab này mình chỉ hướng dẫn về Route Reflector, các bạn có thể xem lại phần cấu hình BGP căn bản nếu cần test ping đến ip 1.1.1.1.
Chúc các bạn thành công!
Bình luận bài viết!