Trong quá trình học và thực hành CCNP ENCOR, nếu hỏi phần nào khiến mình phải suy nghĩ nhiều nhất, câu trả lời chắc chắn là BGP.
Không phải vì BGP có quá nhiều câu lệnh khó nhớ, mà vì chỉ cần sai một chi tiết nhỏ, router có thể không học được bất kỳ route nào dù nhìn toàn bộ cấu hình vẫn có vẻ hoàn toàn bình thường.
Và bài lab eBGP lần này là một ví dụ rất rõ.
Mình đã mất gần 30 phút chỉ để tìm ra lý do vì sao một router không nhận được route, dù:
✅ IP Address đúng
✅ Ping thông
✅ Neighbor khai báo chính xác
✅ Remote-AS không sai
Cuối cùng, nguyên nhân lại nằm ở một dòng lệnh tưởng như không liên quan:
no bgp default ipv4-unicast
Đừng vội mở CLI, hãy nhìn topology trước
Một thói quen mình luôn cố gắng duy trì trước mỗi bài lab là dành một phút để phân tích topology.
Không chỉ nhìn để biết thiết bị nào kết nối với nhau, mà phải hiểu vai trò của từng router trong mô hình.
Lab này gồm 3 Autonomous System:
AS1000 AS500 AS300
R1 --------------- R2 --------------- R3
ISP trung gian
R1 thuộc AS1000, R2 thuộc AS500 và R3 thuộc AS300.
Nhìn vào mô hình có thể thấy R2 đóng vai trò như một ISP trung gian. Điều này có nghĩa:
💡 Lab Note:
Khi hiểu topology trước, việc đọc bảng BGP sẽ dễ hơn rất nhiều. Bạn không chỉ thấy một prefix, mà hiểu được vì sao nó xuất hiện.
Bước 1 – Layer 3 phải ổn trước khi nghĩ đến BGP
Một lỗi mình từng gặp khi học BGP là quá tập trung vào cấu hình BGP mà quên kiểm tra nền tảng bên dưới.
Nhưng thực tế:
BGP không thể hoạt động nếu các router chưa kết nối được với nhau ở Layer 3.
Vì vậy, trước khi cấu hình BGP, mình luôn kiểm tra:
Các lệnh kiểm tra:
show ip interface brief
ping <neighbor-ip>
Nếu Layer 3 chưa ổn, việc debug BGP gần như chỉ làm mất thêm thời gian.
Bước 2 – Thiết lập phiên eBGP
Sau khi kết nối IP đã thông, mình mới bắt đầu cấu hình BGP.
Trước khi gõ lệnh, mình luôn xác định 3 câu hỏi:
Router này thuộc AS nào?
→ router bgp
Router cần kết nối với ai?
→ neighbor remote-as
Router cần quảng bá prefix nào?
→ network
Điểm quan trọng cần nhớ:
network trong BGP không tạo ra route mới. Nó chỉ quảng bá những mạng đã có sẵn trong bảng định tuyến.
Sau khi cấu hình xong, bước kiểm tra đầu tiên luôn là:
show ip bgp summary
Nếu Neighbor hiển thị:
Established
nghĩa là hai router đã thiết lập phiên BGP thành công.
Nếu vẫn ở trạng thái:
Idle
Active
thì chưa nên vội chỉnh sửa nhiều câu lệnh. Hãy kiểm tra lại:
Đây là những lỗi mình gặp thường xuyên nhất khi lab BGP.
Lỗi khiến mình mất gần 30 phút
Sau khi hoàn thành cấu hình trên R1 và R2, mọi thứ hoạt động bình thường.
Nhưng trên R3 có một vấn đề:
Router không học được bất kỳ prefix nào.
Điều khó chịu là khi kiểm tra:
✅ Neighbor đúng
✅ Remote-AS đúng
✅ Connectivity OK
Nhưng BGP vẫn không trao đổi route.
Sau khi kiểm tra từng phần, mình phát hiện router đang sử dụng:
no bgp default ipv4-unicast
Đây là một điểm rất dễ gây nhầm lẫn.
Mặc định, khi cấu hình:
neighbor 10.0.23.2 remote-as 500
BGP sẽ tự động kích hoạt IPv4 Address Family cho neighbor.
Nhưng khi sử dụng:
no bgp default ipv4-unicast
hành vi mặc định này bị thay đổi.
Lúc này:
Nói đơn giản:
Hai router đã biết nhau, nhưng chưa thực sự trao đổi thông tin định tuyến IPv4.
Cách xử lý là vào Address Family IPv4 và activate neighbor:
address-family ipv4
neighbor <IP> activate
Sau đó kiểm tra lại:
show ip bgp summary
Kết quả: Neighbor chuyển sang Established và các prefix bắt đầu xuất hiện trong bảng BGP.
Bài học rút ra sau bài lab
Sau bài lab này, điều mình nhớ nhất không phải là thêm một vài câu lệnh BGP.
Điều quan trọng hơn là hiểu cách BGP hoạt động.
BGP không giống những giao thức khác. Nó không phải lúc nào cũng báo lỗi khi cấu hình thiếu. Đôi khi mọi thứ nhìn hoàn toàn đúng, nhưng chỉ thiếu một bước nhỏ như Address Family activation cũng đủ khiến toàn bộ quá trình trao đổi route dừng lại.
Và đó cũng là lý do khi làm việc với BGP trong môi trường thực tế, hiểu bản chất luôn quan trọng hơn việc chỉ nhớ câu lệnh.
(Còn tiếp ở Phần 2: Route Aggregation trong BGP – vì sao Cisco tạo route Null0, Atomic Aggregate khác AS-Set như thế nào, và cách quảng bá Default Route.)
Không phải vì BGP có quá nhiều câu lệnh khó nhớ, mà vì chỉ cần sai một chi tiết nhỏ, router có thể không học được bất kỳ route nào dù nhìn toàn bộ cấu hình vẫn có vẻ hoàn toàn bình thường.
Và bài lab eBGP lần này là một ví dụ rất rõ.
Mình đã mất gần 30 phút chỉ để tìm ra lý do vì sao một router không nhận được route, dù:
✅ IP Address đúng
✅ Ping thông
✅ Neighbor khai báo chính xác
✅ Remote-AS không sai
Cuối cùng, nguyên nhân lại nằm ở một dòng lệnh tưởng như không liên quan:
no bgp default ipv4-unicast
Đừng vội mở CLI, hãy nhìn topology trước
Một thói quen mình luôn cố gắng duy trì trước mỗi bài lab là dành một phút để phân tích topology.
Không chỉ nhìn để biết thiết bị nào kết nối với nhau, mà phải hiểu vai trò của từng router trong mô hình.
Lab này gồm 3 Autonomous System:
AS1000 AS500 AS300
R1 --------------- R2 --------------- R3
ISP trung gian
R1 thuộc AS1000, R2 thuộc AS500 và R3 thuộc AS300.
Nhìn vào mô hình có thể thấy R2 đóng vai trò như một ISP trung gian. Điều này có nghĩa:
- R1 không thiết lập eBGP trực tiếp với R3.
- Route giữa hai đầu phải đi qua AS500.
- Khi kiểm tra BGP, cần chú ý đến AS Path để hiểu route đã đi qua những AS nào.
💡 Lab Note:
Khi hiểu topology trước, việc đọc bảng BGP sẽ dễ hơn rất nhiều. Bạn không chỉ thấy một prefix, mà hiểu được vì sao nó xuất hiện.
Bước 1 – Layer 3 phải ổn trước khi nghĩ đến BGP
Một lỗi mình từng gặp khi học BGP là quá tập trung vào cấu hình BGP mà quên kiểm tra nền tảng bên dưới.
Nhưng thực tế:
BGP không thể hoạt động nếu các router chưa kết nối được với nhau ở Layer 3.
Vì vậy, trước khi cấu hình BGP, mình luôn kiểm tra:
- Interface đã up/up chưa?
- IP Address có đúng không?
- Ping giữa các router kết nối trực tiếp có thành công không?
Các lệnh kiểm tra:
show ip interface brief
ping <neighbor-ip>
Nếu Layer 3 chưa ổn, việc debug BGP gần như chỉ làm mất thêm thời gian.
Bước 2 – Thiết lập phiên eBGP
Sau khi kết nối IP đã thông, mình mới bắt đầu cấu hình BGP.
Trước khi gõ lệnh, mình luôn xác định 3 câu hỏi:
Router này thuộc AS nào?
→ router bgp
Router cần kết nối với ai?
→ neighbor remote-as
Router cần quảng bá prefix nào?
→ network
Điểm quan trọng cần nhớ:
network trong BGP không tạo ra route mới. Nó chỉ quảng bá những mạng đã có sẵn trong bảng định tuyến.
Sau khi cấu hình xong, bước kiểm tra đầu tiên luôn là:
show ip bgp summary
Nếu Neighbor hiển thị:
Established
nghĩa là hai router đã thiết lập phiên BGP thành công.
Nếu vẫn ở trạng thái:
Idle
Active
thì chưa nên vội chỉnh sửa nhiều câu lệnh. Hãy kiểm tra lại:
- IP Neighbor
- Remote-AS
- Kết nối Layer 3
Đây là những lỗi mình gặp thường xuyên nhất khi lab BGP.
Lỗi khiến mình mất gần 30 phút
Sau khi hoàn thành cấu hình trên R1 và R2, mọi thứ hoạt động bình thường.
Nhưng trên R3 có một vấn đề:
Router không học được bất kỳ prefix nào.
Điều khó chịu là khi kiểm tra:
✅ Neighbor đúng
✅ Remote-AS đúng
✅ Connectivity OK
Nhưng BGP vẫn không trao đổi route.
Sau khi kiểm tra từng phần, mình phát hiện router đang sử dụng:
no bgp default ipv4-unicast
Đây là một điểm rất dễ gây nhầm lẫn.
Mặc định, khi cấu hình:
neighbor 10.0.23.2 remote-as 500
BGP sẽ tự động kích hoạt IPv4 Address Family cho neighbor.
Nhưng khi sử dụng:
no bgp default ipv4-unicast
hành vi mặc định này bị thay đổi.
Lúc này:
- Router vẫn biết neighbor tồn tại.
- Phiên BGP có thể được khai báo.
- Nhưng IPv4 route chưa được phép trao đổi.
Nói đơn giản:
Hai router đã biết nhau, nhưng chưa thực sự trao đổi thông tin định tuyến IPv4.
Cách xử lý là vào Address Family IPv4 và activate neighbor:
address-family ipv4
neighbor <IP> activate
Sau đó kiểm tra lại:
show ip bgp summary
Kết quả: Neighbor chuyển sang Established và các prefix bắt đầu xuất hiện trong bảng BGP.
Bài học rút ra sau bài lab
Sau bài lab này, điều mình nhớ nhất không phải là thêm một vài câu lệnh BGP.
Điều quan trọng hơn là hiểu cách BGP hoạt động.
BGP không giống những giao thức khác. Nó không phải lúc nào cũng báo lỗi khi cấu hình thiếu. Đôi khi mọi thứ nhìn hoàn toàn đúng, nhưng chỉ thiếu một bước nhỏ như Address Family activation cũng đủ khiến toàn bộ quá trình trao đổi route dừng lại.
Và đó cũng là lý do khi làm việc với BGP trong môi trường thực tế, hiểu bản chất luôn quan trọng hơn việc chỉ nhớ câu lệnh.
(Còn tiếp ở Phần 2: Route Aggregation trong BGP – vì sao Cisco tạo route Null0, Atomic Aggregate khác AS-Set như thế nào, và cách quảng bá Default Route.)