ถ้าอยากเข้าใจว่าทำไมอุปกรณ์ของคุณถึงเชื่อมต่ออินเทอร์เน็ตได้บ้างไม่ได้บ้าง การทำความเข้าใจประเภทของ NAT คือจุดเริ่มต้นที่ดีที่สุดครับ ไม่ว่าจะเป็นสายวิดีโอคอลที่หลุดกลางอากาศ เกมที่เข้า lobby ไม่ได้ หรือแอป VoIP ที่ใช้ที่บ้านได้ปกติแต่พอไปออฟฟิศกลับมีปัญหา สิ่งเหล่านี้ล้วนเชื่อมโยงกับ network address translation ทั้งสิ้น การเข้าใจว่า NAT ทำงานอย่างไร แต่ละประเภทต่างกันอย่างไร และข้อจำกัดของแต่ละแบบคืออะไร จะช่วยประหยัดเวลาในการแก้ปัญหาได้มากครับ
สรุปสิ่งสำคัญ:
- Network address translation (NAT) ช่วยให้อุปกรณ์หลายเครื่องใช้ public IP address เดียวร่วมกันได้ แต่ก็สร้างข้อจำกัดด้านการเชื่อมต่อที่แตกต่างกันตามประเภทของ NAT
- NAT แบบ Open, Moderate และ Strict (หรือ Type 1, 2 และ 3 ในคำศัพท์ของเครื่องเกม) ส่งผลโดยตรงต่อการเชื่อมต่อแบบ peer-to-peer การเล่นเกม และการสื่อสารแบบ real-time
- Double NAT ซึ่งเกิดจากการใช้ router สองตัวต่อกันเป็นแถว เป็นสาเหตุที่พบบ่อยของปัญหาการเชื่อมต่อที่อธิบายไม่ได้ในบ้านและสำนักงานขนาดเล็ก
- มีวิธีแก้ไขที่ทำได้จริงสำหรับแต่ละประเภท NAT ตั้งแต่การเปิดใช้ UPnP ไปจนถึงการตั้งค่า DMZ หรือขอ static IP จาก ISP
สารบัญ
Network Address Translation คืออะไร?
อุปกรณ์ทุกเครื่องที่เชื่อมต่ออินเทอร์เน็ตต้องการ IP address ปัญหาคือ IPv4 address ทั่วโลกหมดแล้วครับ RFC 1918 แก้ปัญหาส่วนหนึ่งด้วยการกำหนด private IP address range (เช่น 192.168.x.x และ 10.x.x.x) ที่สามารถนำมาใช้ซ้ำภายในเครือข่ายท้องถิ่นได้ NAT router ทำหน้าที่เป็นตัวกลางระหว่างเครือข่ายภายในกับอินเทอร์เน็ต โดยแปลง private address เป็น public IP เดียวที่ ISP กำหนดให้คุณ
เมื่อแล็ปท็อปของคุณส่งคำขอไปยัง web server NAT router จะเขียน source address ใหม่จาก private IP (เช่น 192.168.1.50) เป็น public IP ก่อนส่ง packet ออกไป เมื่อได้รับการตอบกลับ router จะแปลงกลับและส่งข้อมูลไปยังอุปกรณ์ที่ถูกต้อง จากมุมมองของอินเทอร์เน็ต อุปกรณ์ทุกเครื่องในเครือข่ายของคุณดูเหมือนเป็นเครื่องเดียวกัน
วิธีนี้ฉลาดและใช้งานได้จริง แต่มีผลข้างเคียงคือ การเชื่อมต่อขาเข้าที่ไม่ได้ร้องขอไม่มีปลายทางที่ชัดเจน router ไม่รู้ว่าอุปกรณ์ภายในเครื่องไหนควรรับ packet ที่ไม่มีใครร้องขอ ความคลุมเครือนี้แหละครับที่ NAT แต่ละประเภทแก้ไขด้วยวิธีที่แตกต่างกัน
ประเภทของ NAT แต่ละแบบ
คำศัพท์จะแตกต่างกันเล็กน้อยขึ้นอยู่กับว่าคุณอ่านเกี่ยวกับเครื่องเกมหรือทฤษฎีเครือข่าย แต่พฤติกรรมพื้นฐานสอดคล้องกันครับ มาดูกันว่า NAT แต่ละประเภททำงานอย่างไรในทางปฏิบัติ
Full Cone NAT (Open NAT / Type 1)
เมื่ออุปกรณ์เปิดการเชื่อมต่อขาออก router จะสร้าง mapping ที่รับ packet ขาเข้าจากแหล่งใดก็ได้ที่ส่งมายัง public IP และ port นั้น ไม่ว่าจะมาจากใคร นี่คือประเภทที่เปิดกว้างที่สุดครับ การเชื่อมต่อแบบ peer-to-peer เกมออนไลน์ และแอปแบบ real-time ทำงานได้อย่างราบรื่น พบได้บ่อยเมื่ออุปกรณ์เชื่อมต่อโดยตรงกับ modem โดยไม่มี router คั่นกลาง หรือเมื่อวางอุปกรณ์ไว้ใน DMZ ของ router
Address-Restricted Cone NAT (Moderate NAT / Type 2)
router จะรับ packet ขาเข้าเฉพาะจาก external IP address ที่อุปกรณ์ภายในเคยติดต่อไปก่อนหน้าเท่านั้น โดยไม่สนใจ port ปลายทาง นี่คือประเภท NAT ที่พบบ่อยที่สุดใน home router และสร้างสมดุลที่ดีระหว่างความปลอดภัยกับการเชื่อมต่อ เกมออนไลน์และวิดีโอคอลส่วนใหญ่ทำงานได้ดีในโหมดนี้ แม้ว่าบางสถานการณ์ peer-to-peer อาจต้องมีการเจรจาเพิ่มเติม
Port-Restricted Cone NAT
packet ขาเข้าจะได้รับการยอมรับเฉพาะเมื่อมาจาก IP address และ port number ที่อุปกรณ์ภายในเคยติดต่อไปก่อนหน้าเท่านั้น ซึ่งเข้มงวดกว่า address-restricted NAT เครื่องมือสื่อสารแบบ real-time อาจมีปัญหา เว้นแต่จะใช้ STUN หรือ TURN relay server เพื่อเจาะผ่านข้อจำกัดนี้
Symmetric NAT (Strict NAT / Type 3)
การเชื่อมต่อขาออกแต่ละครั้งจะได้รับ external port mapping ที่ไม่ซ้ำกัน และ packet ขาเข้าจะได้รับการยอมรับเฉพาะจากปลายทางที่อุปกรณ์ภายในติดต่อไปเท่านั้น อุปกรณ์สองเครื่องที่อยู่หลัง symmetric NAT ทั้งคู่ไม่สามารถสร้างการเชื่อมต่อ peer-to-peer โดยตรงได้ Strict NAT พบได้บ่อยใน corporate firewall และอุปกรณ์ระดับ ISP เป็นแบบที่ปลอดภัยที่สุดแต่รบกวนการทำงานของแอปแบบ real-time มากที่สุดครับ
| ประเภท NAT | คำศัพท์บนเครื่องเกม | กฎการรับ packet ขาเข้า | P2P / เกมออนไลน์ |
|---|---|---|---|
| Full Cone | Open / Type 1 | รับจากแหล่งใดก็ได้ | ดีเยี่ยม |
| Address-Restricted Cone | Moderate / Type 2 | รับเฉพาะ IP ที่รู้จัก | ดี |
| Port-Restricted Cone | Moderate / Type 2 | รับเฉพาะ IP + port ที่รู้จัก | พอใช้ |
| Symmetric | Strict / Type 3 | รับเฉพาะปลายทางที่ติดต่อไปเท่านั้น | แย่ |
Port Address Translation และความสัมพันธ์กับ NAT
port address translation (PAT) มักถูกใช้แทนกันกับ NAT แต่มีความแตกต่างที่ควรรู้ครับ ในขณะที่ NAT พื้นฐานแมป private IP หนึ่งตัวกับ public IP หนึ่งตัว port address translation จะแมป private IP หลายตัวกับ public IP ตัวเดียว โดยติดตาม port number ที่ไม่ซ้ำกันสำหรับแต่ละ session เมื่อ router ของคุณจัดการ traffic พร้อมกันจากแล็ปท็อป โทรศัพท์ และสมาร์ททีวี PAT คือตัวที่รับภาระหนักนั้นครับ
PAT คือเหตุผลที่ router ของคุณแยกแยะระหว่าง stream Netflix บนทีวีกับการเปิดเบราว์เซอร์บนแล็ปท็อปได้ แม้ว่าทั้งคู่ดูเหมือนมาจาก public IP เดียวกัน การเชื่อมต่อขาออกแต่ละครั้งจะได้รับ source port ที่ไม่ซ้ำกันใน translation table เมื่อได้รับการตอบกลับ router จะจับคู่ destination port กับอุปกรณ์ภายในที่ถูกต้อง
นี่คือสาเหตุที่แอปพลิเคชันที่ต้องใช้ port number เฉพาะอาจทำงานผิดปกติเมื่ออยู่หลัง NAT router ถ้าอุปกรณ์สองเครื่องพยายามใช้ source port 5000 พร้อมกัน router ต้องเปลี่ยน port ให้เครื่องหนึ่ง และถ้าแอปฝั่งรับคาดหวัง port ที่ตายตัว การเชื่อมต่อก็จะล้มเหลว ปัญหานี้พบบ่อยกับ SIP-based VoIP และ peer-to-peer protocol รุ่นเก่าบางตัวครับ
ปัญหา Double NAT
Double NAT เกิดขึ้นเมื่อ router สองตัวทำ address translation ต่อกันเป็นลำดับ สถานการณ์ที่พบบ่อยคือ ISP ให้อุปกรณ์ modem-router รวมที่ทำ NAT อยู่แล้ว แล้วคุณต่อ router ของตัวเองเพิ่มเพื่อ Wi-Fi ที่ดีขึ้นหรือควบคุมเครือข่ายได้มากขึ้น ผลคืออุปกรณ์ทุกเครื่องในเครือข่ายของคุณต้องผ่าน NAT สองชั้นก่อนถึงอินเทอร์เน็ต
อาการอาจดูเล็กน้อยแต่น่าหงุดหน่ายมากครับ กฎ port forwarding ที่ตั้งไว้บน router ตัวใน ไม่มีผลเพราะ router ตัวนอกไม่รู้ว่าต้องส่ง traffic มาให้ UPnP อาจทำงานไม่สม่ำเสมอ VPN client อาจสร้าง tunnel ไม่ได้ เครื่องเกมแทบจะรายงาน strict หรือ moderate NAT เสมอแม้ว่าคุณจะตั้งค่า router ตัวในถูกต้องแล้วก็ตาม
คุณสามารถยืนยัน double NAT ได้โดยเปรียบเทียบ WAN IP address ที่แสดงในหน้าจัดการของ router กับ public IP จริงของคุณ ถ้า WAN IP อยู่ใน private range (10.x.x.x, 172.16-31.x.x หรือ 192.168.x.x) แสดงว่าคุณอยู่หลัง double NAT ครับ ใช้ เครื่องมือค้นหา IP ของเราเพื่อหา public IP จริงและเปรียบเทียบกับ WAN address ที่ router รายงาน
วิธีแก้ที่ดีที่สุดคือตั้งค่าอุปกรณ์ของ ISP เป็น bridge mode เพื่อปิดฟังก์ชัน NAT ให้ router ของคุณจัดการการแปลง address เพียงตัวเดียว ถ้า ISP ไม่อนุญาต bridge mode คุณสามารถวาง router ตัวในไว้ใน DMZ ของ router ตัวนอก ซึ่งทำให้มันมีเส้นทางตรงสู่อินเทอร์เน็ตได้ครับ
ตัวอย่างจริง: เครื่องเกมที่อยู่หลัง Router
ลองนึกภาพว่าคุณต่อ PlayStation 5 เข้ากับ home router WAN IP ของ router คือ 203.0.113.45 (public IP จริงจาก ISP) เครื่องเกมได้รับ private address 192.168.1.10
เมื่อคุณเปิดเกมออนไลน์ เครื่องเกมเชื่อมต่อกับ matchmaking server ของเกมที่ 198.51.100.22 บน port 3478 router สร้าง PAT entry: internal 192.168.1.10:49152 แมปกับ external 203.0.113.45:49152 matchmaking server ตอบกลับและ session ทำงานได้ ไม่มีปัญหาครับ
ทีนี้เกมพยายามสร้างการเชื่อมต่อ voice chat แบบ peer-to-peer โดยตรงกับผู้เล่นอีกคน เครื่องเกมของผู้เล่นคนนั้นส่ง packet ตรงมาที่ 203.0.113.45:49153 ถ้า router ของคุณใช้ address-restricted cone NAT มันจะตรวจสอบว่า 192.168.1.10 เคยติดต่อ IP ของผู้เล่นคนนั้นหรือไม่ ถ้า matchmaking server แนะนำให้รู้จักกัน ก็เคยแล้ว และการเชื่อมต่อก็สำเร็จ แต่ถ้า router ใช้ symmetric NAT มันจะกำหนด external port ที่ต่างกันสำหรับแต่ละ outbound flow ดังนั้น packet ขาเข้าจะมาถึง port ที่ router ไม่มีบันทึก และจะถูก drop ทิ้ง voice chat ก็ล้มเหลวโดยไม่มีข้อความแจ้งเตือนใดๆ
วิธีแก้ในกรณีนี้คือเปิดใช้ UPnP (เพื่อให้เครื่องเกมขอ port mapping ที่สม่ำเสมอได้) กำหนด static private IP ให้เครื่องเกมและเพิ่มกฎ port forwarding หรือวางเครื่องเกมไว้ใน DMZ แต่ละวิธีมีข้อดีข้อเสียที่จะพูดถึงในหัวข้อถัดไปครับ
วิธีปรับปรุง NAT Type ของคุณ
วิธีแก้ที่เหมาะสมขึ้นอยู่กับการตั้งค่าของคุณและระดับความปลอดภัยที่คุณยอมแลกกับความสะดวกในการเชื่อมต่อ นี่คือตัวเลือกที่ทำได้จริงที่สุด เรียงจากน้อยไปมากตามความซับซ้อนครับ
1. เปิดใช้ UPnP บน Router
Universal Plug and Play ช่วยให้แอปพลิเคชันขอ port mapping จาก router ได้อัตโนมัติ home router ส่วนใหญ่รองรับครับ เข้าสู่หน้าจัดการ router (โดยทั่วไปที่ 192.168.1.1 หรือ 192.168.0.1) หาการตั้งค่า UPnP ใต้เมนู Advanced หรือ WAN แล้วเปิดใช้งาน รีบูตอุปกรณ์ที่ต้องการ NAT ที่ดีขึ้นแล้วตรวจสอบใหม่ UPnP สะดวกแต่มีความเสี่ยงด้านความปลอดภัยในเครือข่ายที่มีอุปกรณ์ที่ไม่น่าเชื่อถือ ใช้เฉพาะในเครือข่ายบ้านที่ไว้ใจได้เท่านั้นนะครับ
2. ตั้งค่า Static Port Forwarding
กำหนด static private IP ให้อุปกรณ์ที่ต้องการปรับปรุง (ผ่าน DHCP reservation ใน router) จากนั้นสร้างกฎ port forwarding ที่แมป external port ที่ต้องการกับ internal IP ของอุปกรณ์นั้น วิธีนี้ปลอดภัยกว่า UPnP เพราะคุณควบคุมได้ว่า port ไหนเปิดอยู่บ้าง ตรวจสอบเอกสารของแอปพลิเคชันที่ใช้เพื่อดูว่าต้องการ port ไหน
3. แก้ปัญหา Double NAT
ตามที่กล่าวไว้ข้างต้น ตั้งค่าอุปกรณ์ของ ISP เป็น bridge mode หรือวาง router ของคุณไว้ใน DMZ ของอุปกรณ์ ISP ถ้าคุณกำลังประเมิน SaaS tool ที่ต้องพึ่งพาเครือข่าย double NAT คือสิ่งแรกที่ควรตรวจสอบเมื่อผลิตภัณฑ์ทำงานไม่สม่ำเสมอในสำนักงานต่างสาขา คุณยังสามารถตรวจสอบว่า IP address ของคุณถูกขึ้น blacklist เนื่องจากการกำหนดเส้นทางที่ผิดพลาดหรือไม่ โดยใช้ เครื่องมือตรวจสอบ IP blacklist ของเราครับ
4. ขอ Static Public IP
ถ้า ISP กำหนด dynamic IP ที่เปลี่ยนเป็นระยะๆ ให้คุณ กฎ port forwarding ที่ตั้งไว้อาจพังได้ static public IP มีค่าใช้จ่ายรายเดือนเล็กน้อยกับ ISP ส่วนใหญ่ แต่ทำให้ port forwarding เชื่อถือได้และการตั้งค่า remote access ง่ายขึ้น สำหรับธุรกิจที่ใช้ SaaS tool ที่ต้องการ inbound webhook หรือ API callback วิธีนี้คุ้มค่าครับ
5. พิจารณาใช้ IPv6
IPv6 ขจัดความจำเป็นของ NAT ทั้งหมด เพราะอุปกรณ์ทุกเครื่องจะได้รับ address ที่ไม่ซ้ำกันทั่วโลก IPv6 (RFC 8200) ได้รับการรองรับจาก ISP และระบบปฏิบัติการมากขึ้นเรื่อยๆ ถ้า ISP ของคุณรองรับ IPv6 การเปิดใช้งานบน router อาจแก้ปัญหาที่เกี่ยวกับ NAT ได้สำหรับแอปพลิเคชันที่รองรับ dual-stack networking ตรวจสอบ IP version และการเชื่อมต่อปัจจุบันของคุณได้ด้วย เครื่องมือตรวจสอบ IP address ของเราครับ
6. ใช้ VPN ที่รองรับ NAT Traversal
VPN protocol บางตัวรวมถึง WireGuard จัดการ NAT traversal ได้ดีและช่วยให้อุปกรณ์ที่อยู่หลัง strict NAT มีเส้นทางการเชื่อมต่อที่เปิดกว้างขึ้น มีประโยชน์มากสำหรับพนักงาน remote ที่เชื่อมต่อกลับไปยังเครือข่ายองค์กรจากบ้านที่มี NAT แบบเข้มงวด อย่าลืมว่าการเพิ่ม VPN จะเพิ่ม latency ซึ่งสำคัญมากสำหรับแอปแบบ real-time เอกสารของ WireGuard อธิบายพฤติกรรม NAT traversal ไว้อย่างละเอียดครับ
เคล็ดลับการวินิจฉัยเบื้องต้น: ถ้าคุณสงสัยว่า IP address ของคุณกำลังสร้างปัญหาการเชื่อมต่อนอกเหนือจาก NAT ให้ตรวจสอบว่ามันปรากฏใน DNS-based block list หรือไม่ router ที่ตั้งค่าผิดพลาดและ address ที่ใช้ร่วมกันของ ISP บางครั้งถูกแจ้งเตือน ดูคำแนะนำของเราเกี่ยวกับ วิธีลบ IP ของคุณออกจาก blacklist สำหรับขั้นตอนโดยละเอียดครับ
สรุป
ประเภทของ NAT ไม่ใช่แค่แนวคิดเครือข่ายที่เป็นนามธรรม แต่มีผลโดยตรงและวัดได้ต่อว่าแอปพลิเคชันของคุณเชื่อมต่อได้อย่างน่าเชื่อถือหรือไม่ บริการ peer-to-peer ทำงานได้ดีแค่ไหน และกฎ port forwarding ของคุณทำงานจริงหรือเปล่า การเข้าใจความแตกต่างระหว่าง full cone, address-restricted และ symmetric NAT ให้กรอบการทำงานที่ชัดเจนในการวินิจฉัยปัญหาการเชื่อมต่อแทนที่จะเดาสุ่ม สถานการณ์ double NAT เพียงอย่างเดียวเป็นสาเหตุของ support ticket จำนวนมากในผลิตภัณฑ์ SaaS ที่ต้องพึ่งพา inbound connection เริ่มต้นด้วยขั้นตอนการวินิจฉัยข้างต้น ระบุว่าคุณใช้ NAT type และ topology แบบไหน แล้วใช้วิธีแก้ที่ตรงจุดแทนที่จะลองเปลี่ยนการตั้งค่า router แบบสุ่มครับ
ตรวจสอบ Public IP และรายละเอียดการเชื่อมต่อของคุณทันที
ดู public IP address จริงของคุณ ตรวจจับ double NAT และเข้าใจว่าเครือข่ายของคุณแสดงตัวต่ออินเทอร์เน็ตอย่างไร ทั้งหมดในเครื่องมือฟรีเดียว
ลองใช้เครื่องมือฟรีของเรา →
NAT พื้นฐานแมป private IP หนึ่งตัวกับ public IP หนึ่งตัว ส่วน port address translation (PAT) แมป private IP หลายตัวกับ public IP ตัวเดียวโดยกำหนด port number ที่ไม่ซ้ำกันให้แต่ละ session home router ส่วนใหญ่ใช้ PAT ซึ่งเป็นเหตุผลที่อุปกรณ์หลายเครื่องสามารถใช้ public IP address เดียวร่วมกันได้พร้อมกันโดยไม่ขัดแย้งกันครับ
เปรียบเทียบ WAN IP ที่แสดงในหน้าจัดการของ router กับ public IP จริงของคุณ (ตรวจสอบโดยใช้เครื่องมือค้นหา IP) ถ้า WAN IP ของ router อยู่ใน private address range (10.x.x.x, 172.16-31.x.x หรือ 192.168.x.x) แทนที่จะตรงกับ public IP ของคุณ แสดงว่าคุณอยู่หลัง double NAT ครับ
UPnP สามารถเปลี่ยนจาก strict เป็น moderate หรือ open NAT ได้โดยอนุญาตให้แอปพลิเคชันขอ port mapping อัตโนมัติ อย่างไรก็ตาม วิธีนี้ใช้ได้เฉพาะเมื่อมี NAT ชั้นเดียวเท่านั้น ถ้าคุณมี double NAT การเปิด UPnP บน router ตัวในจะไม่ช่วยอะไร เพราะ router ตัวนอกยังคงบล็อก traffic ขาเข้าที่ไม่ได้ร้องขออยู่ดีครับ
symmetric NAT กำหนด external port ที่ไม่ซ้ำกันสำหรับการเชื่อมต่อขาออกแต่ละครั้ง เมื่อ peer ฝั่งตรงข้ามพยายามเชื่อมต่อกลับโดยใช้ port ที่สังเกตไว้ router ไม่มีรายการที่ตรงกันและ drop packet ทิ้ง อุปกรณ์สองเครื่องที่อยู่หลัง symmetric NAT ทั้งคู่ไม่สามารถคาดเดา port assignment ของกันและกันได้ ทำให้การเชื่อมต่อ peer-to-peer โดยตรงเป็นไปไม่ได้หากไม่มี relay server ครับ
สำหรับ traffic IPv6 ใช่ครับ IPv6 ให้ address ที่ไม่ซ้ำกันทั่วโลกแก่อุปกรณ์ทุกเครื่อง ทำให้ไม่จำเป็นต้องแปลง address อีกต่อไป อย่างไรก็ตาม เครือข่ายส่วนใหญ่ยังคง traffic IPv4 ควบคู่กับ IPv6 ดังนั้นปัญหา NAT ยังคงมีอยู่สำหรับการเชื่อมต่อ IPv4 จนกว่าอินเทอร์เน็ตจะเปลี่ยนผ่านอย่างสมบูรณ์ ซึ่งยังต้องใช้เวลาอีกหลายปีสำหรับสภาพแวดล้อมส่วนใหญ่ครับ