SECURITY VALIDATION

Kiểm thử RPKI Route Origin Validation: Valid, Invalid, NotFound và cache failure

11/9/2026 · 16 phút

Hai RPKI validator truyền VRP tới router để kiểm tra route Valid Invalid và NotFound
Mục lục bài viết 10 phần

Router hiển thị một route là RPKI Invalid chưa có nghĩa route đó bị loại; ngược lại, validator còn chạy không bảo đảm dữ liệu VRP đang mới. Test plan phải theo chuỗi bằng chứng từ ROA/VRP, phiên RPKI-Router, trạng thái route, policy BGP đến forwarding thực tế và hành vi khi cache mất kết nối.

ĐỌC NHANH

Bài viết giúp bạn

  • ROV trả lời câu hỏi nào?
  • Topology lab và ranh giới an toàn
  • Biến số phải khóa
Tùy chỉnh đọc
01

ROV trả lời câu hỏi nào?

#

Route Origin Validation đối chiếu prefix và origin AS của BGP announcement với Validated ROA Payload (VRP). RFC 6811 định nghĩa ba kết quả Valid, Invalid và NotFound. Valid nghĩa là có ít nhất một VRP khớp origin AS và giới hạn độ dài. Invalid nghĩa là có VRP bao phủ prefix nhưng không VRP nào khớp; một VRP không khớp không phủ định một VRP khác khớp. NotFound nghĩa là không có VRP nào bao phủ prefix, không chứng minh route hợp pháp.

ROV xác thực origin, không xác thực toàn bộ AS_PATH và không tự quyết policy. Một router có thể đánh dấu validation state rồi vẫn chọn Invalid nếu policy chưa reject. Vì vậy câu hỏi test là: dữ liệu nào đến router, state nào được gán, policy nào tác động và packet đi đâu.

02

Topology lab và ranh giới an toàn

#

Lab tối thiểu có hai RPKI relying-party/validator, hai router dưới thử nghiệm, route generator và receiver. Dùng prefix tài liệu hoặc prefix lab không quảng bá ra Internet; chặn eBGP escape ở nhiều lớp. Tạo VRP test qua fixture hoặc trust anchor/ROA của lab riêng, không sửa ROA production để tạo kết quả mong đợi. Validator lấy dữ liệu production chỉ khi test read-only và đã kiểm soát nguy cơ route test trộn với route thật.

Bài này giới hạn bài đo RTR version 1 theo RFC 8210; ghi rõ phiên bản đã thương lượng giữa router và validator. Thu serial/session ID, cache response, reset query, prefix PDU, router validation state, BGP best-path và FIB. Đồng bộ clock để phân tích refresh/retry/expire.

Minh họa: Validator dự phòng, router và route generator trong lab cô lập; không phải quảng bá route ra Internet.
Minh họa: Validator dự phòng, router và route generator trong lab cô lập; không phải quảng bá route ra Internet.
03

Biến số phải khóa

#

Khóa validator version, repository/TAL scope, RTR version, transport protection nếu có, timer refresh/retry/expire, policy route-map, BGP attributes và thứ tự policy. Lưu snapshot VRP trước mỗi run; dữ liệu Internet thay đổi trong lúc test có thể làm state khác nhau mà DUT không lỗi.

Với mỗi prefix, ghi prefix length, toàn bộ covering VRP, origin AS và maxLength; thêm case nhiều VRP chồng lấn có ít nhất một VRP khớp. Tách bài test state calculation khỏi policy: trước tiên xác nhận state, sau đó lần lượt monitor-only, local-preference reduction và reject Invalid.

04

KPI và bằng chứng

#

KPI gồm thời gian VRP đến router, độ khớp giữa hai validator, tỷ lệ route được gán đúng state, thời gian policy có hiệu lực, convergence, packet loss và service restoration. Với failure, đo age dữ liệu, thời điểm expire, hành vi state sau expire và thời gian resync.

Pass/fail phải nêu policy mong đợi. “Invalid bị gán đúng state” và “Invalid bị reject” là hai tiêu chí khác nhau.

  • Lớp: Repository/validator · KPI: VRP count, fetch/validation error · Bằng chứng: validator log/snapshot · Cạm bẫy: Chỉ thấy process up
  • Lớp: RTR · KPI: session, serial, PDU, timer · Bằng chứng: packet/log router · Cạm bẫy: Nhầm TCP up với data fresh
  • Lớp: BGP policy · KPI: state, local-pref, reject · Bằng chứng: RIB-in/RIB/best path · Cạm bẫy: Chỉ nhìn received route
  • Lớp: Forwarding · KPI: FIB next-hop, loss, latency · Bằng chứng: traffic + FIB snapshot · Cạm bẫy: Suy forwarding từ control plane
05

Ma trận route và policy

#

Thêm case ROA bị thu hồi và validator không đồng thuận tạm thời. Đây là cách kiểm cảnh báo và quy trình điều tra trước khi áp policy rộng.

  • ROA/announcement: Prefix, origin và length khớp · State mong đợi: Valid · Policy cần kiểm: Chấp nhận theo policy bình thường
  • ROA/announcement: Origin AS sai · State mong đợi: Invalid · Policy cần kiểm: Reject/de-preference/monitor theo thiết kế
  • ROA/announcement: Length vượt maxLength · State mong đợi: Invalid · Policy cần kiểm: Không nhầm với more-specific hợp lệ
  • ROA/announcement: Không có covering VRP · State mong đợi: NotFound · Policy cần kiểm: Không mặc định reject
  • ROA/announcement: Hai path, Valid và Invalid · State mong đợi: Hai state khác nhau · Policy cần kiểm: Best-path đúng thứ tự policy
  • ROA/announcement: VRP thay đổi Valid→Invalid · State mong đợi: State chuyển · Policy cần kiểm: Convergence và alert
  • ROA/announcement: Validator mất kết nối · State mong đợi: Phụ thuộc timer/policy · Policy cần kiểm: Không flap sớm, không giữ stale vô hạn
06

Test plan từng bước

#

Lặp test với full-table scale hoặc tập route đại diện sau khi functional test đã đúng. Functional correctness và scale/stability nên có hai gate riêng.

  • Bước 1: Cô lập route generator; chứng minh prefix test không thể thoát lab.
  • Bước 2: Lưu TAL, validator version, VRP snapshot và router config.
  • Bước 3: Thiết lập RTR tới validator A/B; xác nhận serial/session và VRP count.
  • Bước 4: Phát route Valid, Invalid-origin, Invalid-length và NotFound từng cái một.
  • Bước 5: Đối chiếu state ở Adj-RIB-In, policy result, Loc-RIB và FIB.
  • Bước 6: Phát đồng thời hai path; thay đổi BGP attributes để kiểm thứ tự policy.
  • Bước 7: Chuyển VRP Valid→Invalid và ngược lại; đo propagation/convergence.
  • Bước 8: Ngắt một validator, cả hai validator và repository upstream theo kịch bản riêng.
  • Bước 9: Theo dõi refresh/retry/expire, stale data, alert và resync.
  • Bước 10: Phát traffic có sequence; đo loss, latency và service restoration quanh mỗi event.
07

Cache failure, stale data và recovery

#

RFC 8210 quy định timer expire tính từ End of Data và router không được giữ dữ liệu của cache quá hạn đó. Giá trị cấu hình cần nằm trong giới hạn giao thức; policy BGP sau khi loại dữ liệu hết hạn vẫn phải được kiểm tra riêng. Kill process, chặn TCP RTR, làm validator không lấy được repository và tạo dữ liệu lỗi là bốn failure khác nhau.

Kiểm tra router loại dữ liệu cache đúng lúc hết hạn và đánh giá lại route bằng tập VRP còn hợp lệ. Nếu không còn VRP bao phủ từ bất kỳ nguồn hợp lệ nào, kết quả là NotFound; mất một cache không tự làm mọi route thành NotFound khi cache khác còn dữ liệu. Đo route churn và cảnh báo. Khi cache trở lại, đo full resync hay incremental update, CPU spike, BGP re-evaluation và packet loss. Hai validator cùng nguồn dữ liệu không hoàn toàn loại bỏ lỗi chung từ repository/TAL.

Minh họa: Mất cache, dữ liệu cũ hết hạn và đồng bộ lại; trạng thái route còn phụ thuộc các VRP hợp lệ khác và policy.
Minh họa: Mất cache, dữ liệu cũ hết hạn và đồng bộ lại; trạng thái route còn phụ thuộc các VRP hợp lệ khác và policy.
08

Giới hạn kết luận

#

ROV đúng không chứng minh AS_PATH hợp lệ, route leak không xảy ra hoặc traffic tới đúng tổ chức. Một Invalid cũng không tự chứng minh tấn công; có thể là lỗi ROA, maxLength hoặc cấu hình BGP. Cần quy trình liên hệ owner và rollback khẩn.

Kết quả giới hạn theo validator/router version, TAL, VRP snapshot, timer, policy, route scale và thời điểm đo. Không công bố “toàn Internet được bảo vệ” từ lab vài prefix; cũng không suy router hỗ trợ mọi RFC extension nếu chỉ thử RTR cơ bản.

09

Runbook rollout

#
  • Bắt đầu monitor-only; đo Invalid/NotFound và xử lý false positive.
  • Dùng hai validator độc lập vận hành, theo dõi freshness và divergence.
  • Canary reject Invalid trên phạm vi nhỏ, giữ rollback route-map.
  • Cảnh báo RTR session, VRP age, validation-state change và route count.
  • Ghi owner cho policy exception và ngày hết hạn.
  • Diễn tập cache loss, data expire và resync trước production.
  • Tái kiểm thử sau nâng cấp router, validator hoặc thay TAL/policy.
10

Khái niệm cần nhớ

#
  • ROA: đối tượng ký cho phép một AS originate prefix trong phạm vi length.
  • VRP: payload đã được validator xác nhận để router dùng cho ROV.
  • Valid: announcement khớp VRP về origin và length.
  • Invalid: có ít nhất một VRP bao phủ nhưng không VRP nào khớp cả origin và length.
  • NotFound: không có VRP bao phủ; không đồng nghĩa an toàn hay độc hại.
  • RTR: giao thức chuyển validated data từ cache tới router.
THUẬT NGỮ NHANH

Khái niệm cần nhớ

Security efficacy
Mức độ phát hiện hoặc ngăn chặn đúng nội dung kiểm thử trong phạm vi đã xác định.
Goodput
Lưu lượng ứng dụng hữu ích tới đích, không tính phần truyền lại hoặc overhead không tạo giá trị.
False positive
Lưu lượng hợp lệ bị nhận diện hoặc xử lý nhầm như một mối đe dọa.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo4 nguồn

Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.

Nguyên tắc biên tập

NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.

Thông số và khả năng sản phẩm có thể thay đổi theo phiên bản. Hãy đối chiếu tài liệu chính thức trước khi xây dựng cấu hình hoặc tiêu chí nghiệm thu.
BẮT ĐẦU TỪ BÀI TOÁN

Cần chuyển kiến thức thành test plan?

Chia sẻ mục tiêu, topology và ràng buộc kỹ thuật. NetVali sẽ cùng bạn xác định bài đo phù hợp.

Trao đổi yêu cầu kỹ thuật