🧪 Lab 04 · Stateful NAT64 & DNS64 Translation Mechanics¶
✅ Validated on NAT64 / DNS64 specification (RFC 6146).
Time: ~45 minutes · Tools: Stateful NAT64, DNS64 Synthetic AAAA
Quick Start — Step-by-Step Execution Guide (Location: labs/ipv6-lab/)
Step 1 · Deploy the Lab Fabric (if not already running)
cd labs/ipv6-lab
sudo containerlab deploy -t topology.clab.yml --max-workers 1
Step 2 · Launch the Fully Guided Interactive Walkthrough
./run.sh --guided
Alternative Execution Options (Automated Push or Manual CLI)
- Fast Automated Script Push:
./run.sh 01 # apply + verify step 01 automatically ./run.sh --all # run all steps in order - Manual Line-by-Line CLI Execution:
Interactive CLI shell on any container node:
docker exec -it clab-ipv6-lab-leaf1-v6 Cli
🧠 Technology Deep Dive: NAT64 & DNS64 Translation¶
IPv6-only endpoints (2001:db8::100) cannot directly communicate with legacy IPv4 servers (192.0.2.50) because IPv4 and IPv6 packet headers are incompatible.
- DNS64: Synthesizes IPv6
AAAArecords for IPv4-only domains using the Well-Known Prefix (64:ff9b::/96). - Stateful NAT64: Translates IPv6 packets with destination
64:ff9b::192.0.2.50into IPv4 packets with destination192.0.2.50.
ip nat64 prefix 64:ff9b::/96
ip nat64 pool NAT64-POOL 198.51.100.100 198.51.100.110
✅ DONE when IPv6-only host successfully pings IPv4 service via synthetic 64:ff9b:: prefix.