NAT (Network Address Translation) คืออะไร?
NAT เป็นเทคโนโลยีที่ แปลงที่อยู่ IP Particular (Private IP) ให้เป็น Public IP และในทางกลับกัน เพื่อให้อุปกรณ์ในเครือข่ายภายใน (Private Network) สามารถสื่อสารกับอินเทอร์เน็ตได้ โดยใช้ Public IP จำนวนน้อย (มักแค่ 1 IP) แทนอุปกรณ์หลายพันเครื่อง
NAT ช่วยลดการใช้ Public IP Address (IPv4 Conservation) อย่างไร?
ปัญหา: IPv4 Address Exhaustion
IPv4 มีที่อยู่เพียง ~4.3 พันล้าน Address (32-bit) ซึ่งไม่เพียงพอสำหรับอุปกรณ์ทุกเครื่องในโลกที่ต้องการ Public IP
วิธีแก้ของ NAT: Private IP Ranges (RFC 1918)
| Class | Range | CIDR | จำนวน Host |
|---|---|---|---|
| Class A | 10.0.0.0 - 10.255.255.255 | 10.0.0.0/8 | 16,777,214 |
| Class B | 172.16.0.0 - 172.31.255.255 | 172.16.0.0/12 | 1,048,574 |
| Class C | 192.168.0.0 - 192.168.255.255 | 192.168.0.0/16 | 65,534 |
องค์กรใช้ Private IP ให้อุปกรณ์ภายในได้ไม่จำกัดจำนวน (Well, ตามขนาด Subnet) แล้ว NAT ที่ Gateway/Router แปลงเป็น 1 Public IP (หรือ Pool น้อย) เมื่อออกสู่ Internet
ประเภท NAT และการประหยัด IP
| ประเภท NAT | คำอธิบาย | การประหยัด IP | Use Case |
|---|---|---|---|
| Static NAT (1:1) | 1 Private IP ↔ 1 Public IP (Fixed) | ไม่ประหยัด (1:1) | Web Server, Mail Server ที่ต้องเข้าถึงจากนอก |
| Dynamic NAT | Private IP ↔ Public IP จาก Pool (Rotating) | ประหยัดบ้าง (Pool < Hosts) | Outbound Traffic ทั่วไป |
| PAT / NAPT (Port Address Translation) | หลาย Private IP ↔ 1 Public IP (ใช้ Port แยก Session) | ประหยัดมากที่สุด (Overloading) | Home/SME Router, CGNAT, 4G/5G Gateway |
PAT (Port Address Translation) หรือ NAT Overload คือสิ่งที่เราใช้ในบ้าน/สำนักงานทุกวัน: 1 Public IP รองรับอุปกรณ์หลายพันเครื่องผ่าน Source Port ที่แตกต่างกัน
NAT ช่วยปรับปรุงความปลอดภัย (Security Benefits) อย่างไร?
1. IP Masquerading / Hiding Internal Topology
- อุปกรณ์ภายในใช้ Private IP (10.x, 172.16.x, 192.168.x) ไม่สามารถ Routing ได้บน Internet
- External Attacker ไม่เห็น Internal IP จริง เห็นแค่ Public IP ของ Gateway
- ลด Attack Surface: ไม่โจมตี Internal Host โดยตรงได้ ต้องผ่าน Gateway ก่อน
2. Implicit Deny Inbound (Default Deny)
- NAT Table สร้าง Entry เฉพาะเมื่อ Outbound Connection เริ่มจากภายใน
- Inbound Packet จากนอกที่ไม่มี Entry ใน NAT Table จะถูก Drop ทันที
- ทำหน้าที่เป็น Stateful Firewall พื้นฐาน โดยอัตโนมัติ
3. การรวมกับ Firewall จริง (NGFW)
- NAT ทำงานร่วมกับ Firewall Policy (Allow/Deny, IPS, App-Control)
- Destination NAT (DNAT) / Port Forwarding: เปิดเฉพาะ Port ที่จำเป็นไป Internal Server (Web, VPN)
- Source NAT (SNAT): ควบคุม Outbound Traffic ให้ออกทาง Interface/IP ที่กำหนด
NAT และ IPv6: ยังต้องใช้ NAT ไหม?
| ประเด็น | IPv4 + NAT | IPv6 (Native) |
|---|---|---|
| Address Space | จำกัด ต้อง NAT | 340 Undecillion (2^128) - ไม่ต้อง NAT |
| End-to-End Connectivity | Broken โดย NAT | Restored (True End-to-End) |
| Security Model | Implicit Deny Inbound (NAT Side-effect) | Explicit Firewall Policy (Stateful FW) |
| NAT64/DNS64 | - | ใช้สำหรับ IPv6-only Client เข้าถึง IPv4-only Server |
| NPTv6 (Network Prefix Translation) | - | Prefix Translation เท่านั้น ไม่ใช่ PAT (1:1 Prefix) |
ข้อสรุป: IPv6 ออกแบบให้ไม่ต้อง NAT แต่องค์กรหลายแห่งยังใช้ ULA (Unique Local Address) + NPTv6 หรือ IPv6 NAT (NAT66) เพื่อ Policy Control, Multi-homing, หรือ Privacy (RFC 7217) - แต่ ไม่ใช่เพื่อประหยัด Address
ข้อจำกัดและปัญหาของ NAT
| ปัญหา | คำอธิบาย | วิธีแก้ |
|---|---|---|
| Breaks End-to-End Principle | บาง Protocol ต้องการ IP จริง (FTP Active, SIP, IPsec AH, بعض P2P) | ALG (Application Layer Gateway), STUN/TURN/ICE, VPN |
| Connection Tracking Limits | NAT Table มีขนาดจำกัด (Concurrent Sessions) → Exhaustion | เพิ่ม RAM, Timeout Tuning, เพิ่ม Public IP Pool |
| Double NAT | ISP ให้ CGNAT (100.64.x.x) + Home Router NAT อีกชั้น | Bridge Mode ISP Modem, หรือขอ Public IP จาก ISP |
| Logging/Forensics ยาก | Public IP เดียว = หลาย User → ต้องมี NetFlow/Log Correlation | Centralized Logging, NetFlow, User Mapping (DHCP/RADIUS Log) |
| Not a Real Security Control | NAT ไม่ได้ออกแบบมาเพื่อ Security (Side-effect เท่านั้น) | ต้องมี Firewall/IPS/IDS จริง ไม่ควรพึ่งพา NAT อย่างเดียว |
CGNAT (Carrier-Grade NAT) - ระดับ ISP
- ISP ใช้ Private Range 100.64.0.0/10 (Shared Address Space) ให้ลูกค้า
- ลูกค้าไม่ได้ Public IP จริง → ไม่สามารถ Port Forward, Host Server, P2P ได้ดี
- แก้ด้วย: ขอ Static Public IP (คิดค่าใช้จ่ายเพิ่ม), ใช้ IPv6, หรือ VPN/Tunnel (Tailscale, ZeroTier, WireGuard)
Best Practices สำหรับ NAT ในองค์กร
- ใช้ PAT (Overload) สำหรับ User Outbound - ประหยัด Public IP มากที่สุด
- Static NAT / DNAT เฉพาะ Service ที่จำเป็น (Web, VPN, Email) - ลด Attack Surface
- ไม่ใช้ NAT ระหว่าง Internal Segments - ใช้ Routing + Firewall Policy แทน (Visibility ดีกว่า)
- Log NAT Translations (NetFlow/IPFIX) - สำหรับ Forensics และ Troubleshooting
- Monitor NAT Pool Utilization - Alert ก่อน Exhaustion (Port/Session)
- วางแผน IPv6 Migration - Dual Stack, NAT64/DNS64 สำหรับ Transition Period
สรุป
NAT เป็นเทคโนโลยีที่ แก้ปัญหา IPv4 Exhaustion ได้อย่างมีประสิทธิภาพ (โดยเฉพาะ PAT/Overload) และให้ Security Benefit แบบ Side-effect คือ IP Hiding และ Implicit Deny Inbound แต่ NAT ไม่ใช่ Firewall - ต้องมี Firewall/IPS/IDS จริงร่วมด้วย ในยุค IPv6 NAT จะหายไปจากหน้าที่หลัก (Address Conservation) แต่อาจคงเหลือในรูปแบบ NPTv6/NAT64 สำหรับ Use Case เฉพาะ จุดสำคัญ: อย่าพึ่งพา NAT เพื่อ Security เพียงอย่างเดียว