Sổ tay kỹ thuật

BGP Add-Path và BGP PIC – hội tụ nhanh khi mất next-hop

concept#bgp#iosxr#junos· cập nhật 2026-11-06

Hiểu Add-Path (quảng bá nhiều path cho một prefix) và PIC edge/core (backup path dựng sẵn trong FIB) để giảm thời gian hội tụ BGP, kèm cấu hình cơ bản XR và Junos.

Sửa trang này
Mục lục

Mặc định BGP chỉ quảng bá một best path cho mỗi prefix. Route reflector (RR) chọn best path theo góc nhìn của nó rồi chỉ reflect path đó, nên client mất thông tin về path thứ hai. Hệ quả: khi PE đang là next-hop hỏng, client phải chờ RR chọn và gửi lại path mới, rồi mới cập nhật lại FIB cho hàng trăm nghìn prefix. Add-Path giải quyết phần "thiếu path", PIC (Prefix Independent Convergence) giải quyết phần "cập nhật FIB chậm".

Luồng hội tụ khi PE1 hỏng

flowchart LR PE1["PE1 (next-hop chính)"] -.->|"down"| R["PE-xa"] PE2["PE2 (next-hop backup)"] --> R R --> F["FIB: primary PE1, backup PE2"] F -->|"IGP báo PE1 mất"| S["Đổi 1 pointer sang PE2"]

Khi IGP báo loopback của PE1 mất, router chỉ cần đổi next-hop đã dựng sẵn (một thao tác theo BGP path-list / pointer), không phải ghi lại từng prefix. Thời gian hội tụ vì thế gần như không phụ thuộc số prefix.

Add-Path và PIC khác nhau thế nào

Tiêu chí BGP Add-Path (RFC 7911) BGP PIC (edge/core)
Giải quyết Router không biết path thứ hai Có path thứ hai nhưng đổi FIB chậm
Hoạt động ở Control plane (quảng bá giữa các speaker) Data plane (FIB hierarchical, backup next-hop)
Cần thoả thuận capability Có, hai bên bật send/receive Không, chỉ cấu hình cục bộ
Tiền đề Mỗi path có path-id riêng trong UPDATE Phải có ít nhất hai path hợp lệ trong BGP table
Thường dùng cùng nhau Có: Add-Path đưa path backup tới PE, PIC dựng backup trong FIB

Hai khái niệm PIC:

  • PIC core: next-hop BGP (loopback PE) vẫn còn nhưng đường IGP tới nó đổi hoặc mất một nhánh ECMP. FIB có sẵn đường IGP backup (ví dụ nhờ TI-LFA), tất cả prefix dùng chung next-hop nên đổi cùng lúc.
  • PIC edge: mất hẳn PE/next-hop BGP chính (hoặc link eBGP). Router đổi sang path BGP backup đã có sẵn. Cần path backup trong BGP table, thường nhờ Add-Path, best-external hoặc RD khác nhau mỗi PE trong L3VPN.

Cách có path backup trong BGP table

Cách Mô tả Lưu ý
RD duy nhất mỗi PE (VPN) Mỗi PE dùng RD khác nhau nên RR coi là prefix khác, reflect cả hai Tốn bộ nhớ RR theo số PE, nhưng không cần capability mới
Add-Path RR/ASBR quảng bá thêm path (best + backup hoặc tất cả) Cần cả hai phía hỗ trợ, tăng số route trong BGP table
Best-external PE có path eBGP tốt nhất nhưng đang chọn path iBGP vẫn quảng bá path eBGP Chỉ phủ trường hợp PE ở biên
Multipath Cả hai path active (ECMP), mất một thì còn một Chỉ khi attribute đủ giống nhau

Add-Path làm số path trong BGP table nhân lên. Đừng bật all paths cho toàn bộ bảng định tuyến Internet. Giới hạn theo số path (path-count hoặc policy chỉ chọn một backup) và theo prefix cần bảo vệ.

Cấu hình cơ bản

IOS XR – Add-Path

route-policy ADDPATH-BACKUP
  set path-selection backup 1 advertise
end-policy
!
router bgp 65000
 address-family ipv4 unicast
  additional-paths receive
  additional-paths send
  additional-paths selection route-policy ADDPATH-BACKUP
 !
 neighbor 192.0.2.2
  remote-as 65000
  update-source Loopback0
  address-family ipv4 unicast
   additional-paths receive
   additional-paths send
  !
 !
!

Policy set path-selection có các kiểu thường gặp: backup N, all, group-best; kèm từ khoá advertise (quảng bá path đó cho peer) và install (cài path vào RIB/FIB làm backup). Kiểm tra bằng show bgp ipv4 unicast 203.0.113.0/24 (xem nhiều path và nhãn backup) và show bgp neighbors 192.0.2.2 (capability Additional-paths đã thoả thuận).

Junos – Add-Path

set protocols bgp group IBGP type internal
set protocols bgp group IBGP local-address 192.0.2.1
set protocols bgp group IBGP family inet unicast add-path receive
set protocols bgp group IBGP family inet unicast add-path send path-count 2

path-count là số path tối đa gửi cho mỗi prefix. Ngoài ra Junos có path-selection-mode (all-paths hoặc equal-cost-paths) và prefix-policy để chỉ áp cho một số prefix. Kiểm tra: show bgp neighbor 192.0.2.2 (dòng Addpath), show route 203.0.113.0/24 extensive.

PIC trên thiết bị

PIC chủ yếu là hành vi của forwarding plane và phụ thuộc phần cứng, phiên bản:

  • IOS XR: BGP PIC edge/core thường có sẵn trên các nền tảng hỗ trợ (CEF hierarchical, BGP path-list), điều kiện chính là phải có path backup trong BGP. Kiểm tra bằng show cef 203.0.113.0/24 detail (có entry backup) và show bgp 203.0.113.0/24 (path đánh dấu backup).
  • Junos: bật protection bằng set routing-options protect core (và tương ứng trong routing-instance cho VPN), cần thiết khi chạy PIC. Xem show route 203.0.113.0/24 extensive (next-hop Indirect và Next hop có backup).

Kiểm tra kết quả bằng cách ngắt thử next-hop chính trong lab (shutdown loopback PE1 hoặc link), chạy ping/iperf liên tục tới prefix, đếm số gói mất.

Khi nào dùng

  • Backbone có RR, mỗi prefix có từ hai PE trở lên nhận (multi-homing, dual-PE L3VPN, ASBR kép): bật Add-Path giới hạn (backup 1 hoặc path-count 2) để client biết path thứ hai.
  • Bảng route lớn (hàng trăm nghìn prefix trở lên) và yêu cầu hội tụ dưới 1 giây: dùng PIC kết hợp BFD để phát hiện mất next-hop nhanh.
  • Không cần khi mạng nhỏ, hội tụ vài giây vẫn chấp nhận được, hoặc RR/PE chưa hỗ trợ capability (Add-Path cần hai phía). Hãy kiểm tra phiên bản phần mềm và license trước khi bật.
  • Troubleshooting thêm: BGP session không lên, không nhận route.

Tham khảo