จะเกิดอะไรขึ้นหลัง IPv4 หมดโลกตอนที่ 2:Network Address Translation

by lew
4 February 2011 - 20:03

บทความชุดนี้เป็นบทความเชิงเทคนิคอย่างง่าย เพื่อปูพื้นฐานทุกท่านให้เข้าใจถึงปัญหาที่โลกอินเทอร์เน็ตกำลังประสบ, ผลกระทบที่เราจะพบ, และการเปลี่ยนผ่านไปยังเทคโนโลยีใหม่ ถ้าใครยังไม่ได้อ่านตอนแรกแนะนำให้กลับไปอ่านก่อนครับ

รู้จักกับ NAT

ทุกวันนี้ถ้าใครสังเกตอาจจะพบว่าคอมพิวเตอร์ที่เราใช้งานอยู่มักได้หมายเลขไอพีคล้ายๆ กันไม่ว่าทำงานอยู่ที่ไหน โดยมักเป็นหมายเลข 192.168.xxx.xxx หรือ 10.xxx.xxx.xxx หมายเลขเหล่านี้เป็นหมายเลขที่ถูกกำหนดไว้ล่วงหน้าว่าหน่วยงานใดๆ สามารถใช้เป็นการภายในได้โดยไม่ต้องกำหนดหมายเลขล่วงหน้า แต่เนื่องจากหน่วยงานต่างๆ สามารถใช้หมายเลขเหล่านี้ซ้ำไปมาได้อย่างอิสระ การเชื่อมต่อระหว่างหน่วยงานงานจำเป็นต้องมีหมายเลขไอพีที่ได้รับการจัดสรร เพื่อให้เป็นหมายเลขอ้างอิงข้ามเครือข่ายอินเทอร์เน็ตได้

ในโลกอินเทอร์เน็ตนั้นนอกจากจะมีหมายเลขไอพีที่เปรียบเสมือนที่อยู่ของเราบนอินเทอร์เน็ตแล้ว เครื่องทุกเครื่องยังมีพอร์ตเพื่อแยกข้อมูลที่แอพพลิเคชั่นต่างๆ รับส่งออกจากกัน เปรียบเสมือนเราใส่ชื่อในการจ่าหน้าซองหมาย ที่แม้จะมีผู้รับหลายคนในที่อยู่เดียวกันก็ยังคงสามารถส่งข้อมูลไปถึงปลายทางได้ โดยแต่ละหมายเลขไอพีจะมีพอร์ตได้ถึง 65535 พอร์ต

ระบบ Network Address Translation หรือ NAT อาศัยจำนวนพอร์ตสำหรับแต่ละไอพีที่มีอยู่จำนวนมาก มาแจกจ่ายให้แต่ละไอพี ทำได้โลกภายนอกสามารถติดต่อกับเครื่องจำนวนมากในเครือข่ายได้โดยอาศัยหมายเลขไอพีเดียวกัน เปรียบเสมือนระบบไปรษณีย์ภายในคอนโด ที่หากเจ้าหน้าที่คอนโดสามารถจำได้ว่าใครอาศัยอยู่ในห้องไหนบ้าง คนภายนอกก็จะสามารถติดต่อกับคนที่อาศัยอยู่ในคอนโดนั้นได้โดยไม่ต้องระบุหมายเลขห้อง เพียงแค่ระบุชื่อให้ถูกต้องเจ้าหน้าที่ก็จะนำจดหมายไปส่งให้เอง

ระบบ NAT มีข้อจำกัดสำคัญคือมันถูกออกแบบมาเพื่อให้เครื่องที่อยู่ภายในองค์กร เปิดการเชื่อมต่อไปยังเครื่องที่อยู่ภายนอก โดยเมื่อมีการขอเปิดการเชื่อมต่อครั้งแรก เราท์เตอร์ที่รองรับ NAT จะให้หมายเลขพอร์ตจากไอพีที่ได้รับการจัดสรรมา แล้วใช้หมายเลขไอพีและพอร์ตนั้นๆ แม้จะมีความพยายามในการแก้ปัญหาเพื่อให้หมายเลขไอพีภายในสามารถเปิดรับข้อมูลจากภายนอกโดยไม่ต้องเปิดการเชื่อมต่อไปก่อนได้บ้าง แต่ก็ไม่สมบูรณ์นัก โดยเฉพาะเมื่อเครื่องทั้งสองด้านเป็นเครื่องที่อยู่หลัง NAT ทั้งคู่

ผลกระทบหลังจาก IPv4 หมดโลก

ทุกวันนี้เมื่อเราเชื่อมต่อเข้ากับผู้ให้บริการอินเทอร์เน็ต เรามักได้รับหมายเลขไอพีเป็นหมายเลขไอพีที่ได้รับการจัดสรรมา (บางคนเรียกว่า "ไอพีจริง") แต่เนื่องจากหมายเลขไอพีเหล่านี้หมดลง ผู้ให้บริการไม่สามารถขอจัดสรรหมายเลขไอพีเหลา่นี้เพิ่มเติมได้ ขณะที่หน่วยงานหลายแห่งต้องการเปิดให้บริการที่ต้องรับการเชื่อมต่อจากทุกคนได้ (เช่นเว็บเซิร์ฟเวอร์ของ Blognone) ทำให้บริการเหล่านี้ต้องการหมายเลขไอพีที่ได้รับการจัดสรร ค่าขอหมายเลขจะเพิ่มขึ้นตามลำดับเวลา ขณะที่การเติบโตของผู้ใช้อินเทอร์เน็ตตามบ้านเพิ่มขึ้นอย่างต่อเนื่อง ผู้ให้บริการอินเทอร์เน็ตจะไม่มีทางเลือกอื่นนอกจากหยุดให้หมายเลขไอพีที่ได้รับการจัดสรรมานี้กับผู้ใช้ตามบ้าน แล้วให้หมายเลขไอพีภายในที่เชื่อมต่อ

ทุกวันนี้เองหน่วยงานที่เคยได้รับหมายเลขไอพีจำนวนมากและเคยคิดว่ามากเกินพอ เช่น ม. เกษตรศาสตร์ที่ได้รับมาถึง 65535 หมายเลขนั้นก็เริ่มประสบปัญหาหมายเลขไอพีไม่พอ และต้องจ่ายหมายเลขไอพีภายในให้กับผู้ใช้งานบางส่วน

การใช้งานอินเทอร์เน็ต "ทั่วๆ ไป" ที่เราใช้งานกันเช่นเข้าเว็บ หรือเช็คอีเมลนั้นจะสามารถใช้งานต่อไปได้อีกยาวนานอย่างไร้ปัญหา แต่การใช้ไอพีภายในเป็นวงกว้างนั้นทำให้หลายครั้งที่เราเชื่อมต่อผ่านเราท์เตอร์ จะกลายเป็นเรากำลังอยู่ภายใต้หมายเลขไอพีภายในซ้อนกันหลายชั้น

แม้การทำ NAT ซ้อนกันหลายชั้นไม่สร้างปัญหาการเชื่อมต่อเข้ากับบริการที่มีหมายเลขไอพีที่ได้รับจัดสรรมาแต่อย่างใด โดยอาจจะมีปัญหาเรื่องความเร็วไปบ้าง แต่อุปกรณ์เครือข่ายรุ่นใหม่ๆ ก็ประมวลผล NAT ได้เร็วขึ้นมาก แต่ปัญหาที่สำคัญคือการเชื่อมต่อตรงระหว่างเครื่องต่างๆ ในอินเทอร์เน็ต โดยเครื่องที่อยู่ภายใต้ระบบ NAT ที่ซับซ้อนมีโอกาสจะมีปัญหาไม่สามารถเชื่อมต่อถึงกันโดยตรงได้สูงมาก โดยงานวิจัยในหมวดการส่งข้อมูลถึงกันโดยตรงหรือ NAT Transversal ยังเป็นหัวข้อที่มีการวิจัยอย่างต่อเนื่องจนถึงปัจจุบัน โดยมีมาตรฐานบางอันได้รับความนิยมขึ้นมาบ้างเช่น UPnP ที่เราท์เตอร์ตามบ้านมักรองรับเป็นอย่างดี แต่ก็ไม่มีการรับรองใดๆ ว่ามันจะทำงานได้ในเครือข่ายที่มีการทำ NAT ซ้อนกันไปมาหลายชั้น

ปัญหาสำคัญของการไม่สามารถส่งข้อมูลถึงกันโดยตรงได้เช่นนี้ จะสร้างปัญหาให้กับแอพพลิเคชั่นบางประเภทเช่น VoIP ที่ปรกติแล้วเซิร์ฟเวอร์ทำหน้าที่เพียง "นัดหมาย" คู่สายสองข้างให้เชื่อมต่อกัน แต่หลังจากนั้นทั้งสองข้างจะส่งข้อมูลถึงกันโดยตรง บริการเช่น Skype นั้นอาศัยผู้ใช้ระบบของ Skype เองที่มีหมายเลขไอพีที่ได้รับการจัดสรรมา ให้ทำตัวเป็น Super Node เพื่อส่งข้อมูลให้กับผู้ใช้คนอื่นๆ ของ Skype ที่อยู่ในเครือข่ายหลัง NAT แต่เมื่อเครือข่ายจำนวนมากเริ่มเป็น NAT มาขึ้นเรื่อยๆ เครื่องที่จะทำหน้าที่ Super Node นั้นก็จะหาได้ยากขึ้นเรื่อยๆ เพิ่มค่าใช้จ่ายให้กับบริษัทเช่น Skype ที่จะต้องหาเครื่องมาวางเพื่อทำหน้าที่ส่งต่อข้อมูลโดยตรง

บริการอีกอย่างหนึ่งที่มีปัญหาคือ BitTorrent ที่ต้องการการเชื่อมต่อโดยตรงระหว่างเครื่องในเครือข่าย โดย BitTorrent นั้นอาศัยการ "ประกาศ" ที่อยู่และหมายเลขพอร์ตสำหรับรับการเชื่อมต่อจากเครื่องอื่นๆ ในเครือข่าย หากคอมพิวเตอร์ในเครือข่ายไม่สามารถกำหนดพอร์ตเพื่อรอการเชื่อมต่อขาเข้าได้แล้ว การสร้างเครือข่ายเพื่อแชร์ไฟล์ระหว่างกันก็จะทำไม่ได้

ตอนต่อไป ผมจะพูดถึง IPv6 ปัญหาระหว่างการเปลี่ยนผ่าน และฟีเจอร์ที่เราจะได้รับ

Blognone Jobs Premium