เทคโนโลยี Teredo Tunneling การเชื่อมต่อ IPv6 ผ่านเครือข่าย IPv4
สรุปใจความสำคัญ
- Teredo ช่วยให้โฮสต์ IPv6 เชื่อมต่ออินเทอร์เน็ตได้แม้จะอยู่หลังอุปกรณ์ NAT โดยใช้การห่อหุ้มแพ็กเก็ต IPv6 ใน UDP/IPv4
- พัฒนาโดย Microsoft และได้รับการกำหนดมาตรฐานโดย IETF ใน RFC 4380
- ใช้ Teredo Server ในการตรวจหาประเภทของ NAT และ Teredo Relay ในการเชื่อมต่อกับเครือข่าย IPv6 แบบ Native
- เป็นเทคโนโลยีชั่วคราวที่ควรถูกแทนที่ด้วยการเชื่อมต่อ IPv6 แบบ Native
Teredo เป็นเทคโนโลยีการเปลี่ยนผ่าน (Transition Technology) ที่พัฒนาโดย Microsoft เพื่อให้โฮสต์ที่รองรับโปรโตคอล IPv6 (Internet Protocol version 6) สามารถเชื่อมต่อกับเครือข่าย IPv6 ได้ แม้ว่าโฮสต์นั้นจะเชื่อมต่ออยู่บนอินเทอร์เน็ต IPv4 และไม่มีการเชื่อมต่อ IPv6 แบบดั้งเดิม (Native Connection) โดยจุดเด่นที่สำคัญของ Teredo คือความสามารถในการทำงานผ่านอุปกรณ์ Network Address Translation (NAT) เช่น เราเตอร์ตามบ้าน ซึ่งแตกต่างจากโปรโตคอลการทำ Tunneling อื่นๆ ในยุคนั้น
กลไกการทำงานของ Teredo
Teredo ใช้โปรโตคอลการทำอุโมงค์ (Tunneling Protocol) ที่ไม่ขึ้นกับแพลตฟอร์ม โดยใช้วิธีการห่อหุ้ม (Encapsulation) แพ็กเก็ตข้อมูล IPv6 ไว้ภายในแพ็กเก็ต UDP (User Datagram Protocol) ของ IPv4 วิธีนี้ช่วยให้ข้อมูล IPv6 สามารถเดินทางผ่านเครือข่าย IPv4 และอุปกรณ์ NAT ได้อย่างราบรื่น
กระบวนการส่งข้อมูลมีขั้นตอนดังนี้:
- การห่อหุ้ม: ข้อมูล IPv6 จะถูกบรรจุลงใน UDP/IPv4 เพื่อให้สามารถส่งผ่านโครงสร้างพื้นฐาน IPv4 ได้
- การส่งต่อ: แพ็กเก็ตจะถูกส่งไปยังโหนด Teredo อื่นๆ หรือ Teredo Relay
- การถอดรหัส: Teredo Relay จะรับแพ็กเก็ตดังกล่าว จากนั้นจะถอดการห่อหุ้ม (Un-encapsulate) และส่งข้อมูลต่อไปยังปลายทางในเครือข่าย IPv6 แบบ Native
วัตถุประสงค์และความจำเป็น
ในอดีต โปรโตคอลอย่าง 6to4 กำหนดให้จุดปลายทางของอุโมงค์ (Tunnel Endpoint) ต้องมีที่อยู่ IPv4 สาธารณะ (Public IPv4 Address) แต่เนื่องจากปัญหาการขาดแคลนที่อยู่ IPv4 ทำให้ผู้ใช้งานส่วนใหญ่ต้องเชื่อมต่อผ่านอุปกรณ์ NAT ซึ่งทำให้โฮสต์ภายในเครือข่ายไม่มีที่อยู่สาธารณะเป็นของตนเอง
Teredo จึงถูกออกแบบมาเพื่อแก้ปัญหานี้ โดยการใช้ UDP ซึ่งอุปกรณ์ NAT ส่วนใหญ่สามารถส่งต่อข้อมูลได้ ทำให้โฮสต์ที่รองรับ IPv6 ซึ่งอยู่หลัง NAT สามารถเชื่อมต่อกับโลกภายนอกได้โดยไม่ต้องอาศัยการตั้งค่าพิเศษที่ตัวเราเตอร์หรืออุปกรณ์เครือข่ายท้องถิ่น
โครงสร้างการกำหนดที่อยู่ IPv6 ของ Teredo
โฮสต์ที่ใช้ Teredo จะได้รับที่อยู่ IPv6 สาธารณะซึ่งมีโครงสร้างเฉพาะ ดังนี้:
| ส่วนของบิต | รายละเอียด |
|---|---|
| บิต 0-31 | Teredo Prefix (2001::/32) |
| บิต 32-63 | ที่อยู่ IPv4 ของ Teredo Server ที่ใช้งาน |
| บิต 64-79 | แฟล็ก (Flags) และบิตสุ่มเพื่อความปลอดภัย (ตาม RFC 5991) |
| บิต 80-95 | หมายเลขพอร์ต UDP ที่ถูกทำให้คลุมเครือ (Obfuscated UDP Port) |
| บิต 96-127 | ที่อยู่ IPv4 ของ NAT ที่ถูกทำให้คลุมเครือ (Obfuscated IPv4 Address) |
ประเภทของโหนดในระบบ Teredo
- Teredo Client: โฮสต์ที่ต้องการเชื่อมต่อ IPv6 ผ่านเครือข่าย IPv4
- Teredo Server: ทำหน้าที่ช่วย Client ในการตรวจหาประเภทของ NAT และรักษาการเชื่อมต่อ (Binding) เพื่อให้สามารถทำ NAT Hole Punching ได้
- Teredo Relay: ทำหน้าที่เป็นสะพานเชื่อมระหว่างเครือข่าย Teredo และเครือข่าย IPv6 แบบ Native โดยการถอดการห่อหุ้มแพ็กเก็ต
สถานะปัจจุบันและการเลิกใช้งาน
Teredo ถูกออกแบบมาให้เป็นมาตรการชั่วคราวเท่านั้น เมื่อการเชื่อมต่อ IPv6 แบบ Native แพร่หลายและเสถียร โฮสต์ควรเปลี่ยนไปใช้การเชื่อมต่อแบบดั้งเดิมและปิดการใช้งาน Teredo เพื่อประสิทธิภาพและความปลอดภัยที่ดีกว่า ทั้งนี้ IETF ได้กำหนดมาตรฐานของ Teredo ไว้ใน RFC 4380
คำถามที่พบบ่อย
Teredo Tunneling แตกต่างจาก 6to4 อย่างไร?
ความแตกต่างหลักคือ Teredo สามารถทำงานผ่านอุปกรณ์ NAT ได้ ในขณะที่ 6to4 กำหนดให้จุดปลายทางของอุโมงค์ต้องมีที่อยู่ IPv4 สาธารณะ
Teredo Server ทำหน้าที่อะไร?
Teredo Server ช่วยให้ Client ตรวจสอบประเภทของ NAT ที่ใช้งานอยู่ และช่วยรักษาการเชื่อมต่อเพื่อให้สามารถทำ NAT Hole Punching เพื่อรับข้อมูลจากภายนอกได้
ทำไม Teredo ถึงถูกมองว่าเป็นมาตรการชั่วคราว?
เพราะการทำ Tunneling เพิ่มความซับซ้อนและลดประสิทธิภาพในการส่งข้อมูล เมื่อเครือข่ายรองรับ IPv6 แบบ Native การเชื่อมต่อโดยตรงจะมีความเสถียรและรวดเร็วกว่า
Teredo ใช้พอร์ต UDP หมายเลขใด?
Teredo Server จะรอรับการเชื่อมต่อที่พอร์ต UDP 3544

