หลายวันมานี้หลายคนอาจสงสัยว่าทำไม internet ทรูถึงดูเอ๋อๆ ไป วันนี้เราได้พบกับคำตอบแล้ว ถ้าคนช่างสังเกตหน่อยจะพบว่า IP address ที่ทรูแจกออกมาไม่ใช่ public IP address อีกต่อไปแล้ว ยกตัวอย่างที่ๆ ผู้เขียนอยู่ในขณะนี้ ได้รับแจก IP address 100.66.1.xxx มาจากทรู ซึ่ง IP address นี้อยู่ใน block private IP address 100.64.0.0/10 ที่ IANA assign ให้ใช้ใน Large Scale NAT นั่นเอง (ที่ internet เอ๋อๆ ไปสงสัยว่าจะเตรียม deploy LSN นี่แหละครับ)
สำหรับคนที่ยังงงอยู่ว่านี่คือเรื่องอะไร และมันจะส่งผลกระทบกับเรายังไง ผู้เขียนอยากแนะนำให้รู้จักกับ NAT device สักหน่อยครับ NAT ย่อมาจาก network address translation ซึ่งถ้าภาษาอังกฤษไม่ค่อยแข็งแรงก็ไม่เป็นไรครับมันก็แค่ชื่อ ชื่อนี้ตั้งขึ้นมานี้มีเหตุผลอยู่เบื้องหลังแต่การที่เราจะเข้าใจเหตุผลของมันนั้นเราต้องเข้าใจว่ามันทำงานยังไง ทว่าวันนี้ท่านยังไม่จำเป็นต้องรู้ลึกรู้จริงขนาดนั้นครับ ผู้เขียนข่าวอยากให้รู้จัก NAT แบบง่ายๆ กว้างๆ เท่านั้น ยกตัวอย่าง NAT device ที่ท่านคุ้นเคยดีคือ modem router ที่ท่านใช้กันอยู่ตามบ้านนั่นเอง
หลายคนคงจะคุ้นๆ IP address 192.168.0.xxx ที่ใช้ตามบ้านกันมาบ้าง นั่นคือผลการทำงานของ NAT ครับ โดยผู้ให้บริการ internet จะแจก IP address ให้ผู้ใช้ตามบ้านแค่ IP address เดียว พอเราเอาสายโทรศัพท์มาต่อเข้า router ของเรา เราก็สามารถเข้าถึง internet ได้พร้อมกันทั้งบ้าน ทั้งๆ ที่มี IP address เดียวนี่แหละครับ โดยอุปกรณ์แต่ละชิ้นในบ้าน จะมี IP address ที่แจกจาก router ของเรานี่เอง router ตัวเก่งของเราจะทำการ share IP address อันเดียวจาก ISP ให้อุปกรณ์ทุกตัวในบ้านสามารถใช้งานได้ (เจ้า 192... นี่ไม่ได้มาจาก ISP นะ) โดยข้อจำกัดของมันก็ค่อนข้างชัดเจน เนื่องจากเป็นหมายเลขที่ router กำหนดเองนำมาใช้เองคนอื่นไม่ได้รู้เรื่องด้วยเลย ทำให้คนอื่นหรืออุปกรณ์ภายนอกไม่สามารถติดต่ออุปกรณ์ภายในบ้านได้ด้วยหมายเลขดังกล่าวได้ครับ
และด้วยธรรมชาติของ NAT ที่เอา IP address เดียวมาแตกย่อยเป็นหลาย address ได้ ทำให้มีคนสนใจนำมาใช้กับระบบของ ISP ตั้งชื่อให้โก้ๆ ว่า LSN หรือ Large Scale NAT นั่นเอง (น่าสนใจเพราะในปัจจุบันนี้ IPv4 address มีราคาแพงขึ้นมากครับ) ถึงจุดนี้ขออธิบายสรุปรวมๆ อีกครั้งนึงนะครับว่า ISP ก็เอาของที่คล้ายๆ ที่ใช้กันตามบ้านนี่แหละไปติดไว้ในระบบเครือข่ายของตัวเอง เพื่อประหยัด IP address ครับ
แต่การทำอย่างนั้นก็มีข้อเสียจมหูเหมือนกัน (ไม่งั้นเขาคงไม่จำเป็นต้องคิด IPv6 ขึ้นมาเนอะ) เรามาดูกันสักเล็กน้อยครับว่ามันแลกมากับอะไรบ้าง นึกถึงตอนที่คุณเคยใช้ router ที่บ้านเมื่อก่อนหน้านี้ได้ใช่มั้ยครับ ที่คนภายนอกบ้านจะติดต่อคนภายในบ้านด้วย private address ไม่ได้ (แต่คนในบ้านติดต่อข้างนอกบ้านได้นะ) หลักการเดียวกัน พอ ISP นำ LSN ขึ้นใช้งาน ทำให้ network ภายนอกติดต่อบ้านคุณไม่ได้ด้วยซ้ำ (อย่าว่าแต่อุปกรณ์ในบ้านเลย) แต่ LSN นี่แย่กว่า NAT ตามบ้านมากครับเพราะคุณควบคุมมันไม่ได้ ในกรณี NAT ตามบ้าน คุณสามารถทำสิ่งที่เรียกว่า port forwarding เพื่อเจาะรู NAT ให้คนอื่นติดต่อกับอุปกรณ์ในบ้านได้ หรือถ้าคุณไม่ได้ทำ (ในกรณีที่คุณไม่รู้ด้วยซ้ำว่า port forwarding คืออะไร) นั่นก็คือ โปรแกรมที่คุณใช้เป็นคนทำให้ครับ ซึ่ง NAT device ตามบ้านจะรองรับ UPnP หรือ NAT-PMP เพื่อให้โปรแกรมที่คุณใช้ ทำ port forwarding ให้คุณได้ แต่ protocol ดังกล่าว ถูก ban ในระบบ LSN ครับ หรือสรุปความได้ว่า คุณทำ port forwarding กับ LSN ที่ ISP เอามาใช้ไม่ได้ ทำให้ software หลายๆ อย่างที่คุณใช้เจ๊งไปเฉยๆ
ยกตัวอย่างเช่น คุณจะเปิด server เกม Counter Strike, Serious Sam, ฯลฯ เล่นกับเพื่อนไม่ได้ คุณจะเปิด website ที่บ้านคุณไม่ได้ VoIP, Skype, LINE จะมีคุณภาพเสียงแย่ลง delay สูงขึ้น (?ได้ยังไงเดี๋ยวอธิบาย) คุณจะ seed bittorrent ไม่ได้ ต่อ VPN ไปทำงานในเครือข่ายของมหาวิทยาลัยก็ไม่ได้ (ต่อ VPN ไปไหนไม่ได้เลย) มีคนพยายามรวบรวม list การใช้งานที่ Large Scale NAT ทำเจ๊ง ไว้ที่นี่ครับ (ใครโดนเต็มๆ บ้างหรือเปล่าเอ่ย)
http://chrisgrundemann.com/index.php/2011/nat444-cgn-lsn-breaks/
ที่มีคนใช้เยอะอีกอย่างนึงก็คงจะเป็น Video streaming นี่แหละ
เพิ่มเกร็ดเล็กเกร็ดน้อยสำหรับคนที่สนใจจริงๆ VoIP เสียงแย่ลงเพราะ LSN ไม่รองรับ STUN protocol
http://en.wikipedia.org/wiki/STUN
protocol นี้ทำงานคล้ายๆ การทำ port forwarding ชั่วคราวบน NAT device ครับ ถ้าทำงานไม่ได้ VoIP application จะ fallback ไปใช้ TURN protocol
http://en.wikipedia.org/wiki/TURN
ที่ใช้ตัวกลาง ช่วย relay ข้อมูล (ข้อมูลมันไปอ้อมโลกมาครับ)
ดังนั้น ด้วยข้อเสียนานัปการ ทำให้ Large Scale NAT ไม่ใช่ long-term solution และผมหวังเป็นอย่างยิ่งว่า ISP ที่งัด NAT มาใช้ (ได้ยินว่า TOT งัดมาใช้ก่อนหน้านี้พักใหญ่ๆ และ มีคนรายงานว่า 3BB บางพื้นที่ ถูก NAT ด้วย private IP address ธรรมดา (ไม่ใช่ 100.64.0.0/10)) คงได้เตรียมการปรับเปลี่ยนเป็น IPv6 มาเป็นที่เรียบร้อยดีแล้วแค่กำลังทดสอบอะไรบางอย่างเช่นลองอุปกรณ์อะไรพวกนี้อยู่ (NAT แก้ขัดเฉยๆ ไม่ได้กะใช้ยาว)
แต่ลอง ISP NAT กันถ้วนหน้าอย่างนี้ สงสัยเราจะได้ใช้ IPv6 แบบ Dual-Stack Lite ซะละมังครับ (router มัน support น้อยนะครับ ถ้าถามความเห็นผม ผมยังเชียร์ 6rd อยู่)
สำหรับการที่ ISP พากันติดตั้ง NAT device นี้ แม้จะมีคนที่ไม่พอใจอยู่เป็นจำนวนมาก แต่ก็เป็นเรื่องน่าดีใจของลูกค้า ISP บางคนนะครับ นั่นคือ คนที่ติด internet เพื่อใช้งาน website อย่างเดียว เพราะการที่ internet ใช้งานได้น้อยลง นั่นหมายถึงจะมี bandwidth เพิ่มขึ้นสำหรับให้คนเข้า website ต่างๆ ได้รวดเร็วขึ้นครับ ในข้อเสียก็ยังมี (เสี้ยว) ข้อดีปนอยู่บ้างเล็กน้อยครับ
note1: ในปัจจุบันนี้ platform มือถือ ยังไม่รองรับ IPv6 เต็มที่นัก (ยกตัวอย่าง Android รุ่นล่าสุด 4.4.2 ยังไม่มีกลไกสำหรับ assign IP address ของ IPv6 (DHCPv6)) แต่ผมเชื่อว่า PC พร้อม พอใช้ได้แล้วนะครับ
note2: สำหรับคนที่กลัวว่าเดิมทีทุกบ้านใช้ NAT พอเปลี่ยนเป็น IPv6 แล้วไม่มี NAT จะเกิดปัญหาด้าน security คุณกังวลมากเกินไปนะครับ IPv6 มันไม่ compatible กับ IPv4 ครับ แสดงว่าถ้าโปรแกรมไหน support IPv6 คนเขียนโปรแกรมเขาจะต้องทราบอยู่ก่อนแล้วครับ ว่าไม่ผ่าน NAT นะ หรือสรุปอีกแบบหนึ่งก็คือ คนเขียนโปรแกรมรู้อยู่ก่อนแล้วเลยเขียนให้มัน support IPv6 ไม่ใช่ว่าอยู่ดีๆ คนใช้เปลี่ยน network เป็น IPv6 แล้วโปรแกรมเดิม (IPv4) มันจะใช้ได้ครับ ดังนั้นมันมาพร้อมกลไกรองรับจุดนี้ไว้แน่นอน