
Mục lục bài viết 9 phần
NAT64/DNS64 giúp client IPv6-only đi tới dịch vụ IPv4, nhưng “truy cập được” chưa chứng minh thiết kế đúng. DNSSEC, IPv4 literal, MTU, port exhaustion, fragment, timeout state và failover có thể làm ứng dụng lỗi từng phần. Bài đo cần nối DNS answer với flow translation và giao dịch ứng dụng.
Bài viết giúp bạn
- Câu hỏi kỹ thuật cần trả lời
- Topology và điều kiện đo
- Biến số phải kiểm soát
Câu hỏi kỹ thuật cần trả lời
#DNS64 tạo AAAA tổng hợp từ A record khi điều kiện phù hợp; NAT64 chuyển gói giữa IPv6 và IPv4. Hai chức năng có thể chung appliance hoặc tách rời. Test plan phải chứng minh prefix tổng hợp khớp translator, record AAAA thật không bị thay thế sai, TTL/cache đúng và DNSSEC được xử lý theo kiến trúc đã chọn.
Ở data plane, cần biết translator stateful hay stateless, pool IPv4/port, protocol hỗ trợ, timeout và logging. Ở application layer, phải kiểm API, web, TLS, SIP hoặc workload thực tế; ứng dụng nhúng IPv4 literal hoặc so sánh địa chỉ trong payload có thể fail dù TCP connect bình thường.
Phạm vi state scale trong bài là NAT64 stateful theo RFC 6146. DNS64 không tự giải quyết ứng dụng dùng IPv4 literal; có thể cần CLAT/464XLAT hoặc hỗ trợ của ứng dụng. AAAA tổng hợp không mang chữ ký authoritative hợp lệ cho AAAA đó: resolver có thể validate dữ liệu gốc trước khi tổng hợp, nhưng client tự validate cần kiến trúc tương thích, không nên tắt DNSSEC toàn hệ thống.
Topology và điều kiện đo
#Topology gồm client IPv6-only, recursive resolver có DNS64, NAT64 translator đôi hoặc đơn, router IPv6, mạng IPv4 server và các điểm capture trước/sau translator. Thêm authoritative DNS test zone với các record A-only, AAAA-only, dual-stack, DNSSEC signed/unsigned và response lỗi. Đồng hồ đồng bộ giúp liên kết query, synthesis, state create và transaction.
Thiết lập đường dual-stack tham chiếu để phân biệt lỗi origin với lỗi translation. Khóa Pref64, IPv4 pool, routing, ECMP, firewall, MTU, DNS cache, TTL, EDNS, transport UDP/TCP, resolver version và translator software. Baseline phải chạy lần lượt IPv6-native, IPv4-native rồi NAT64.

Biến số phải kiểm soát
#DNS corpus gồm A-only, AAAA thật, dual-stack, NXDOMAIN, CNAME chain, response lớn, DNSSEC valid/bogus và record có TTL khác nhau. Traffic gồm TCP, UDP, ICMP, TLS/SNI, HTTP/2 hoặc HTTP/3 nếu kiến trúc hỗ trợ, connection short/long-lived, nhiều destination và source. Phải đánh dấu ứng dụng dùng hostname hay IPv4 literal.
Data-plane variables gồm packet size, fragmentation, ICMP error, PMTUD, concurrent sessions, CPS, port allocation, timeout, hairpin nếu có và asymmetric path. Failure variables gồm resolver loss, stale cache, translator member loss, pool exhaustion, route withdrawal và config mismatch giữa Pref64 với prefix translator.
KPI và bằng chứng đầu ra
#KPI DNS gồm synthesis correctness, query success, cache behavior và added latency. KPI translation gồm new connections/s, concurrent state, throughput/goodput, latency p50/p95/p99, packet loss, retransmission, port utilization và state creation failure. KPI application gồm transaction success, response code, TLS completion và dữ liệu đúng.
Không gộp DNS latency và translator latency thành một số duy nhất. Một DNS cache nóng có thể che lỗi synthesis; một HTTP retry có thể che packet loss hoặc state reset. Báo cả tầng giao thức lẫn outcome ứng dụng.
- KPI: AAAA synthesis · Cách đo: So answer với A + Pref64 · Bằng chứng: DNS capture, zone manifest
- KPI: Transaction success · Cách đo: Giao dịch hoàn tất / khởi tạo · Bằng chứng: Client/server log
- KPI: Translation latency · Cách đo: Chênh lệch độ trễ với baseline có topology tương đương; không mặc nhiên là thời gian xử lý riêng của NAT64 · Bằng chứng: Timestamp hai phía
- KPI: State/port pressure · Cách đo: Utilization theo tải · Bằng chứng: Translator counters
- KPI: MTU behavior · Cách đo: Success theo payload/DF/ICMP · Bằng chứng: Capture + app result
- KPI: Failover interruption · Cách đo: Fault đến giao dịch ổn định · Bằng chứng: Timeline, loss window
- KPI: False synthesis · Cách đo: AAAA được tạo khi không nên · Bằng chứng: DNS corpus + answer
Ma trận quyết định và failure mode
#Pass/fail phải tách feature correctness và capacity. Translator có thể đúng ở tải thấp nhưng hết port dưới session mix thực tế. Ngược lại, throughput cao không bù được DNSSEC hoặc ICMP mapping sai.
- Kịch bản: A-only hostname · Kỳ vọng: AAAA tổng hợp đúng Pref64 · Rủi ro cần bắt: Prefix sai, TTL sai
- Kịch bản: AAAA thật · Kỳ vọng: Dùng IPv6 native · Rủi ro cần bắt: Tổng hợp đè record thật
- Kịch bản: DNSSEC · Kỳ vọng: Theo validation design · Rủi ro cần bắt: Bogus/false validation
- Kịch bản: IPv4 literal · Kỳ vọng: Fail rõ hoặc qua cơ chế riêng · Rủi ro cần bắt: Lỗi âm thầm trong app
- Kịch bản: Pool gần đầy · Kỳ vọng: Alert/limit theo thiết kế · Rủi ro cần bắt: Port exhaustion
- Kịch bản: Translator member mất · Kỳ vọng: Recovery trong SLO · Rủi ro cần bắt: State mất, asymmetry
- Kịch bản: ICMP/PMTUD · Kỳ vọng: Error mapping đúng · Rủi ro cần bắt: Blackhole payload lớn
- Kịch bản: DNS64 mất · Kỳ vọng: Cache/failover rõ · Rủi ro cần bắt: Stale hoặc no answer
Test plan theo từng pha
#Pha A xác nhận zone và native baseline. Pha B gửi từng record corpus, xóa/làm nóng cache có kiểm soát và đối chiếu answer. Pha C mở TCP/UDP/ICMP qua translator ở tải thấp, nối mỗi transaction với state/counter. Pha D quét frame/payload, CPS, session concurrency, destination count và duration.
Pha E kiểm TLS, API và ứng dụng có IPv4 literal hoặc địa chỉ trong payload. Pha F tạo response lớn, fragment và ICMP Packet Too Big/unreachable. Pha G chèn resolver outage, translator failover, route withdrawal, pool/port pressure và prefix mismatch trong lab. Pha H rollback, flush state/cache theo runbook và xác nhận không còn route hoặc record tổng hợp ngoài ý muốn.

Checklist nghiệm thu và runbook
#- Ghi resolver/translator model, version, topology và Pref64.
- Chuẩn bị zone A-only, AAAA-only, dual-stack và DNSSEC.
- So native IPv4/IPv6 với NAT64 cùng payload.
- Kiểm hostname, IPv4 literal và payload nhúng địa chỉ.
- Quét CPS, session, port pool, destination và timeout.
- Kiểm TCP, UDP, ICMP, TLS và application transaction.
- Chèn MTU, fragment, Packet Too Big và route asymmetry.
- Thử DNS64/translator failure và đo interruption.
- Đối soát capture, DNS log, state table và server log.
- Có rollback cho prefix, route, cache và state.
Giới hạn của kết luận
#Pass với web/TCP không chứng minh mọi ứng dụng hoạt động qua NAT64. Protocol mang địa chỉ trong payload, dùng IPv4 literal hoặc phụ thuộc inbound connection cần đánh giá riêng. Kết quả capacity phụ thuộc pool, timeout, traffic mix, destination diversity, logging và HA mode.
DNS64/NAT64 không tự tạo end-to-end IPv6. Nó là cơ chế chuyển tiếp tới IPv4 và có thêm state/failure domain. Không suy kết quả lab thành quy mô production nếu chưa mô phỏng cache, session lifetime, burst và đường bất đối xứng.
Khái niệm cần nhớ
#- NAT64: chuyển tiếp giữa IPv6 và IPv4 theo prefix/pool xác định.
- DNS64: tạo AAAA tổng hợp từ A record trong điều kiện phù hợp.
- Pref64: prefix IPv6 dùng để nhúng địa chỉ IPv4.
- Synthesis: quá trình tạo record AAAA phục vụ đường NAT64.
- Port exhaustion: cạn tài nguyên ánh xạ port/state.
- IPv4 literal: địa chỉ IPv4 được nhúng trực tiếp thay vì hostname.
- PMTUD: khám phá MTU đường đi dựa trên tín hiệu ICMP.
- Stateful failover: chuyển vai trò có hoặc không giữ state phiên.
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.
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.
