NAT คืออะไร
NAT (Network Address Translation) เป็นวิธีการในการแปลง และแปล IP Address ของเครือข่ายภายใน ให้เป็น IP Address ซึ่งเป็นที่ยอมรับ และสื่อสารบนอินเทอร์เน็ต อีกทั้งสามารถใช้ไอพีแอดเดรสที่ตั้งขึ้นมาเองได้ ใช้เพียงแค่ไอพีแอดเดรสที่ผู้ให้บริการอินเทอร์เน็ตให้มา สามารถซ่อน IP Address ที่อยู่ในเครือข่าย (IP Address ที่คุณกำหนดขึ้นมาเอง) ได้ ทำให้มีความปลอดภัย รวมทั้งไม่จำเป็นต้องอ้างแอดเดรสเลขหมายซ้ำๆ อีก เมื่อต้องการติดต่อกับอินเทอร์เน็ต หรือเครือข่ายขององค์กร
เครือข่ายภายใน ที่มีการจัดตั้ง Configured ให้ใช้ IP Address ที่ไม่ได้จดทะเบียนให้ใช้บนอินเทอร์เน็ต หรือ จาก ISP การใช้ NAT นั้นช่วยให้การเชื่อมต่อเครือข่ายภายในองค์กร กับอินเทอร์เน็ต ซึ่งถือว่าเป็นเครือข่ายสาธารณะนั้น มีความปลอดภัย เนื่องจาก NAT จะทำการแปลง ไอพีแอดเดรส ของเครือข่ายในองค์กร ให้ใช้ ไอพีแอดเดรส ที่จดทะเบียนถูกต้องบนอินเทอร์เน็ต ก่อนที่จะส่งข้อมูลข่าวสารออกไปที่ อินเทอร์เน็ต
- คอมพิวเตอร์ภายในองค์กรที่ตั้ง IP Address แบบ Static NAT (เช่น Mail Servers เป็นต้น) สามารถที่จะถูก แปล แอดเดรส เมื่อติดต่อกับภายนอก โดยไม่ต้องมีการ Update ข้อมูลบันทึกบน NAT
- NAT สามารถซ่อน ไอพีแอดเดรส ของเครือข่ายภายในองค์กร ด้วยจุดประสงค์เพื่อรักษาความปลอดภัย เมื่อบุคคลภายนอกไม่สามารถล่วงรู้ IP จริงภายใน
NAT ทำงานในรูปแบบ 2 ทาง หรือ เชื่อมต่อสื่อสารทั้งในแบบ Inbound และ Outbound หมายความว่า สามารถจัดการกับ IP Address ที่วิ่งเข้ามา หรือ IP Address ที่วิ่งออกไป โดยสามารถจัดการกับ ไอพีแอดเดรส ต้นทาง และปลายทางได้เป็นอย่างดี NAT สามารถทำงานในสถานการณ์ 3 อย่าง ดังนี้
- ทำหน้าที่แปลง และแปล IP Address ต้นทางที่มาจากเครือข่ายภายใน
- ทำหน้าที่ แปลง และแปล IP Address ต้นทางที่มาจากเครือข่ายภายนอก เช่น อินเทอร์เน็ต เป็นต้น
- ทำหน้าที่แปลง และแปล IP Address ปลายทางภายในเครือข่าย
NAT ช่วยให้สามารถใช้ IP Address เดิมที่มีอยู่ แม้ไม่ได้จดทะเบียนถูกต้อง แต่จะต้องมี ไอพีแอดเดรส ที่ถูกต้องจำนวนหนึ่ง ซึ่ง IP Address จำนวนนี้ สามารถนำไปใช้สร้างเป็น ไอพีแอดเดรส Pool (IP Address ที่คอมพิวเตอร์บนเครือข่าย นำมาแบ่งใช้งานร่วมกัน) วิธีนี้ คอมพิวเตอร์ภายในเครือข่ายสามารถใช้ IP Address ที่ถูกต้อง ติดต่อกับอินเทอร์เน็ตได้ และการร้องขอเข้ามาเพื่อเชื่อมต่อกับคอมพิวเตอร์ในเครือข่ายจากภายนอก จะใช้ ไอพีแอดเดรส ของ NAT เป็น แอดเดรส ปลายทาง NAT จะทำการแปล และนำเอาไอพีแอดเดรส ของ NAT ในแอดเดรส Pool นี้ไปเป็น IP Address ที่ใช้งานภายในเครือข่ายต่อไป
NAT ทำงานได้อย่างไร
สิ่งที่ NAT ทำงาน ได้แก่ การแปล IP Address ในลักษณะที่เรียก ว่าหนึ่งต่อหนึ่ง หรือจำนวนมากต่อจำนวนมาก โดย IP Address ที่อยู่ภายในเครือข่าย จะถูก Map ให้เป็น ไอพีแอดเดรส ภายนอก หมายความว่า ไอพีแอดเดรส ภายในจะถูกแปลงเป็น ไอพีแอดเดรส สำหรับการสื่อสารกับภายนอกที่เหมาะสม หรือในทางกลับกัน
ขั้นตอนในการแปล IP Address มีดังนี้
- IP Address ที่อยู่ใน IP Header จะถูกแทนที่ด้วย IP Address ภายนอก หรือภายใน (ขึ้นอยู่กับทิศทางการวิ่งของ Packet) และหมายเลข Port ใน TCP หรือUDP Header จะถูกเปลี่ยนเป็นเลขหมาย Port อันใหม่ หากมีการกำหนดให้ NAT ต้องทำการแปลหมายเลข Port ด้วย
- ค่า Checksum สำหรับ IP Packet จะถูกคำนวณใหม่ และตรวจสอบเพื่อความถูกต้อง
- Header ของ TCP จะได้รับการคำนวณใหม่ เช่นกัน หลังจากที่ได้รับการคำนวณมาแล้วก่อนหน้านี้ครั้งแรก จากเครื่องคอมพิวเตอร์ที่เป็นเจ้าของ ภายในเครือข่าย (หรือเจ้าของที่มาจากเครือข่ายภายนอก)
จากที่กล่าวมาจะเห็นว่า NAT ทำหน้าที่แปล ไอพีแอดเดรส ของเครื่องต้นทาง และเครื่องปลายทาง ขึ้นอยู่กับทิศทาง ของ Traffic ในการที่จะแปลง ไอพีแอดเดรส นั้น NAT จะต้องตรวจสอบที่ช่อง ไอพีแอดเดรส ของ Packet ซึ่ง Packet ในที่นี้ เราเรียกว่า IP Datagram โดยที่ IP Datagram เป็นรูปแบบของข่าวสาร ที่ใช้ห่อหุ้มข้อมูล และ Protocol ในระดับสูงที่ใช้จัดการกับขนถ่ายข้อมูล อย่างเช่น TCP โดยให้บริการขนถ่ายข้อมูลจาก User File, Web Page หรือข่าวสาร Email เป็นต้น
ชนิดของ NAT
NAT มีอยู่ 2 ชนิดหลักๆ ได้แก่
- Static NAT
- Dynamic NAT
Static NAT
Static NAT เป็นการแปล IP Address ชนิดกำหนดค่า แอดเดรส ตายตัว จากเครือข่ายภายใน ไปยังเครือข่ายภายนอก ส่วน แอดเดรส ภายนอกจะไม่มีการเปลี่ยนแปลง ดังนั้น ความสัมพันธ์ระหว่าง IP Address ของเครือข่ายภายนอก และภายในจะเป็นแบบแน่นอนตายตัว
เครื่องพีซี และเซิร์ฟเวอร์ต่างๆ ที่อยู่เครือข่ายภายใน จะใช้ แอดเดรส ส่วนตัว (Private Address) ของมันเอง รวมทั้งสามารถใช้ แอดเดรส สาธารณะ ในการสื่อสารระหว่างกัน เป็นการภายในได้ แต่ไม่ว่าคุณจะใช้ แอดเดรส อะไรก็ตาม หากต้องการติดต่อกับนอกเครือข่าย จะต้องผ่านการแปลก่อนที่จะออกจากเครือข่ายเสมอ
ข้อดี และข้อเสียของการใช้ Static NAT
Static NAT เป็นระบบที่เรียบง่าย และตรงไปตรงมา แต่ก็มีจุดด้อยหลายอย่างที่ทำให้ Static NAT กลายเป็นระบบที่เหมาะสำหรับ เครือข่ายที่มีข้อจำกัดมากมาย แต่ไม่เหมาะกับเครือข่ายใหญ่ ด้วยเหตุผลดังนี้
- ต้องการการดูแลอย่างมาก การ Map แอดเดรส โดยวิธีการของ Static Map นี้ จะไม่มีการเปลี่ยนแปลงเลขหมาย IP Address อัตโนมัติ หากมีการเปลี่ยนแปลง แอดเดรส ภายใน หรือภายนอกเกิดขึ้น เช่น หากต้องการเพิ่ม หรือแก้ไข แอดเดรสใดๆ แล้วผู้ดูแลเครือข่ายจะต้องเข้ามาจัดตั้งตาราง การแปล แอดเดรส กันใหม่ และเป็นเรื่องน่าเสียดาย หากเกิดความผิดพลาดขณะที่มีการจัดตั้ง ตารางการแปล แอดเดรส
- มีการใช้งาน แอดเดรส อย่างมาก ในเครือข่ายขนาดใหญ่ การใช้แอดเดรส ภายใน และภายนอก แบบชนิดหนึ่ง ต่อหนึ่ง ทำให้กิน แอดเดรส ภายนอกค่อนข้างมาก หากมีเครื่องคอมพิวเตอร์ภายในเครือข่ายเป็นจำนวนมาก เพราะต้องกำหนด 1 เครื่องต่อหนึ่ง ไอพีแอดเดรส ที่ถูกต้อง
- มีการเลือกเส้นทางที่แน่นอนตายตัว ในกรณีที่มีการเชื่อมต่อกับอินเทอร์เน็ตแบบหลายๆ Connection เช่น เชื่อมต่อพร้อมกันหลาย ISP เมื่อมีการใช้ Static NAT เกิดขึ้น ระบบนี้จะเลือกเส้นทางที่แน่นอนตายตัว ตามที่ Static NAT กำหนดไว้
จุดด้อยของ Static NAT ไม่ได้หมายความว่า ระบบนี้ไม่เหมาะสมกับ เครือข่ายสมัยใหม่ในปัจจุบัน แต่ Static NAT เหมาะสำหรับระบบเครือข่ายขนาดเล็ก ต่อไปนี้ เป็นรายละเอียดที่แสดงถึงข้อดีของการใช้ Static NAT มีดังนี้
- จำกัดความต้องการใช้ NAT ภายในเครือข่าย ซึ่งมีการจำกัดจำนวนของ PC ที่ใช้ NAT ระบบ Static NAT ควบคุมการ Access ไปที่ภายนอก หมายความว่า การจำกัดจำนวนคอมพิวเตอร์ที่จะออกไปที่อินเทอร์เน็ต ทำได้โดยการจำกัด ไอพีแอดเดรส สำหรับที่จะออกไปที่ Internet เท่านั้นเอง สำหรับเครือข่ายใดที่ส่วนใหญ่มีการสื่อสารเฉพาะภายใน และมีบางครั้งที่มี Access ไปที่ภายนอกบ้าง เป็นจำนวนน้อย ระบบนี้ จึงเป็นระบบที่ดีกว่า
- การบริหารจัดการเครือข่าย ปัจจุบันมีระบบเครือข่ายอยู่มากมายที่ต้องการบริหารจัดการกับ Traffic ภายนอก เพื่อต้องการดูว่ามีคอมพิวเตอร์เครื่องใดบ้างที่ติดต่อกับภายนอก เพื่อให้ง่ายต่อการตรวจสอบที่มาของปัญหา ว่ามาจากเครือข่ายภายใน หรือภายนอก การใช้ Static NAT จะช่วยให้สามารถติดตามดูได้ว่า คอมพิวเตอร์แต่ละเครื่องมี Traffic ไปไหนมาไหนบ้าง
- สามารถเข้ากันได้กับ Application โดยทั่วไป มี Application บางตัวที่ฝัง ไอพีแอดเดรส ไว้ที่ช่องเก็บข้อมูลของ IP Datagram การทำเช่นนี้ทำให้ NAT โดยทั่วไปไม่สามารถสังเกตเห็น แอดเดรส ที่อยู่ในช่องนี้ หมายความว่า Application บางรายการไม่สามารถทำงานได้ตามปกติภายใต้ NAT แต่ Static NAT สามารถถูกจัด Configure ให้ทำงานร่วมกับ Application Level Gateway เพื่อตรวจสอบ IP Datagram ดังกล่าวได้
Dynamic NAT
Dynamic NAT เป็นแบบตรงกันข้าม ที่มีการนำเอา ไอพีแอดเดรส จาก กลุ่มของ ไอพีแอดเดรส ที่แชร์หรือร่วมใช้งานกัน หรือที่เรียกว่า แอดเดรส Pool มาทำการแปล จาก แอดเดรส Pool ภายใน ให้เป็น Address Pool สำหรับเครือข่ายภายนอก ในทางกลับกัน รูปแบบนี้ต้องได้รับการจัด Configure โดยผู้ดูแลระบบเครือข่าย แต่หลังจากที่จัด Configure เรียบร้อยแล้ว Router ที่สนับสนุน NAT จะเป็นผู้จ่าย ไอพีแอดเดรส ให้กับคอมพิวเตอร์อย่างเหมาะสม เพื่อให้เกิดความรวดเร็วในการทำงาน ผู้บริหารจัดการเครือข่ายต้อง ทำการ Map ระยะของ ไอพีแอดเดรส หากเป็นไปได้ ลักษณะนี้ คล้ายๆ กับการทำงานของ DHCP Server ที่ไม่ได้กำหนดเครื่อง PC แต่ละเครื่องให้มี ไอพีแอดเดรส ที่ตายตัว โดยผู้จัดการเครือข่าย จะกำหนด แอดเดรส ขึ้นมาจำนวนหนึ่ง เป็นระยะ หรือช่วงของ แอดเดรส เช่น 10.7.7.71 – 10.7.7.74 เป็นต้น ดังนั้นใครที่เข้ามาที่เครือข่ายก่อน ก็จะได้รับแจก แอดเดรส ไปใช้งานก่อน โดยเครื่องคอมพิวเตอร์ จะไม่ได้รับ IP ที่ซ้ำกัน ข้อแตกต่างกันระหว่าง NAT กับ DHCP Server ตรงที่ ไอพีแอดเดรส ของ NAT เป็น ไอพีแอดเดรส ที่ได้รับการจดทะเบียนแล้ว เพื่อแจกให้กับเครื่องคอมพิวเตอร์ที่เข้าๆออกบนเครือข่าย ไปยังภายนอก
การทำงานของ Dynamic NAT
Dynamic NAT มีการกำหนด แอดเดรส ให้กับภายนอก แบบพลวัตร หมายความว่า แทนที่จะใช้ระบบกำหนด แอดเดรส ภายในกับ ภายนอกแบบหนึ่งต่อหนึ่ง Dynamic NAT จะกำหนดว่า แอดเดรส ที่ใช้จะเปลี่ยนแปลงไปเรื่อยๆ และมีการเปลี่ยนแปลงทุกครั้งที่คอมพิวเตอร์ภายในเครือข่าย มีการสถาปนาการเชื่อมต่อกับคอมพิวเตอร์ภายนอกเครือข่าย หรืออาจมีการเปลี่ยนเป็นระยะๆ เวลาก็เป็นได้
Dynamic NAT พร้อมด้วย IP Overload
Port Address Translation (PAT) สามารถทำการ Map แอดเดรส ต่างๆ หลาย แอดเดรส ให้เป็น แอดเดรส เดียวที่เป็น แอดเดรส สำหรับติดต่อกับภายนอก เนื่องจากการที่ PAT สามารถ Map แอดเดรส สำหรับเครือข่ายภายในหลายๆ แอดเดรส ให้เป็น แอดเดรส เดียวนี่เอง จึงทำให้ เลขหมายของ Port ที่ทำงานบน TCP หรือ UDP นั้น มีมากเพียงพอ ที่จะให้บริการโดยไม่เกิดปัญหาได้ หากต้องการใช้ขีดความสามารถนี้ จะต้องเปิด Function การทำงานที่เรียกว่า “Enable IP Overload” ภายใต้คำสั่ง “Nat create dynamic)
ส่วนคำว่า “Overload” ในที่นี้ ใช้ในสถานการณ์ ที่ ไอพีแอดเดรส ใน แอดเดรส Pool มีไม่เพียงพอที่จะให้บริการ จึงต้องอาศัย Port เพื่อแยกความแตกต่างระหว่าง การเชื่อมต่อเข้ามาทั้ง 2 Connection โดยทั่วไป เลขหมายของ Port ที่กำหนดให้ใช้งานคือ 1024 ถึง 4999 ซึ่งเท่ากับมีจำนวน Port ใช้งานมากถึง 4000 Port
Dynamic NAT ที่มีการจัดตั้ง Redundant ที่ Interface ภายนอก
หากมีการเชื่อมต่อกับเครือข่ายภายนอก เช่น อินเทอร์เน็ต โดยทาง Interface ทั้งสอง เช่น การเชื่อมต่อผ่าน ISP 2 แห่งพร้อมกัน สามารถใช้ NAT เพื่อการแปล แอดเดรส ภายใน ให้เป็น ไอพีแอดเดรส ภายนอก สำหรับการเชื่อมต่อกับ ISP ทั้งสอง เพื่อออกอินเทอร์เน็ต โดย NAT จะสามารถใช้ ไอพีแอดเดรส ภายนอก 2 ชุดเพื่อสื่อสารผ่านทั้งสอง Interface และออกไปทาง Internet ได้
เขียนโดย พชร อ้นพันธ์ | KIRZ Cloud Engineer