Home » IPv6 Transition: Dual-Stack, Tunneling และ NAT64
IPv6 Transition: Dual-Stack, Tunneling และ NAT64
IPv6 Transition: Dual-Stack, Tunneling และ NAT64
IPv6 Transition เป็นกระบวนการเปลี่ยนจาก IPv4 ไป IPv6 ซึ่งไม่สามารถทำได้ในวันเดียว เพราะ IPv4 และ IPv6 ไม่ compatible กันโดยตรง จำเป็นต้องใช้ transition mechanisms เพื่อให้ทั้ง 2 protocols ทำงานร่วมกันได้ในช่วงเปลี่ยนผ่าน Dual-Stack, Tunneling และ NAT64 เป็น 3 กลไกหลัก
IPv4 addresses หมดแล้วจริงๆ ทุก RIR (Regional Internet Registry) ได้แจก IPv4 /8 blocks สุดท้ายไปหมดแล้ว องค์กรที่ต้องการ public IPs เพิ่มต้องซื้อจาก market ในราคาสูง IPv6 มี address space มหาศาล (128-bit vs 32-bit) แต่การ transition ต้องวางแผนอย่างดี
IPv4 vs IPv6
| Feature |
IPv4 |
IPv6 |
| Address Size |
32-bit (4.3 billion addresses) |
128-bit (3.4 × 10³⁸ addresses) |
| Address Format |
Dotted decimal (192.168.1.1) |
Hexadecimal (2001:db8::1) |
| Header Size |
20-60 bytes (variable) |
40 bytes (fixed) |
| NAT |
จำเป็น (address shortage) |
ไม่จำเป็น (address มากพอ) |
| IPsec |
Optional |
Built-in (mandatory support) |
| Broadcast |
มี |
ไม่มี (ใช้ multicast แทน) |
| Auto-configuration |
DHCP |
SLAAC + DHCPv6 |
| Fragmentation |
Router + source |
Source only (Path MTU Discovery) |
Transition Mechanisms
| Mechanism |
วิธีทำงาน |
เหมาะกับ |
| Dual-Stack |
รัน IPv4 + IPv6 พร้อมกันบน device/network เดียว |
วิธีที่ดีที่สุด (recommended) |
| Tunneling (6in4, 6to4) |
Encapsulate IPv6 ใน IPv4 packets |
เชื่อม IPv6 islands ผ่าน IPv4 network |
| NAT64 + DNS64 |
แปลง IPv6 ↔ IPv4 (translation) |
IPv6-only clients เข้าถึง IPv4-only servers |
| 464XLAT |
CLAT (client) + PLAT (provider) translation |
Mobile networks (IPv6-only + IPv4 apps) |
| MAP-T/MAP-E |
Mapping IPv4 ผ่าน IPv6 (stateless) |
ISP: share IPv4 addresses over IPv6 |
Dual-Stack
| Feature |
รายละเอียด |
| วิธีทำงาน |
ทุก device/interface มีทั้ง IPv4 + IPv6 address |
| Routing |
รัน routing protocol สำหรับทั้ง IPv4 + IPv6 (OSPFv2 + OSPFv3) |
| DNS |
Return ทั้ง A (IPv4) + AAAA (IPv6) records |
| Application |
App เลือกใช้ IPv6 ก่อน (Happy Eyeballs algorithm) |
| ข้อดี |
Simple, transparent, ทุก protocol ทำงานได้ |
| ข้อเสีย |
ต้อง manage 2 protocols, double address space |
Tunneling Methods
| Tunnel Type |
วิธีทำงาน |
Status |
| 6in4 (Manual Tunnel) |
Manual tunnel endpoints, IPv6 ใน IPv4 (protocol 41) |
ยังใช้ได้ (point-to-point) |
| 6to4 |
Automatic tunnel ใช้ IPv4 address สร้าง IPv6 prefix (2002::/16) |
Deprecated (RFC 7526) |
| ISATAP |
IPv6 tunnel ภายใน IPv4 intranet |
Deprecated |
| Teredo |
IPv6 tunnel ผ่าน NAT (UDP encapsulation) |
Deprecated (ยังมีใน Windows) |
| GRE Tunnel |
IPv6 over GRE over IPv4 |
ใช้ได้ (enterprise) |
| DS-Lite |
IPv4-in-IPv6 tunnel + CGNAT |
ISP deployment |
NAT64 + DNS64
| Component |
บทบาท |
| NAT64 |
แปลง IPv6 packets เป็น IPv4 (และกลับ) เพื่อให้ IPv6 client เข้าถึง IPv4 server |
| DNS64 |
สร้าง synthetic AAAA record สำหรับ IPv4-only hosts (prefix64::/96 + IPv4) |
| Well-known Prefix |
64:ff9b::/96 (ตาม RFC 6052) |
| Stateful NAT64 |
Track connections (เหมือน NAT44) — most common |
| Stateless NAT64 |
1:1 mapping ไม่ track connections |
IPv6 Addressing
| Address Type |
Prefix |
ใช้สำหรับ |
| Global Unicast (GUA) |
2000::/3 |
Public internet routable |
| Link-Local |
fe80::/10 |
Same link only (auto-generated) |
| Unique Local (ULA) |
fc00::/7 (fd00::/8 commonly) |
Private (เหมือน RFC1918 ใน IPv4) |
| Multicast |
ff00::/8 |
One-to-many communication |
| Loopback |
::1/128 |
Loopback (เหมือน 127.0.0.1) |
| Unspecified |
::/128 |
ไม่มี address (เหมือน 0.0.0.0) |
Implementation Best Practices
| Practice |
รายละเอียด |
| เริ่มด้วย Dual-Stack |
Dual-stack เป็นวิธีที่ดีที่สุดและง่ายที่สุด |
| ขอ IPv6 prefix จาก ISP |
ขอ /48 หรือ /32 สำหรับ enterprise |
| วางแผน addressing |
ใช้ /64 per subnet, /48 per site |
| Enable IPv6 บน DNS |
เพิ่ม AAAA records สำหรับ services ที่ support IPv6 |
| Security |
IPv6 firewall rules เหมือน IPv4 (อย่าลืม!) |
| Monitor |
ตรวจสอบว่า IPv6 traffic ถูก monitor/log เหมือน IPv4 |
| ทดสอบก่อน |
ทดสอบ dual-stack ใน lab/pilot ก่อน production |
ทิ้งท้าย: IPv6 = ไม่ใช่ถ้า แต่เมื่อไหร่
IPv6 transition เป็นสิ่งที่ต้องเกิดขึ้น (IPv4 หมดแล้ว) Dual-Stack = best approach (รัน IPv4 + IPv6 พร้อมกัน) NAT64 + DNS64 = IPv6-only clients เข้าถึง IPv4 servers Tunneling = เชื่อม IPv6 islands ผ่าน IPv4 เริ่มวางแผน IPv6 addressing + enable dual-stack วันนี้
อ่านเพิ่มเติมเกี่ยวกับ OSPF Design และ Network Troubleshooting ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com