3/18/2555

รอบรู้ระบบการทำงานของ NAT ตอน เชื่อมต่ออินเทอร์เนตอย่างปลอดภัยและประหยัด

ปัจจุบันเทคโนโลยี อินเทอร์เนตเข้ามามีบทบาท ในระบบเครือข่ายเป็นอย่างมาก จากเดิมที่มีการนำเครื่องคอมพิวเตอร์เพียงเครื่องเดียวต่อโมเด็มเข้ากับอินเทอร์เนต กลายมาเป็นการนำเอาระบบเครือข่ายทั้งคณะไปเชื่อมต่อกับอินเทอร์เนตแทน ซึ่งมีทั้งผลดีและผลเสียตามมามากมาย
ปัจจุบันเทคโนโลยี อินเทอร์เนตเข้ามามีบทบาท ในระบบเครือข่ายเป็นอย่างมาก จากเดิมที่มีการนำเครื่องคอมพิวเตอร์เพียงเครื่องเดียวต่อโมเด็มเข้ากับอินเทอร์เนต กลายมาเป็นการนำเอาระบบเครือข่ายทั้งคณะไปเชื่อมต่อกับอินเทอร์เนตแทน ซึ่งมีทั้งผลดีและผลเสียตามมามากมาย อย่างไรก็ดี การเชื่อมต่อสื่อสารระหว่างเครือข่ายผ่าน อินเทอร์เนต นับวันจะได้รับความนิยม ความสะดวกและเต็มไปด้วยวิถีทางที่ประหยัดมากขึ้น
ในอดีตการเชื่อมต่อกับอินเทอร์เนต เป็นเรื่องที่เสี่ยงต่อภัยคุกคามจากผู้ไม่หวังดี อีกทั้งการ เชื่อมต่อกับอินเทอร์เนตท่านจะต้องจ่ายค่าเช่าใช้ ไอพีแอดเดรส จากผู้ให้บริการอินเทอร์เนต ด้วยค่าใช้จ่าย ที่ท่านยังมองไม่เห็นความคุ้มค่าของมัน อีกทั้งยังต้องเสี่ยงกับความปลอดภัยอีกด้วย
ปัจจุบันเทคโนโลยีอินเทอร์เนตได้ล้ำหน้ากว่าที่คิด มีการพัฒนาวิธีการ ซ่อนไอพีแอดเดรสของคอมพิวเตอร์ที่อยู่ในเครือข่าย ทำให้เครือข่ายหรือคอมพิวเตอร์ในอินเทอร์เนตไม่สามารถมองเห็นได้ เมื่อมองไม่เห็นก็ไม่สามารถทำอะไรเครือข่ายภายในได้ วิธีการ เช่นนี้ ได้รับความนิยมมากในช่วง 2-3 ปีที่ผ่านมา บนระบบปฏิบัติลีนุกซ์ ซึ่งเรียกมันว่า IP Masquerading โดยทั่วไปจะเรียกว่า Network แอดเดรส Translation (NAT) ดูรูปที่ 1
รูปที่ 1 แสดงการวางตำแหน่งของ NAT ระหว่างเครือข่ายภายในกับภายนอก
Network แอดเดรส Translation (NAT เป็นวิธีการหนึ่งในการแปลงและแปลไอพีแอดเดรสของเครือข่ายภายใน ให้เป็น ไอพีแอดเดรส ซึ่งเป็นที่ยอมรับและสื่อสารบนอินเทอร์เนต
NAT ให้ประโยชน์มากมายหลายรายการ อาทิ เช่นท่านสามารถใช้ไอพีแอดเดรสที่ตั้งขึ้นมาเองได้ (ซึ่งเป็น ไอพีแอดเดรส ที่ไม่ต้องจดทะเบียนบนอินเทอร์เนต) เพียงแต่ใช้ไอพีแอดเดรสที่ผู้ให้บริการอินเทอร์เนตให้มาก็พอ อีกทั้งยังสามารถซ่อน ไอพีแอดเดรส ที่อยู่ในเครือข่าย (ไอพีแอดเดรสที่ท่านกำหนดขึ้นมาเอง ) ได้ ทำให้มีความปลอดภัย รวมทั้งไม่จำเป็นต้องอ้างแอดเดรสเลขหมายซ้ำๆอีก เมื่อต้องการติดต่อกับอินเทอร์เนต หรือ เครือข่ายขององค์กร อย่างไรก็ดี การใช้ NAT มิใช่ทางเลือกการเชื่อมต่อที่ดีที่สุด รวมทั้งการประหยัด
การใช้ NAT เพื่อจุดมุ่งหมายขั้นพื้นฐาน มีดังนี้
  • NAT ยอมให้ท่านสามารถซ่อน ไอพีแอดเดรส ของเครือข่ายภายในองค์กร ด้วยจุดประสงค์เพื่อรักษาความปลอดภัย เมื่อบุคคลภายนอกไม่สามารถล่วงรู้ IP จริงภายในของเรา ก็ย่อมมีความปลอดภัย
  • หากท่านมีเครือข่ายภายใน ที่มีการจัดตั้ง Configured ให้ใช้ ไอพีแอดเดรส ที่ไม่ได้จดทะเบียนให้ใช้บนอินเทอร์เนต หรือ จาก ISP การใช้ NAT จะช่วยให้การเชื่อมต่อเครือข่ายภายในองค์กรกับอินเทอร์เนตซึ่งถือว่าเป็นเครือข่ายสาธารณะนั้น มีความปลอดภัย เนื่องจาก NAT จะทำการแปลง ไอพีแอดเดรส ของเครือข่ายในองค์กร ให้ใช้ ไอพีแอดเดรส ที่จดทะเบียนถูกต้องบนอินเทอร์เนตเสีย ก่อนที่จะส่งข้อมูลข่าวสารออกไปที่ อินเทอร์เนต
  •  คอมพิวเตอร์ภายในองค์กร ที่ได้รับการจัดตั้ง ไอพีแอดเดรส แบบ Static NAT (เช่น Mail Servers เป็นต้น) สามารถที่จะถูก แปล แอดเดรส เมื่อติดต่อกับภายนอก โดยไม่ต้องมีการ Update ข้อมูลบันทึกบน NAT
  • NAT สามารถเก็บรักษา ไอพีแอดเดรส ที่ได้จดทะเบียนถูกต้องจำนวนหนึ่งไว้ เพื่อให้เครือข่ายภายในใช้เพื่อติดต่อกับ อินเทอร์เนต
  • การออกแบบเครือข่ายภายใต้ NAT สามารถทำได้ง่าย เนื่องจากมีแบบแผนการอ้าง แอดเดรส อย่างไร้ขีดจำกัด (ไม่มีข้อจำกัดในการเติบโตของเครือข่าย ซึ่งอาจนำไปสู่ ไอพีแอดเดรส ที่ไม่พอเพียง)
  • เมื่อมีการติดต่อกันระหว่างเครือข่ายภายในกับ อินเทอร์เนตเกิดขึ้น NAT จะสามารถใช้แบบแผนการอ้าง แอดเดรส ของ NAT เองได้อย่างรวดเร็ว และสามารถจัดการเชื่อมต่อให้ได้อย่างชนิดไร้รอยตะเข็บ
  •  NAT ไม่ต้องการ การอ้าง แอดเดรส ของเครือข่ายชนิด ซ้ำซาก ในการติดต่อสื่อสารกับอินเทอร์เนต
  • ความปลอดภัยของเครือข่าย จะเพิ่มขึ้น โดยการซ่อน ไอพีแอดเดรส ของเครือข่ายภายในองค์กร
ข้อเสียเปรียบ
  •  เป็นระบบที่ทำให้ ยากต่อการติดตามที่มาของ ไอพีแอดเดรส หรือผู้ใช้บน อินเทอร์เนต เนื่องจากผู้ที่ติดต่อเข้ามา แม้จะใช้ ไอพีแอดเดรส ที่ถูกต้อง แต่เนื่องจากเป็นการติดต่อเข้ามาโดยผ่าน การแปลง แอดเดรส โดย NAT จึงไม่สามารถติดตามได้ว่า เป็นการติดต่อมาจากเครื่องใด อย่างแท้จริง ทั้งนี้ เป็นเพราะคอมพิวเตอร์ทุกเครื่องภายในองค์กร เมื่อสื่อสารผ่าน NAT จะมีการใช้ ไอพีแอดเดรส ที่ถูกต้องตัวเดียวกัน นั่นเอง
  • เส้นทางการสื่อสารกับโลกภายนอก อย่าง เช่น อินเทอร์เนต จะต้องเกิด ช่วงหน่วงเวลา หรือที่เรียกว่า Delay เนื่องจากทุกๆ แอดเดรส ภายในเครือข่ายขององค์กร จะต้องได้รับการแปลงให้เป็น ไอพีแอดเดรส อย่างถูกต้องเสียก่อน หากมีการติดต่อกับอินเทอร์เนต ทีเดียวพร้อมๆกัน หลายๆเครื่อง ก็อาจเกิดปัญหาติดขัดได้ แม้จะไม่มากนักก็ตาม
การทำงานของ NAT
NAT เป็นระบบการอินเตอร์เฟซกับอินเทอร์เนต ที่ไม่ขึ้นอยู่กับ Protocol และ Application รวมทั้ง อุปกรณ์ Hardware ใดๆ ซึ่งหมายความว่า NAT สามารถถูกนำมาประยุกต์ใช้งานกับ Router หรือคอมพิวเตอร์ที่ทำหน้าที่เป็น Router ใดๆ ที่มีลักษณะการเชื่อมต่อ โดยมีด้านหนึ่งสำหรับเครือข่ายภายใน และอีกด้านหนึ่งกับเครือข่ายภายนอก ดังเช่น อินเทอร์เนต ตัวอย่างการเชื่อมต่อ เช่น การติดตั้ง NAT ที่ Border Router ซึ่งเป็น Router ที่เชื่อมต่อเครือข่ายย่อยๆ ต่างๆ ภายในองค์กรกับเครือข่ายภายนอก ดูรูปที่2
รูปที่ 2 แสดงลักษณะการเชื่อมต่อของ NAT Router
NAT สามารถทำงานได้ในรูปแบบ 2 ทาง หรือการเชื่อมต่อสื่อสารทั้งในแบบ Inbound และ Outbound หมายความว่า สามารถจัดการกับ ไอพีแอดเดรส ที่วิ่งเข้ามา หรือ ไอพีแอดเดรส ที่วิ่งออกไป โดยสามารถจัดการกับ ไอพีแอดเดรส ต้นทางและปลายทางได้เป็นอย่างดี NAT สามารถทำงานในสถานการณ์ 3 ประการ ดังนี้
  • ทำหน้าที่แปลงและแปล ไอพีแอดเดรส ต้นทางที่มาจากเครือข่ายภายใน
  • ทำหน้าที่ แปลงและแปล ไอพีแอดเดรส ต้นทางที่มาจากเครือข่ายภายนอก เช่น อินเทอร์เนต เป็นต้น
  •  ทำหน้าที่แปลงและแปล ไอพีแอดเดรส ปลายทางภายในเครือข่าย
แม้ว่า NAT สามารถใช้ กับ ไอพีแอดเดรส ภายนอกก็ตาม แต่โดยทั่วไป NAT มีไว้เพื่อการแปล ไอพีแอดเดรส ภายในเครือข่าย จุดประสงค์ก็เพื่อที่จะซ่อน ไอพีแอดเดรส ภายในเครือข่าย และ/หรือ การแปล ไอพีแอดเดรส ที่ไม่ได้จดทะเบียนถูกต้อง (หรือ ไอพีแอดเดรส ส่วนตัว) ไปใช้เป็น ไอพีแอดเดรส ที่จดทะเบียนถูกต้อง ที่สามารถวิ่งไปตามเส้นทางบนอินเทอร์เนต การที่จะให้ทำเช่นนี้ได้ จำเป็นต้องมีการจัดตั้ง Configuration ที่ถูกต้องก่อนการใช้งานเสมอ
ก่อนอื่น เรามาดูประโยชน์ที่ได้จากการ ใช้ NAT อย่างใกล้ชิด ดังต่อไปนี้
สามารถขจัดการเสียเวลาจากการอ้าง แอดเดรส ซ้ำซาก
สมมตว่า ท่านมีเครือข่ายที่ประกอบด้วย ไอพีแอดเดรส ที่ไม่ได้จดทะเบียนถูกต้อง และต้องการให้เครือข่ายของท่านนี้ เชื่อมต่อกับอินเทอร์เนต และแน่นอน หากต้องการให้ Packet จากเครือข่ายของท่านสามารถวิ่งบนอินเทอร์เนตได้ ไอพีแอดเดรส ที่เป็นต้นทางและปลายทางจะต้องได้รับการจดทะเบียนถูกต้องบนอินเทอร์เนตเสียก่อน ดังนั้น หากท่านต้องการให้คอมพิวเตอร์เครื่องใดเครื่องหนึ่งของท่านรับและส่งข้อมูลผ่านอินเทอร์เนต ท่านจะต้องอ้าง แอดเดรส โดยตลอดซ้ำแล้วซ้ำเล่า ซึ่งไม่เพียงแต่ทำให้ ต้องเสียเวลาและเงินทองมิใช่น้อย แถมท่านจะต้องมี ไอพีแอดเดรส ที่ถูกต้องเป็นจำนวนมาก เพื่อนำมาใช้
NAT จะช่วยให้ท่านสามารถใช้ ไอพีแอดเดรส เดิมที่มีอยู่ ถึงแม้ไม่ได้จดทะเบียนถูกต้องก็ตาม เพียงแต่ท่านจะต้องมี ไอพีแอดเดรส ที่ถูกต้องจำนวนหนึ่งก็พอ ซึ่ง ไอพีแอดเดรส จำนวนน้อยนิดนี้ ท่านสามารถนำไปใช้สร้างเป็น ไอพีแอดเดรส Pool (ไอพีแอดเดรส ที่คอมพิวเตอร์บนเครือข่าย นำมาแบ่งใช้งานร่วมกัน) ด้วยวิธีนี้ คอมพิวเตอร์ภายในเครือข่ายสามารถใช้ ไอพีแอดเดรส ที่ถูกต้อง ติดต่อกับอินเทอร์เนตได้ และการร้องขอเข้ามาเพื่อเชื่อมต่อกับคอมพิวเตอร์ในเครือข่ายจากภายนอก จะใช้ ไอพีแอดเดรส ของ NAT เป็น แอดเดรส ปลายทาง ซึ่ง NAT จะทำการแปลและนำเอา ไอพีแอดเดรส ของ NAT ใน แอดเดรส Pool นี้ไปเป็น ไอพีแอดเดรส ที่ใช้งานภายในเครือข่ายต่อไป
การทำงานของ Port แอดเดรส Translation หรือ PAT
Port แอดเดรส Translation (PAT) เป็น Option เพิ่มเติมที่เกี่ยวกับการทำงานของ NAT ซึ่งจัดเป็นชุดการทำงานรองของ NAT หน้าที่ของ PAT ได้แก่การแปล ไอพีแอดเดรส ให้เป็น PAT ไอพีแอดเดรส เพียงชุดเดียว ซึ่ง PAT ให้การสนับสนุนการทำงานบนโปรโตคอล UDP และ TCP เท่านั้น
ภายใน PAT ประกอบด้วยตาราง ไอพีแอดเดรส ซึ่งภายในจะมี ไอพีแอดเดรส ที่ผ่านการจดทะเบียนถูกต้องแล้วอยู่ 1 แอดเดรส โดย ไอพีแอดเดรส ต้นทางที่อยู่ในเครือข่ายภายใน จะถูกจัด Map เข้าไปไว้ภายใน PAT ไอพีแอดเดรส แห่งนี้ การทำงานในส่วนนี้ของ PAT จะคล้ายกันกับการทำงานของ NAT จะต่างกันก็ตรงที่ PAT จะใช้เพียงแค่ 1 ไอพีแอดเดรส เท่านั้น การที่เขา (ฝรั่ง) เรียกว่า PAT ก็เนื่องจากมีการทำงานในลักษณะ แลกเปลี่ยน (Swapped) ไอพีแอดเดรส ไปมาของ PAT โดยมี หมายเลข Port ที่เกี่ยวข้องกับการเชื่อมต่อในแต่ละครั้ง จะถูกแปลไปเป็นเลขหมาย Port ที่ต่างกัน ค่าจากการเปลี่ยนแปลงนี้ จะถูกเก็บรักษาไว้ที่ตาราง PAT เพื่อใช้พิสูจน์ ว่าข้อมูลที่ได้ จากเครือข่ายภายใน จะส่งออกไปให้ใครบ้างที่เคยขอจากเครือข่ายภายนอก โดยไม่สับสนและผิดพลาด
PAT สามารถถูกจัดตั้งให้ใช้ ไอพีแอดเดรส แบบเฉพาะเจาะจงก็ได้ หรืออาจจะใช้ ไอพีแอดเดรส ของ Interface (เช่น LAN Card) ที่ติดตั้งอยู่บน คอมพิวเตอร์ที่ใช้เป็น NAT หรือที่ตัว NAT Router ก็ได้ ต่อไปนี้ เป็นตัวอย่าง ในการจัดตั้ง Configured บน Router Cisco ที่สนับสนุน PAT ดังนี้ (สมมตว่า มีการกำหนด Access list 100 บน Router เอาไว้
router (config-int) #ip nat outside
router (config) #ip nat pool NATแอดเดรสes 189.198.211.10
189.198.211.10 netmask 255.255.255.0
router (config) #ip nat inside source list 100 pool NATแอดเดรสes overload
<<จบตีกรอบปูสกรีน>>
ตัวอย่างแสดงการจัด Configured PAT โดยการใช้ ไอพีแอดเดรส แบบเฉพาะเจาะจง
ตัวอย่างแสดงการจัด Configured PAT โดยการใช้ ไอพีแอดเดรส ของ Interface บน Router เอง
<<ตีกรอบปูสกรีน>>
router (config-int) #ip nat outside
router (config) #ip nat inside source list 100 interface serial0 overload
เมื่อใดที่ควรจัด Configured และเมื่อใดที่ยังไม่ควร
แม้ว่า Network แอดเดรส Translator ให้ประโยชน์มากมายหลายประการก็ตาม แต่ก็ยังมีเหตุผลหลายประการที่ยังไม่ควรใช้ NAT
สมมตว่าท่านใช้ Router Cisco ที่มี IOS ให้การสนับสนุน NAT ซึ่งสามารถ ทำงานร่วมกับApplication และ Traffic หลายประเภท หากท่านต้องการใช้ Cisco IOS NAT ท่านจะต้องตรวจสอบดูก่อนว่า Cisco IOS NAT ให้การสนับสนุน Application ที่ท่านใช้อยู่หรือไม่ โดยมีข้อเท็จจริงอยู่ว่า Cisco IOS NAT ให้การสนับสนุน Application ใดๆก็ได้ ที่มีการสื่อสารบน TCP และ UDP ยกเว้นมีการใช้ IP Packet เป็นผู้นำพาข้อมูลข่าวสารที่มีลักษณะเป็นกระแส (Data Stream) ซึ่ง NAT IOS ไม่ให้การสนับสนุน แต่อย่างไรก็ดี ก็ยังมีข้อยกเว้นสำหรับ Application และ Protocol ที่เป็นดังต่อไปนี้
  •  ICMP
  • FTP
  •  NetBIOS over TCP/IP (NBT)
  • Real Audio
  • CuSeeMe
  • Streamworks
  • DNS's A และ PTR Queries
  • H.323 Version 12.0
  • NetMeeting Version 12.0
  • VDOLive Version 11.3
  • Vextreme Version 11.3
ต่อไปนี้ เป็น Protocol และ Application ที่ Cisco IOS NAT ให้การสนับสนุน ดังนี้
ตารางที่ 1 แสดงรายการ Protocol และ Application ที่ Cisco IOS NAT ให้การสนับสนุน
สนับสนุนโดย Cisco IOS NAT
ไม่สนับสนุนโดย Cisco IOS NAT
 HTTP
TFTP
Telnet
Archie
Finger S
NTP
NFS
Rlogin, rsh, rcp
IP Multicast
Routing table updates
DNS zone Transfers
talk, ntalk
NMP
NetShow
สิ่งที่ NAT ทำงาน ได้แก่การแปล ไอพีแอดเดรส ในลักษณะแบบฉบับที่เรียก ว่าหนึ่งต่อหนึ่ง หรือจำนวนมากต่อจำนวนมาก โดย ไอพีแอดเดรส ที่อยู่ภายในเครือข่าย จะถูก Map ให้เป็น ไอพีแอดเดรส ภายนอก หมายความว่า ไอพีแอดเดรส ภายในจะถูกแปลงเป็น ไอพีแอดเดรส สำหรับการสื่อสารกับภายนอกที่เหมาะสม หรือในทางกลับกัน
ขั้นตอนในการแปล แอดเดรส มีดังนี้
  •  ไอพีแอดเดรส ที่อยู่ใน IP Header จะถูกแทนที่ด้วย ไอพีแอดเดรส ภายนอก หรือภายใน (ขึ้นอยู่กับทิศทางการวิ่งของ 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 เป็นต้น
เมื่อคอมพิวเตอร์ได้สร้าง TCP/IP หรือ UDP Traffic ขึ้น เครื่องที่จะส่งข้อมูล จะต้องอาศัย Protocol เพื่อการสร้าง IP Header ขึ้น โดย IP Header จะหุ้มห่อ TCP Header รวมทั้ง Protocol อื่นๆรวมทั้งข้อมูล จากระดับชั้น Application ใน OSI Model (เช่น HTTP หรือ FTP เป็นต้น) เพื่อประกอบขึ้นมาเป็น Packet ชิ้นหนึ่ง
หน้าที่หลักของ IP Header ใน ตัว Packet ได้แก่ การแสดง แอดเดรส ของผู้รับและผู้ส่ง ของ Packet รวมทั้ง ข่าวสารที่แสดงขนาดของ Header และค่าที่ใช้แสดงสถานะของ IP Packet ซึ่งเปรียบได้กับ พัสดุไปรษณีย์ ที่จะต้องจ่าหน้าซองถึงผู้รับและส่ง ขนาดน้ำหนัก ชนิดของบริการขนส่ง (เปรียบได้กับชนิดของ Protocol ที่ใช้) และอื่นๆ ข้อมูลข่าวสารที่อยู่ภายใน IP Header นี้ NAT จำเป็นต้องนำมาใช้เพื่อการแปล ไอพีแอดเดรส
TCP Header
TCP Header ก็เป็นอีกจุดหนึ่งที่ NAT อาศัยข้อมูลภายในของมันเพื่อการ จัดส่ง Packet เข้าๆออกผ่าน NAT หน้าที่หลักของ TCP Header ได้แก่ การจัดการเพื่อให้แน่ใจว่า ข้อมูลข่าวสารมีการรับส่งที่น่าเชื่อถือได้ นอกจากนี้ ยังใช้เพื่อการควบคุมการไหลของข้อมูลข่าวสารระหว่างผู้รับและผู้ส่ง รวมทั้งมีระบบตรวจสอบความถูกต้องของ Header
จากภาพที่ 5 ท่านจะได้เห็น ช่อง TCP Source Port และ TCP Destination Port มีไว้เพื่อเชื่อมต่อ Application Protocol กับข้อมูล เข้ากับ ไอพีแอดเดรส บนคอมพิวเตอร์ผู้รับและผู้ส่ง ซึ่งช่องต่างๆเหล่านี้ อาจต้องถูกปรับแต่งแก้ไขโดย NAT
ลักษณะหน้าตาของ IP Datagram มีดังนี้ (ดูรูปที่ 3, 4 และ 5)
รูปที่ 3 แสดงลักษณะของ IP Packet
รูปที่ 4 แสดงลักษณะของ IP Header
รูปที่ 5 แสดงลักษณะของ TCP Header
NAT มีอยู่ 2 ชนิดหลักๆ ได้แก่
  • Static NAT
  • Dynamic NAT
Static NAT
Static NAT เป็นการแปล ไอพีแอดเดรส ชนิดกำหนดค่า แอดเดรส ตายตัว จากเครือข่ายภายใน ไปยังเครือข่ายภายนอก ส่วน แอดเดรส ภายนอกจะไม่มีการเปลี่ยนแปลง ดังนั้น ความสัมพันธ์ระหว่าง ไอพีแอดเดรส ของ เครือข่ายภายนอกและภายในจะเป็นแบบแน่นอนตายตัว
รูปที่ 6 แสดง ไอพีแอดเดรส ของเครือข่ายภายในกับเครือข่ายภายนอก
จากรูปที่ 6 จะเห็นว่า บรรดาเครื่องพีซี และเซิร์ฟเวอร์ต่างๆที่อยู่เครือข่ายภายใน จะใช้ แอดเดรส ส่วนตัว (Private Address) ของมันเอง รวมทั้งสามารถใช้ แอดเดรส สาธารณะ (แอดเดรส ที่จดทะเบียนถูกต้อง) ในการสื่อสารระหว่างกัน เป็นการภายในได้ แต่ไม่ว่าท่านจะใช้ แอดเดรส อะไรก็ตาม หากต้องการติดต่อกับนอกเครือข่าย จะต้องผ่านการแปลเสียก่อนที่จะออกจากเครือข่ายเสมอ
สมมตว่า มีพีซีเครื่องหนึ่งซึ่งมี ไอพีแอดเดรส ภายในเบอร์ 192.168.10.1 ทำการส่งข่าวสารไปที่ อินเทอร์เนต โดยอ้าง แอดเดรส ที่ 140.49.10.1 ซึ่งแอดเดรสนี้ เป็น แอดเดรส บนอินเทอร์เนต ลักษณะนี้ Packet ที่วิ่งออกจาก PC นั้น จะมี แอดเดรส ต้นทางเป็น 192.168.10.1 ในกรณีนี้ เมื่อ Packet วิ่งมาถึง NAT Router ก็จะถูกแปลงเป็น 192.112.36.1 ซึ่งเป็น ไอพีแอดเดรส ที่ผู้จัดการเครือข่ายได้กำหนดขึ้น ลักษณะนี้ จะเห็นได้ว่า แอดเดรส ภายใน จะสอดคล้องกับ แอดเดรส ภายนอกอย่างแน่นอนตายตัว และทุกครั้งที่ติดต่อออกไปที่ภายนอก ก็จะต้องใช้ แอดเดรส เดิมเสมอ
และเมื่อมีการตอบกลับมาจากเว็บไซท์ที่อยู่บนอินเทอร์เนต ตัว NAT Router จะใช้กระบวนการย้อนกลับ โดย Router จะอ่านค่า แอดเดรส ปลายทาง ที่อยู่บน Packet ที่ส่งตรงมาจากเว็บไซท์ (140.49.10.1) จากนั้นก็จะทำการพิสูจน์เครื่องพีซี ภายในที่ เว็บไซท์ นี้ต้องการติดต่อด้วย จากนั้นก็กำหนด ไอพีแอดเดรส เพื่อติดต่อกับ เครื่องพีซีนั้นๆ ต่อไป (ดูรูปที่ 7)
รูปที่ 7 แสดง ลักษณะการอ้าง แอดเดรส และ MAP แอดเดรส แบบ Static
ข้อดีและข้อเสียของการใช้ Static NAT
แม้ Static NAT จะเป็นระบบที่เรียบง่ายและตรงไปตรงมาก็ตาม แต่ก็มีจุดด้อยหลายประการ ที่ทำให้ Static NAT กลายเป็นระบบที่เหมาะสำหรับ เครือข่ายที่มีข้อจำกัดมากมาย แต่ไม่เหมาะกับเครือข่ายใหญ่ ด้วยเหตุผลหลายประการดังนี้
  • ต้องการการดูแลอย่างมาก การ Map แอดเดรส โดยวิธีการของ Static Map นี้ จะไม่มีการเปลี่ยนแปลงเลขหมาย ไอพีแอดเดรส โดยอัตโนมัติ หากมีการเปลี่ยนแปลง แอดเดรส ภายในหรือภายนอกเกิดขึ้น เช่น หากต้องการเพิ่มหรือแก้ไข แอดเดรส ใดๆ แล้ว ผู้ดูแลเครือข่ายจะต้องเข้ามาจัดตั้งตาราง การแปล แอดเดรส กันใหม่ และเป็นเรื่องน่าเสียดาย หากเกิดความผิดพลาดขณะที่มีการจัดตั้ง ตารางการแปล แอดเดรส
  • มีการใช้งาน แอดเดรส อย่างมาก ในเครือข่ายขนาดใหญ่ การใช้ แอดเดรส ภายในและภายนอก แบบชนิดหนึ่งต่อหนึ่ง นี้ ทำให้กิน แอดเดรส ภายนอกค่อนข้างมาก หากมีเครื่องคอมพิวเตอร์ภายในเครือข่ายเป็นจำนวนมาก เพราะต้องกำหนด 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 แต่ละเครื่องให้มี ไอพีแอดเดรส ที่ตายตัว โดยผู้จัดการเครือข่าย จะกำหนด แอดเดรส ขึ้นมาจำนวนหนึ่ง เป็นระยะหรือช่วงของ แอดเดรส เช่น 192.80.20.15 - 192.80.20.50 เป็นต้น ดังนั้นใครที่เข้ามาที่เครือข่ายก่อน ก็จะได้รับแจก แอดเดรส ไปใช้งานก่อน โดยเครื่องคอมพิวเตอร์ จะไม่ได้รับ IP ที่ซ้ำกัน ข้อแตกต่างกันระหว่าง NAT กับ DHCP Server ตรงที่ ไอพีแอดเดรส ของ NAT เป็น ไอพีแอดเดรส ที่ได้รับการจดทะเบียนแล้ว เพื่อแจกให้กับเครื่องคอมพิวเตอร์ที่เข้าๆออกบนเครือข่าย ไปยังภายนอก (ดูรูปที่ 8)
รูปที่ 8 แสดงตัวอย่างการทำงานของ Dynamic NAT
หาก Static NAT เป็นส่วนที่เรียกว่าหัวในเหรียญบาท ดังนั้น Dynamic NAT ก็จะถือได้ว่าเป็นส่วนก้อยของเหรียญ เช่นกัน ตรงที่ว่า Dynamic NAT มีการกำหนด แอดเดรส ให้กับภายนอก แบบพลวัตร หมายความว่า แทนที่จะใช้ระบบกำหนด แอดเดรส ภายในกับ ภายนอกแบบหนึ่งต่อหนึ่ง Dynamic NAT จะกำหนดว่า แอดเดรส ที่ใช้จะเปลี่ยนแปลงไปเรื่อยๆ และจะมีการเปลี่ยนแปลงทุกครั้งที่คอมพิวเตอร์ภายในเครือข่าย มีการสถาปนาการเชื่อมต่อกับคอมพิวเตอร์ภายนอกเครือข่าย หรืออาจมีการเปลี่ยนเป็นระยะๆเวลาก็เป็นได้ (ดูรูปที่ 9 )
รูปที่ 9 แสดงการ Map แอดเดรส ของ PC เครื่องต่อไป ด้วย Dynamic NAT
สมมตว่า เครื่องพีซีพร้อมด้วย ไอพีแอดเดรส ภายในเป็น 192.168.10.3 ใช้ HTTP Traffic ไปที่ 140.49.10.1 เมื่อ NAT Router ได้รับ IP Datagram แต่ละ Packet มันจะทำการดึงเอา แอดเดรส ภายนอก (ที่ผ่านการจดทะเบียนแล้ว) จาก แอดเดรส Pool (ในที่นี้ คือ 192.112.36.1, 192.112.36.2 และ 192.112.36.3) และทำการเปลี่ยน แอดเดรส ต้นทางด้วย แอดเดรส ภายนอก ในขณะเดียวกัน NAT Router จะสร้างตารางที่ประกอบด้วย แอดเดรส ที่ใช้เพื่อแปลไว้ แบบเดียวกับที่ Static NAT ใช้เพื่อแปล แอดเดรส แบบตายตัว หน้าตาของตาราง แอดเดรส เป็นไปตามตัวอย่างรูปที่ 10
รูปที่ 10 แสดงการใช้ NAT Router ของเครื่องพีซีต่างๆ จากเครือข่ายภายใน
ในเวลาเดียวกัน IP Datagram ที่มาจากคอมพิวเตอร์เครื่องที่สองบนเครือข่าย ที่ส่งข่าวสารไปที่เครือข่ายภายนอก จะได้รับการปฏิบัติในทำนองเดียวกันโดย NAT Router ตัวอย่าง เช่น NAT Router อาจแปล ไอพีแอดเดรส ต้นทาง ที่อยู่ใน IP Header ที่ติดต่อออกไปเพื่อต้องการใช้งาน FTP Application จาก PC ที่ใช้ แอดเดรส 192.168.10.4 ไปที่ แอดเดรส ต่อไปใน NAT Address Pool ซึ่งประกอบด้วย แอดเดรสจำนวนหนึ่ง (เช่น 192.112.36.1 - 192.112.36.3) ซึ่งต่อมา NAT Router จะแปล แอดเดรส 192.168.10.4 ให้ เป็น 192.112.36.3 ส่วน PC อีกเครื่องหนึ่งคือ 192.168.10.5 จะได้รับการแปลเป็น 192.112.36.2 หากเครื่องพีซีทั้งสองต้องการติดต่อกับเครือข่ายภายนอก (โปรดดูรูปที่ 9)
เมื่อพีซีแต่ละเครื่องได้เสร็จสิ้นจากภาระกิจในการสื่อสารข้อมูลกับเครือข่ายภายนอกแล้ว ตัว NAT Router ก็จะเรียก แอดเดรส ภายนอกคืนกลับเข้าไปที่ Address Pool เพื่อให้ผู้อื่นใช้ต่อไป
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 พร้อม IP Overload (ดูรูปที่ 11)
รูปที่ 11 แสดงการทำงานของ Dynamic NAT ที่อยู่ระหว่าง เครือข่ายภายใน และ อินเทอร์เนต
Dynamic NAT ที่มีการจัดตั้ง Redundant ที่ Interface ภายนอก
หากท่านมีการเชื่อมต่อกับเครือข่ายภายนอก เช่น อินเทอร์เนต โดยทาง Interface ทั้งสอง เช่น การเชื่อมต่อผ่าน ISP 2 แห่งพร้อมกัน ท่านสามารถใช้ NAT เพื่อการแปล แอดเดรส ภายใน ให้เป็น ไอพีแอดเดรส ภายนอก สำหรับการเชื่อมต่อกับ ISP ทั้งสองเพื่อออกอินเทอร์เนต โดย NAT จะสามารถใช้ ไอพีแอดเดรส ภายนอก 2 ชุดเพื่อสื่อสารผ่านทั้งสอง Interface และออกไปทาง Internet ได้ (ดูรูปที่ 12 และ 13)
รูปที่ 12 แสดงการทำงานของ Dynamic NAT Router หลังจากที่ได้กำหนด Port Loading แล้ว
รูปที่ 13 แสดงการใช้ Dynamic NAT Router เชื่อมต่อแบบ Redundant

0 ความคิดเห็น:

แสดงความคิดเห็น