Technology

Dual Stack และ Tunnelling วิธีการเชื่อมโลก IPv4 และ IPv6 เข้าด้วยกัน

By Arnon Puitrakul - 19 มกราคม 2024

Dual Stack และ Tunnelling วิธีการเชื่อมโลก IPv4 และ IPv6 เข้าด้วยกัน

หลังจากอินเตอร์เน็ตเฟื่องฟูมากขึ้น ผู้คนเชื่อมต่อเข้าสู่โลกอินเตอร์เน็ตมากขึ้นเรื่อย ๆ จน IP Address เวอร์ชั่นเดิม หรือคือ IPv4 มันเต็มจนต้องออก Protocol เพื่อเข้ามาแก้ปัญหาชั่วคราวเช่น NAT ณ วันนี้เรามี IPv6 ที่เข้ามาแก้ปัญหานี้เต็ม แต่สร้างปัญหาใหม่แทน เพราะไม่ใช่ทุกคนที่ใช้งาน IPv6 พร้อม ๆ กัน ดังนั้น เราต้องมีเทคนิคบางอย่างเพื่อเชื่อมคนที่ใช้ IPv4 และ IPv6 เข้าหากัน

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

สำหรับคนที่ยังไม่คุ้นเคยกับ Concept ของ IP Address มาก เราแนะนำให้ไปอ่านพื้นฐานในบทความก่อนหน้านี้ก่อน จะได้อิน และ เข้าใจกับเรื่องที่จะเล่าในบทความนี้มากขึ้น

ปัญหาคืออะไร ?

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

นอกจากนั้น ใน Packet ส่วนของ Header ที่ส่งหากัน มันหน้าตาไม่เหมือนกันอีก จะเห็นว่า ใน Packet ของ IPv6 หลาย ๆ มันดู Lean กว่าฝั่ง IPv4 หลายส่วนอยู่ เช่นใน IPv4 เรามีส่วนที่ใช้สำหรับการทำ Fragmentation อย่าง Identification, Flag และ Fragmentation Offset แต่ใน IPv6 มันหายไป จริง ๆ มีความต่างในแง่ของ Header อีกเยอะเลย ไว้จะมาเล่าลึก ๆ อีกทีนึง

จากทั้ง Address ที่หน้าตาไม่เหมือนกัน และ Header ยังหน้าตาไม่เหมือนกันอีกทำให้เราสามารถบอกได้ว่า มันทำงานกันอยู่คนละโลกกันเลย แต่ปัญหาคือ เราไม่สามารถตื่นมาแล้วบอกว่า โอเคทุกคน เลิกใช้ IPv4 แล้วมาใช้ IPv6 กันนะ ทำให้เราจะต้องมีวิธีการบางอย่างเพื่อทำให้โลกทั้งสองมันเชื่อมเข้าหากัน

Dual Stack

ในเมื่อเรายังต้องใช้ทั้ง IPv4 และ IPv6 กันต่อไป งั้น เราก็ทำให้ระบบของเราสามารถรองรับการทำงานทั้งสอง Protocol เลยสิ ได้หมดทั้ง v4 และ v6 ไปเลย หมายความว่า เราจำเป็นต้องตั้งค่า ระบบของเรา ให้มี Address ทั้ง v4 และ v6 เมื่อเราตั้งได้ลักษณะแบบนี้ เราจะถือว่า มันทำงานแบบ Dual Stack ทันที

ในเมื่อการทำ Dual Stack เสมือนว่า เรามีทางออก 2 Link แล้วเครื่องจะรู้ได้อย่างไรว่า มันจะไปออกฝั่ง IPv4 หรือ IPv6 ละ ทำให้เขาจะมีการกำกับ Protocol ID ไว้ที่ Ethernet Frame หรือถ้าไปดูใน Ethernet Frame Structure มันคือส่วนที่เรียกว่า Ethernet Type หากเป็น IPv4 จะใส่มาเป็น 0x0800 หากเป็น IPv6 จะออกเป็น 0x86dd แทน แล้วจึงไปออกไม่ว่าจะผ่าน TCP หรือ UDP ได้หมดไปที่ Application หรือ Service ปลายทางที่ต้องการได้ตรง ๆ

นั่นแปลว่า การทำงานแบบ Dual Stack นี้ เรายังสามารถสื่อสารกับปลายทางได้ทั้งหมด ไม่ว่าปลายทางจะรองรับ IPv4 หรือ IPv6 เราสามารถคุยได้หมดถ้าสดชื่น และเรายังเป็นต้องใช้ IPv4 ในการคุยอยู่ เหมือนเดิมเท่านั้นเลย เราคิดว่า Service ส่วนใหญ่ ณ เวลานี้ ก็น่าจะเล่นท่าแบบนี้กันเยอะ เพื่อให้รองรับทั้ง IPv4 และ IPv6 ไปพร้อม ๆ กัน

Tunnelling

ปัญหาเกิดอีก เพราะเราไม่สามารถให้ทุกคนเปิดใช้งาน Dual Stack ได้ ด้วยหลาย ๆ เหตุผล จึงทำให้เราต้องมีอีกวิธีการมาช่วยเพื่อให้เราสามารถส่งข้อมูลได้นั่นคือ การใช้ Tunnelling

จากเดิม ถ้าเราใช้ Dual Stack เราส่งข้อมูลระหว่างระบบที่เปิดใช้ Dual Stack ไม่ว่าเราจะคุยกันผ่าน IPv4 หรือ IPv6 เรารับได้หมดถ้าสดชื่น แต่โลก Internet มันไม่ได้ทำงานแบบนั้น เราต้องส่งผ่านระบบตัวกลางอยู่หลายตัวมาก ๆ เช่นจากบ้านเราจะไป Google เราต้องออกRouter เรา ผ่านเข้า ISP ของเรา แล้วไปเข้า Google นั่นนี่เต็มไปหมด คำถามคือ แล้วถ้าเราไม่มีเส้นทางที่ตัวกลางตัวไหนเลย ที่รองรับ IPv6 หรือ Dual Stack เราจะทำยังไง

วิธีการแก้ปัญหาง่าย ๆ คือ งั้นเราก็แปลง IPv6 ให้ทำงานกับ IPv4 ได้ก็จบแล้วปะ สิ่งที่ทำจริง ๆ ก็คือ การยัด IPv6 Packet เข้าไปใส่ใน IPv4 Packet แทนเท่านั้นเลย โดย IPv6 Packet ทั้งตัวจะโดนอัดอยู่ในส่วน Payload ของ IPv4 Packet

สิ่งที่ทำคือ เมื่อเราเริ่มต้นจากส่ง IPv6 Packet ออกมา ผ่านตัวกลางนั่นนี่ จนถึงจุดที่มันเป็น Dual Stack มันมองเห็นแล้วว่า Next Hop ชิบหายละ มันไม่มีเส้นทางที่เป็น IPv6 เลย มันจะทำการยัด Packet ใส่เข้าไปใน IPv4 Packet แล้วส่งผ่าน IPv4 Network จนไปโผล่ที่ตัวกลางสักตัวที่เป็น Dual Stack เมื่อมันเห็น มันจะรู้ละว่า โอเค เราเดิน IPv6 ได้ หาก Next Hop เป็น IPv6 Address ได้มันก็จะคลาย IPv6 Packet ออกมาแล้วส่งต่อไป

ถ้าเราลองไปดูในรายละเอียดจริง ๆ มันมีวิธีการยัด IPv6 Packet หลายแบบมาก ๆ ตั้งแต่ 6in4 และ 6over4 เราขอไม่เล่ารายละเอียดว่าแต่ละตัวมันต่างกันอย่างกันอย่างไร มันมีรายละเอียดพอสมควร แยกออกไปเป็นอีกบทความได้เลย ฮ่า ๆ แต่หลักการมันจะคล้าย ๆ กันหมดนี่แหละ

สรุป

ทั้ง Dual Stack และ Tunnelling เป็นวิธีการที่ทำให้เราสามารถค่อย ๆ Integrate IPv4 และ IPv6 ให้ทำงานอยู่ในระบบเดียวกันได้ เรียกว่าเป็นเหมือนเครื่องมือวิเศษเลยก็ว่าได้ สำหรับการใช้งานจริง ส่วนใหญ่หากเป็นผู้ใช้งาน Internet เราไม่จำเป็นต้องใส่ใจเท่าไหร่ เพราะทั้งหมดพวกนี้ผู้ดูแลระบบของเราจัดการหมดแล้ว หรือกระทั่ง ISP ของเราจัดการส่วนใหญ่ให้เราหมดแล้ว เช่น ถ้าเราต้องการวิ่งไปหา IPv6 เขามักจะมี Translation Service ให้เรามาแล้ว เราจึงสามารถเข้าได้ตรง ๆ ผ่าน IPv4 ได้ เราเขียนเพื่อให้รู้เฉย ๆ ว่า เบื้องหลังการทำงานมันมีอะไรมากกว่าที่เราเห็นเยอะพอสมควร

Read Next...

External HDD เสียอย่าพึ่งทิ้ง มาเปลี่ยน HDD กันเถอะ

External HDD เสียอย่าพึ่งทิ้ง มาเปลี่ยน HDD กันเถอะ

เรื่องของเรื่องมีอยู่ว่า Desktop External HDD คู่ใจของเราอย่าง My Book มันมีอาการแปลก ๆ มาสักพัก ไฟล์บางไฟล์อ่านไม่ได้ และบางครั้งก็ช้า จนพบว่า อ๋อ น้องลาโลกแล้ว แต่เราจะบอกว่า คนที่เจออาการแบบนี้ อย่าพึ่งทิ้งนะ เพราะเราสามารถซื้อ HDD มาเปลี่ยนแล้วใช้งานต่อได้ วันนี้เราจะมาเล่าให้อ่านกัน...

ใช้ HDD ขนาดใหญ่ หรือ HDD ขนาดเล็กจำนวนมากใน NAS ดี?

ใช้ HDD ขนาดใหญ่ หรือ HDD ขนาดเล็กจำนวนมากใน NAS ดี?

จากเมื่อเดือนก่อน ๆ เราเล่าเรื่องที่เราเปลี่ยน HDD ไปในความจุที่ใหญ่ขึ้น ทำให้เราคิดย้อนตอนที่เรา Design NAS ที่จะใช้ในบ้านครั้งแรกว่า เราควรจะใช้ HDD ขนาดเท่าไหร่ดี จะใช้ HDD ขนาดความจุเล็ก ๆ จำนวนมาก หรือเอาความจุสูง ๆ ไม่กี่ลูกดีกว่า วันนี้เราเอาประสบการณ์มาเล่ากัน...

Dual Stack และ Tunnelling วิธีการเชื่อมโลก IPv4 และ IPv6 เข้าด้วยกัน

Dual Stack และ Tunnelling วิธีการเชื่อมโลก IPv4 และ IPv6 เข้าด้วยกัน

ปัจจุบันนี้เรามีการใช้ IPv6 มากขึ้นเรื่อย ๆ แน่นอนว่ายังไม่เท่ากับอุปกรณ์ที่ทำงานบน IPv4 และทั้งสอง Version นี้ไม่สามารถเชื่อมต่อคุยกันได้โดยตรง ทำให้เราจำเป็นต้องมีเทคนิคบางอย่าง วันนี้เราจะมาเล่าให้อ่านกันว่า เขาทำกันยังไง...

ประหยัดเงินหลักหมื่นค่า Mac ด้วย External SSD

ประหยัดเงินหลักหมื่นค่า Mac ด้วย External SSD

หนึ่งในตัวเลือกที่ Apple ให้เราเลือกตอนจะซื้อเครื่อง Mac คือ Storage หรือขนาดของที่เก็บข้อมูล ปัญหาคือ ยิ่งเยอะ มันทำให้เรามีพื้นที่เก็บข้อมูลมากขึ้น แต่มันมากับราคาที่สูงเหลือเกิน วันนี้เราเอาตัวเลือกในการประหยัดเงินกว่าหมื่นบาท มาใช้ External SSD กัน...