8 failure & operations labs
Chạy trong Linux VM/WSL có quyền admin hoặc máy lab cô lập. Không chạy traffic shaping, firewall hay packet capture trên production.
8 failure drills
labs/EVIDENCE.md để ghi environment, command/output và kết luận sau khi chạy.Lab 01 · Namespace packet path
Mục tiêu: tạo client/router/server bằng network namespaces, veth và routes; phục vụ HTTP ở server.
Inject: xóa return route rồi đổi sai prefix; dự đoán packet nào còn xuất hiện ở mỗi interface trước khi capture.
Pass criteria: client gọi được ở baseline; lỗi được quy về exact route/chiều; khôi phục không dùng route thừa.
Evidence: topology diagram, ip -br a, ip route, ip route get, capture hai phía và timestamps.
Lab 02 · Neighbor và L2 failure
Mục tiêu: quan sát ARP/neighbor state trong cùng link và gateway case.
Inject: đưa interface down, gán duplicate IPv4 trong lab hoặc tạo static neighbor sai rồi phục hồi.
Pass criteria: phân biệt no route với unresolved/incorrect neighbor; giải thích ARP request/reply và state transition.
Evidence: ip neigh trước/sau, ARP capture, interface counters và rollback log.
Lab 03 · TCP lifecycle, queues và TIME_WAIT
Mục tiêu: chạy listener chấp nhận chậm; tạo burst short-lived connections và connection reuse.
Inject: giảm backlog trong fixture, trì hoãn accept, so sánh keepalive/pooling.
Pass criteria: chỉ ra SYN queue/accept queue/application queue; giải thích TIME_WAIT owner; không “fix” bằng tăng mọi sysctl.
Evidence: ss -lnt, ss -s, nstat, load result và process FD count.
Lab 04 · Loss, latency và PMTU black hole
Mục tiêu: dùng tc netem trong namespace để inject delay/loss; tạo MTU mismatch có kiểm soát.
Inject: 2% loss, 100 ms delay; chặn ICMP Packet Too Big trong lab và gửi payload lớn.
Pass criteria: phân biệt RTT tăng, retransmission và PMTU failure; rollback toàn bộ qdisc/firewall.
Evidence: tc qdisc, tracepath, TCP info, ICMP/TCP capture, p50/p99 trước/sau.
Lab 05 · Stateful firewall và NAT capacity
Mục tiêu: cấu hình forwarding + SNAT cho namespace client; quan sát conntrack mapping.
Inject: rule order sai, DROP so với REJECT; tạo connection churn có giới hạn để thấy tuple growth.
Pass criteria: giải thích chiều translation/return, khác biệt timeout user thấy, và đề xuất pooling/capacity guardrail.
Evidence: ruleset export, conntrack sampled output/counters, socket states và rollback verification.
Lab 06 · DNS cache và failure semantics
Mục tiêu: chạy authoritative/recursive DNS fixture local hoặc dùng CoreDNS/dnsmasq; tạo A, CNAME và NXDOMAIN.
Inject: thay record/TTL, SERVFAIL, delayed response; kiểm tra application cache khác dig.
Pass criteria: phân biệt authoritative/recursive/application cache và NXDOMAIN/SERVFAIL; lập cutover timeline đúng.
Evidence: zone/config, dig +trace hoặc targeted queries, resolver logs, timestamps và app result.
Lab 07 · TLS SNI, chain và rotation
Mục tiêu: chạy hai TLS virtual hosts với CA/certificate lab; test đúng/sai SNI và trust store.
Inject: thiếu intermediate, hostname mismatch, expired/not-yet-valid cert; rotate certificate.
Pass criteria: xác định đúng validation step; không dùng insecure verify; rotation không phá connection mới ngoài cửa sổ định nghĩa.
Evidence: openssl s_client -servername, certificate fields/fingerprints, server logs và client verify output (không lưu private key).
Lab 08 · Production-style intermittent latency
Mục tiêu: fixture client→proxy→hai backends; một backend inject delay/loss theo chu kỳ.
Inject: DNS trả nhiều IP hoặc proxy round-robin, backend chậm 20% request; bật retry có giới hạn rồi thử cấu hình retry nguy hiểm.
Pass criteria: khoanh vùng theo backend/phase, chứng minh retry amplification, đưa mitigation reversible và verify user-facing SLO.
Evidence: request IDs, phase timings (DNS/connect/TLS/TTFB), proxy/backend logs, socket/capture sample, error/latency/load deltas.
Rubric chung
| Mức | Tiêu chí |
|---|---|
| Foundation | Reproduce, rollback sạch, mô tả symptom đúng. |
| Operational | Prediction trước test; evidence ở ít nhất hai layer; exact failing hop/state. |
| Senior | Định lượng impact, safe mitigation, trade-off và verification chống regression. |
Mẫu evidence cho mỗi lab
Quy tắc evidence
- Chạy trong Linux VM, WSL hoặc môi trường lab cô lập; ghi distribution, kernel, tool versions và quyền thực thi.
- Trước mỗi lab, ghi expected packet/state path và rollback plan.
- Lưu command liên quan cùng output đã loại secret; với PCAP chỉ ghi path, filter, thời gian và checksum/hash, không commit payload nhạy cảm.
- Ghi timestamps và tuple để correlate giữa DNS, socket, packet và application logs.
- Sau lab, xác nhận rollback bằng route/rules/qdisc/process checks.
Lab NN - Tên
- Status: NOT RUN | PASS | PARTIAL | FAIL
- Environment:
- Started/ended:
- Hypothesis and prediction:
- Baseline commands/results:
- Failure injection:
- Observed evidence:
- Root cause explanation:
- Mitigation and rollback:
- Pass criteria result:
- Artifacts and hashes:
- Limitations: