Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • BGP AS Path Prepending — “đánh lừa” đường đi để khách đi theo ý bạn

    BGP AS Path Prepending — “đánh lừa” đường đi để khách đi theo ý bạn


    Trong BGP, nhiều bạn nghĩ rằng chỉ cần quảng bá network là xong. Nhưng thực tế vận hành ISP/enterprise thường gặp một tình huống rất “CCIE”: cùng một prefix, nhưng bạn lại muốn nhiều site/neighbor chọn tuyến theo hướng khác. Thay vì chạm vào chính sách nội bộ hay xây lại topology, BGP cho phép bạn tác động vào cách đối tác nhìn “độ tin cậy” của tuyến bằng một kỹ thuật cực phổ biến: AS Path Prepending.
    Trong bài học hôm nay, mình chia sẻ theo đúng tinh thần tài liệu bạn gửi: từ lý thuyết đến cách cấu hình, vì sao làm như vậy lại có tác dụng, và phải quan sát gì trên BGP để biết bạn đã làm đúng. 1) AS Path là gì và vì sao nó điều khiển chọn đường?


    Trong tài liệu, thuộc tính được gọi trực tiếp là AS Path.
    Ý cốt lõi:
    • BGP sẽ ưu tiên tuyến có AS Path ngắn hơn khi cân nhắc đường đi đến cùng đích.
    • Bạn có thể “thao túng” AS Path bằng cách AS Path Prepending để tuyến của bạn trông “dài hơn”, từ đó ảnh hưởng tới quyết định chọn tuyến của neighbor.
    Bạn có thể hiểu đơn giản thế này:
    Nếu đối tác A nhìn thấy cùng một mạng đích nhưng có hai đường:
    • Route đi qua ít AS hơn (AS Path ngắn hơn)
    • Route đi qua nhiều AS hơn (AS Path dài hơn)
    thì BGP sẽ nghiêng về route có AS Path ngắn hơn.
    AS Path Prepending là cách bạn cố tình làm cho tuyến của mình “trông dài hơn” để đối tác tránh. 2) Ví dụ topology trong tài liệu: 3 router quảng bá cùng network, rồi dùng prepend để “đảo lựa chọn”


    Tài liệu mô tả một ví dụ gồm 3 router ở AS1 và 1 router ở AS2 (đơn giản hóa để tập trung vào bản chất).
    Điểm quan trọng trong phần hình vẽ:
    • R1 và R3 là hai điểm ở AS1
    • R2 là điểm ở AS2 (nhận tuyến từ AS1)
    • Tất cả quảng bá cùng một mạng đích: 1.1.1.0/24 (thể hiện trong lệnh network 1.1.1.0 mask 255.255.255.0)
    • Khi đó, ở AS2 sẽ tồn tại ít nhất hai tuyến có cùng đích, khác nhau chủ yếu ở độ dài AS Path.
    Lúc đầu (chưa prepend), cả hai tuyến về AS2 sẽ có AS Path giống nhau về “hình thái độ dài”, nên BGP sẽ chọn theo logic best-path tiêu chuẩn tiếp theo trong trường hợp hòa (trong tài liệu, trọng tâm là việc quan sát AS Path và bước sau khi prepend). 3) Làm thế nào để AS Path Prepending “có tác dụng”?


    Trong tài liệu, đoạn then chốt là: bạn thay vì “đổi đường thật”, bạn chỉ cần thêm số lần xuất hiện AS của bạn vào AS Path khi quảng bá.
    Cấu hình quan trọng ở đây là dùng route-map với câu lệnh set as-path prepend.
    Tài liệu cho một đoạn minh họa rõ ý:
    • Tạo route-map
    • Áp route-map vào neighbor trong BGP outbound
    • Route-map sẽ set as-path prepend theo số lần bạn chỉ định
    Điểm CCIE cần nhớ:
    • Bạn prepend outbound (khi quảng bá ra neighbor), chứ không prepend “làm bẩn” AS Path nội bộ của bảng trong toàn mạng một cách mơ hồ.
    • Prepend ảnh hưởng tới cách neighbor nhìn thấy AS Path, tức là ảnh hưởng quyết định best-path của neighbor.
    4) Walkthrough đúng theo tài liệu: từ cấu hình ban đầu đến lúc prepend và kiểm chứng

    4.1 Cấu hình BGP cơ bản và advertise các network giống nhau


    Trong tài liệu, R1/R3 đều:
    • bật router bgp ...
    • thiết lập neighbor eBGP qua IP tương ứng
    • dùng network 1.1.1.0 mask 255.255.255.0 để quảng bá cùng một đích
    Sau khi xong phần này, tài liệu nói “First, we’ll configure BGP between the three routers… And we’ll advertise both networks in BGP.”
    Tức là: bước đầu là để đảm bảo neighbor ở AS2 nhận đủ các tuyến để so sánh. 4.2 Quan sát bảng BGP trước khi prepend (để có mốc so sánh)


    Tài liệu có đoạn thể hiện một bảng BGP (R2 show ip bgp) mà bạn có thể nhận ra:
    • tuyến đến 1.1.1.0/24 (và cả các entry liên quan)
    • AS Path hiển thị trực tiếp trong bảng (trong phần “AS Path”/các cột hiển thị đường đi)
    Đây là kinh nghiệm mình cực kỳ khuyên:
    Trước khi thay chính sách, hãy chụp “baseline” AS Path / best-path. Khi kiểm chứng xong, bạn biết rõ mình đang thành công vì AS Path đã dài hơn đúng như kỳ vọng. 4.3 Thực hiện AS Path Prepending trên outbound của R1


    Trong tài liệu, route-map được dùng theo dạng:
    • route-map PREPEND permit 10
    • set as-path prepend 1 1 1 1 (ý là prepend AS của bạn nhiều lần)
    Sau đó:
    • áp route-map này outbound:
      neighbor <IP> route-map PREPEND out
    Trong hình cuối, cấu hình mẫu trên R1 có thể tóm theo logic:
    • interface loopback và kết nối BGP đã có sẵn
    • phần mới là neighbor ... route-map ... out và set as-path prepend ...
    4.4 Sau khi prepend: kiểm chứng bằng BGP table và thấy sự thay đổi AS Path


    Tài liệu thể hiện rõ kỳ vọng:
    • Khi xem lại show ip bgp trên R2, bạn sẽ thấy:
      • Next hop vẫn tương tự (vì topology không đổi)
      • nhưng AS Path của tuyến đi từ R1 sẽ dài hơn
      • và có thể xuất hiện thay đổi về best-path (tùy trường hợp cạnh tranh tuyến)
    Trong đoạn mô tả, tài liệu nhấn mạnh:
    • “Now we see that ... is the next hop IP address we use”
    • và đặc biệt: “we can also see that the AS Path has become longer for the second entry.”
    Nghĩa là: kiểm chứng không phải “nghe cảm giác”, mà nhìn thấy trực tiếp AS Path đã dài hơn do prepend. 5) Kinh nghiệm thực chiến từ góc nhìn học viên: dùng AS Path Prepending khi nào?


    Dựa đúng vào bản chất trong tài liệu (và kinh nghiệm làm lab/CCIE), AS Path Prepending phù hợp nhất khi bạn muốn:
    • Điều hướng upstream/neighbor chọn tuyến khác cho cùng prefix
    • Giảm khả năng neighbor chọn “tuyến của bạn” khi bạn không muốn chịu load/đi theo hướng này
    • Tạo “tín hiệu chính sách” mà không cần:
      • hard reset
      • đổi topology
      • hoặc xây lại cơ chế phân tải
    Lưu ý quan trọng:
    • Nếu đối tác dùng nhiều tiêu chí best-path (Local Preference, MED, etc.), prepend chỉ là một yếu tố trong chuỗi so sánh. Tuy nhiên, trong nhiều trường hợp thực tế, AS Path vẫn là đòn bẩy hiệu quả.
    6) Gợi ý đọc debug/kiểm tra để chắc chắn bạn đã làm đúng (theo đúng tinh thần tài liệu)


    Tài liệu dùng cách tiếp cận “đặt mốc rồi xem kết quả”:
    • Trước prepend: xem AS Path/best-path trong bảng BGP
    • Sau prepend: xem AS Path của entry tương ứng có tăng độ dài không
    Kinh nghiệm cá nhân của mình khi dạy học viên:
    • Bạn nên kiểm tra đúng entry “đến cùng đích prefix” và đúng “neighbor/next-hop” mà bạn dự định tác động.
    • Tránh tình huống bạn prepend trên một tuyến nhưng bạn lại nhìn nhầm tuyến khác (vì trong BGP có thể có nhiều path cho cùng prefix).
    Kết luận: AS Path Prepending không phải “cách làm cho route biến mất”, mà là “cách làm cho route trông kém hấp dẫn hơn”


    Nếu phải chốt lại đúng với nội dung tài liệu:
    • BGP ưu tiên AS Path ngắn hơn
    • AS Path Prepending là cách bạn tăng độ dài AS Path khi quảng bá
    • và do đó tác động tới quyết định chọn đường của neighbor mà không cần thay topology.
    Attached Files
Working...
X