NETWORK TESTING

Kiểm thử DNSSEC: chain of trust, key rollover và lỗi xác thực

14/8/2026 · 16 phút

Topology kiểm thử DNSSEC gồm authoritative DNS, parent zone, recursive resolver, client và các điểm packet capture
Mục lục bài viết 10 phần

DNSSEC không chỉ là thêm chữ ký vào zone. Một bản ghi DS sai ở parent, RRSIG hết hạn, clock lệch hoặc cache giữ trạng thái cũ đều có thể khiến resolver trả SERVFAIL dù authoritative server vẫn phản hồi. Test plan cần kiểm chứng toàn bộ chain of trust, hành vi cache và chuyển khóa trong những thời điểm dễ phát sinh gián đoạn.

ĐỌC NHANH

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

  • DNSSEC cần chứng minh điều gì
  • Topology và nguồn sự thật
  • Biến số phải kiểm soát
Tùy chỉnh đọc
01

DNSSEC cần chứng minh điều gì

#

DNSSEC cung cấp xác thực nguồn gốc dữ liệu và tính toàn vẹn cho dữ liệu DNS bằng chữ ký số. Resolver validating bắt đầu từ trust anchor, kiểm tra DS ở parent, DNSKEY ở child và RRSIG của RRset. Nó không mã hóa truy vấn và không chứng minh máy chủ ứng dụng phía sau là an toàn.

Mục tiêu nghiệm thu phải bao gồm hai phía: dữ liệu hợp lệ được phân giải, dữ liệu có chữ ký/chuỗi tin cậy sai bị từ chối đúng cách. Chỉ thấy cờ AD trong một lần truy vấn không chứng minh rollover, negative response hoặc cache expiry hoạt động đúng.

02

Topology và nguồn sự thật

#

Topology lab nên có authoritative server cho parent và child, ít nhất hai recursive resolver validating, client test và một đường tới resolver không validation để đối chiếu. Đặt capture ở client–resolver và resolver–authoritative; thu log validation, cache statistics và zone signing metadata.

Nếu kiểm tra domain công khai, không thay DS hoặc key production để thử lỗi. Dùng delegated test zone riêng hoặc private hierarchy tái hiện parent/child. Ghi rõ trust anchor, thuật toán, key tag, TTL, signature inception/expiration và nguồn thời gian.

Topology kiểm thử DNSSEC gồm authoritative DNS, parent zone, recursive resolver, client và các điểm packet capture
Topology kiểm thử DNSSEC gồm authoritative DNS, parent zone, recursive resolver, client và các điểm packet capture
03

Biến số phải kiểm soát

#

Khóa phiên bản authoritative/recursive software, DNSSEC algorithm, ZSK/KSK, TTL của DS/DNSKEY/RRset, RRSIG validity, negative TTL, EDNS buffer size, transport UDP/TCP và IPv4/IPv6. Đồng bộ thời gian là điều kiện đo: lệch clock có thể biến chữ ký hợp lệ thành “not yet valid” hoặc “expired”.

Cache phải được quản lý có chủ đích. Một run cold-cache và một run warm-cache trả lời hai câu hỏi khác nhau. Không flush cache giữa chừng mà không ghi lại, vì thao tác đó có thể che vấn đề TTL hoặc làm tăng tải authoritative không giống production.

04

KPI và bằng chứng pass/fail

#

Bằng chứng tối thiểu gồm packet capture, output dig +dnssec, validation log, key/DS metadata, trạng thái cache và timeline có timestamp. Không lấy dashboard resolver làm nguồn duy nhất.

  • KPI: Validation success rate · Cách đo: Truy vấn hợp lệ có AD/NOERROR · Pass/fail cần chốt: Theo tập record và resolver
  • KPI: Bogus rejection rate · Cách đo: Case chữ ký/chain sai bị từ chối · Pass/fail cần chốt: 100% case đã định nghĩa
  • KPI: Query latency p50/p95/p99 · Cách đo: Client timestamp · Pass/fail cần chốt: So baseline không validation
  • KPI: SERVFAIL rate · Cách đo: Response code theo test case · Pass/fail cần chốt: Chỉ xuất hiện ở case bogus dự kiến
  • KPI: TCP fallback · Cách đo: Truy vấn vượt UDP size · Pass/fail cần chốt: Thành công trong ngưỡng
  • KPI: Cache convergence · Cách đo: Từ publish đến resolver thấy state mới · Pass/fail cần chốt: Theo TTL/rollover plan
  • KPI: Authoritative load · Cách đo: QPS/CPU trong rollover hoặc cache flush · Pass/fail cần chốt: Không vượt headroom
05

Ma trận lỗi DNSSEC

#
  • Kịch bản: Chain hợp lệ · Resolver validating: NOERROR, AD phù hợp · Resolver không validation: NOERROR · Bằng chứng: RRSIG/DNSKEY/DS
  • Kịch bản: DS không khớp DNSKEY · Resolver validating: SERVFAIL/bogus · Resolver không validation: Có thể trả dữ liệu · Bằng chứng: Validation log
  • Kịch bản: RRSIG hết hạn · Resolver validating: SERVFAIL/bogus · Resolver không validation: Có thể trả dữ liệu · Bằng chứng: Signature time
  • Kịch bản: Chưa tới inception · Resolver validating: SERVFAIL/bogus · Resolver không validation: Có thể trả dữ liệu · Bằng chứng: Clock + RRSIG
  • Kịch bản: Unsigned delegation hợp lệ · Resolver validating: Insecure, không AD · Resolver không validation: NOERROR · Bằng chứng: Delegation state
  • Kịch bản: NSEC/NSEC3 negative · Resolver validating: NXDOMAIN/NODATA được xác thực · Resolver không validation: NXDOMAIN/NODATA · Bằng chứng: Proof record
  • Kịch bản: Response lớn · Resolver validating: UDP hoặc TCP fallback · Resolver không validation: Tương tự · Bằng chứng: Capture transport
06

Test plan baseline và negative test

#

Negative test phải nằm trong zone lab. Không ký sai domain thật chỉ để “xem cảnh báo”, vì tác động có thể kéo dài tới khi DS/TTL hết hạn trên nhiều resolver công cộng.

  • Lưu cấu hình, key tag, TTL, trust anchor và clock status.
  • Truy vấn SOA, A/AAAA, MX/TXT và NXDOMAIN qua từng resolver; lưu pcap/output.
  • Chạy cold-cache rồi warm-cache; so latency và authoritative QPS.
  • Tạo test zone có DS sai, chữ ký hết hạn hoặc thiếu RRSIG theo từng run riêng.
  • Xác nhận validating resolver từ chối, resolver đối chứng giúp chứng minh authoritative vẫn trả dữ liệu.
  • Thử response lớn với DNSKEY/TXT để kiểm tra EDNS, fragmentation và TCP fallback.
  • Mô phỏng mất một authoritative node và route/latency bất lợi; đo recovery.
  • Khôi phục zone hợp lệ, chờ/điều khiển TTL và xác nhận cache hội tụ.
07

Test plan key rollover

#

Tách ZSK rollover và KSK rollover. Với ZSK, publish key mới, pre-publish theo phương pháp đã chọn, ký bằng state mong muốn, chuyển active key rồi rút key cũ sau khi TTL cho phép. Với KSK, chuỗi còn liên quan DS tại parent; thời điểm publish DNSKEY, submit DS và retire key phải bám runbook.

Trong mỗi mốc, truy vấn qua nhiều resolver và ghi key tag/RRSIG thực tế. Thử client cache khác nhau, resolver vừa restart và resolver mất kết nối tạm thời. Pass không chỉ là “domain vẫn mở”: cả key cũ/mới cần xuất hiện đúng cửa sổ, không có SERVFAIL ngoài case dự kiến và rollback có thể thực hiện trước điểm không thể quay lại.

Timeline kiểm thử DNSSEC KSK và ZSK rollover
Timeline kiểm thử DNSSEC KSK và ZSK rollover
08

Khoanh vùng lỗi và runbook

#

Nếu resolver không validation trả lời nhưng validating resolver SERVFAIL, kiểm tra chain/clock trước application. Nếu mọi resolver timeout, xem transport, EDNS, firewall, fragmentation và authoritative reachability. Nếu chỉ một resolver lỗi, kiểm tra trust anchor, cache và software version của resolver đó.

Runbook nên lưu lệnh kiểm tra DS/DNSKEY/RRSIG, key tag dự kiến, contact registrar/parent, cửa sổ TTL, bước rollback và tiêu chí dừng rollout. Không xóa key cũ chỉ vì dashboard signing báo “healthy”; xác nhận dữ liệu nhìn từ ngoài.

09

Giới hạn của kết luận

#

Kết quả gắn với zone, thuật toán, resolver, TTL, network path và thời gian đã thử. DNSSEC pass không chứng minh confidentiality, availability của authoritative DNS hay tính hợp lệ của nội dung ứng dụng. Resolver công cộng có chính sách cache/validation khác nhau; cần test mẫu đại diện nhưng không suy rộng tuyệt đối.

10

Khái niệm cần nhớ

#
  • DS: Bản ghi ở parent liên kết tới DNSKEY của child.
  • DNSKEY: Public key dùng xác thực chữ ký trong zone.
  • RRSIG: Chữ ký số của một RRset.
  • ZSK/KSK: Khóa ký zone và khóa ký tập DNSKEY theo thiết kế phổ biến.
  • Trust anchor: Điểm tin cậy khởi đầu của resolver validating.
  • Bogus: Dữ liệu không vượt qua xác thực DNSSEC.
  • NSEC/NSEC3: Bằng chứng được ký cho tên/bản ghi không tồn tại.
THUẬT NGỮ NHANH

Khái niệm cần nhớ

DUT / SUT
Thiết bị hoặc toàn bộ hệ thống đang là đối tượng của bài kiểm thử.
Steady state
Giai đoạn tải đã ổn định và đủ điều kiện để lấy số liệu đại diện.
Pass / fail
Kết luận dựa trên ngưỡng đã thống nhất, luôn đi cùng topology, cấu hình và điều kiện đo.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo5 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