10 สิ่งที่ควรรู้เกียวกับ IPv6

อย่างที่เรารู้กันว่า IPv4 ที่เราใช้ๆ กันอยู่ทุกวันนี้มันจะหมดลงไปในเวลาอีกไม่ช้า และสิ่งที่จะมาแทนในอนาคตอันใกล้นี้ก็คือ IPv6 ดังนั้นเมื่อเจอบทความดีๆ อย่าง “10 things you should know about IPv6 addressing” ในเว็บ TechRepublic.com ผมเลยอดไม่ได้ที่จะต้องขอจดไว้ที่นี่กันลืมและถือโอกาสแบ่งปันไปด้วยในตัว

1. IPv6 address เป็นตัวเลขฐานสิบหก ความยาว 128 บิต

ใน IPv4 address ประกอบด้วยตัวเลขสี่ชุด ในแต่ละชุดจะเป็นตัวเลขตั้งแต่ 0-255 ดังนั้นแต่ละชุดจึงมีความยาว 8 บิต (2^8 = 256) รวมกันก็ 32 บิต แต่ใน IPv6 address จะประกอบด้วยตัวเลขแปดชุด ในแต่ละชุดจะเป็นตัวเลขฐานสิบหกตั้งแต่ 0000-FFFF ดังนั้นแต่ละชุดจึงมีความยาว 16 บิต รวมกันก็เป็น 128 บิต

ใน IPv4 ตัวเลขแต่ละชุดจะคั่นด้วยเครื่องหมายจุด “.” ส่วนใน IPv6 จะคั่นด้วยเครื่องหมายโคลอน “:”

2. ใน IPv6 เราสามารถระบุชนิดของ address ได้ง่ายขึ้น

ใน IPv6 ส่วนหัวของ address จะถูกจองไว้สำหรับระบุชนิดของ address เช่น unicast address จะขึ้นต้นด้วย FE80, หรือ multicast addresss จะขึ้นต้นด้วย FF01 ถึง FF08

3. เลขศูนย์ข้างหน้าตัวเลขแต่ละชุดสามารถละไว้ได้

เนื่องจากว่า IPv6 address เขียนเต็มๆ นั้นมันยาวมาก IPv4 มีตัวเลขอย่างมากก็แค่ 12 ตัว แต่ IPv6 จะต้องเขียนถึง 32 ตัว ดังนั้นเพื่อให้ง่ายขึ้นมาหน่อย เลขศูนย์ข้างหน้าของตัวเลขแต่ละชุดนั้นสามารถละไว้ได้ในฐานที่เข้าใจกัน เช่น

FE80:CD00:0000:0CDE:1257:0000:211E:729C

สามารถเขียนเป็น

FE80:CD00:0:CDE:1257:0:211E:729C

4. ชุดที่เป็นเลขศูนย์ทั้งสี่ตัวสามารถเขียนรวบได้

ถึงแม้ว่าจะละเลขศูนย์ข้างหน้าแล้ว บางที IPv6 address ที่มีเลขศูนย์เยอะๆ ก็ยังย่อได้อีก เช่น

FE80:CD00:0000:0000:0000:0000:211E:729C

สามารถเขียนเป็น

FE80:CD00::211E:729C

ตรงนี้มีข้อแม้ว่า ตัวเลขที่รวบแบบนี้ต้องเป็นเลขศูนย์ล้วนเท่านั้น และแต่ละ address จะมีเครื่องหมาย double colon “::” ได้แค่อันเดียวเท่านั้น เช่น จะเขียนเป็น FE80:CD00::CDE::211E:729C แบบนี้ไม่ได้แม้ว่าจะมี 0000 หลายที่ก็ตาม

5. Loopback IP ของ IPv6 จะดูแปลกตามากๆ

ใน IPv4 เรากำหนดให้  127.0.0.1 เป็น Loopback IP

แต่ใน IPv6 เรากำหนดให้ Loopback IP คือ

0000:0000:0000:0000:0000:0000:0000:0001

ซึ่งเมื่อเขียนย่อก็จะกลายเป็น

::1

โอ้ว! พระเจ้าจอร์จมันยอดมาก

6. IPv6 ไม่จำเป็นต้องมี subnet mask

ใน IPv6 address จะต้องมี subnet mask ควบคู่กันไปด้วย แต่ใน IPv6 นั้นไม่จำเป็นต้องมี เพราะ subnet ID นั้นฝังอยู่ใน address แล้ว โดย IPv6 address 48 บิตแรกจะเป็น network prefix, อีก 16 บิตถัดมาจะเป็น subnet ID, ส่วนอีก 64 บิตที่เหลือก็จะคือ Interface ID หรือ Device ID นั่นเอง

7. DNS ยังคงใช้กับ IPv6 ได้

ใน IPv4 จะใช้ Host (A) records ในการระบุ address ให้ตรงกับ host name ส่วนใน IPv6 จะใช้ AAAA resource records หรือ Quad A records

8. IPv6 packets สามารถ tunnel ผ่านเครือข่าย IPv4 ได้

จริงๆ แล้ว IPv6 กับ IPv4 ไม่สามารถใช้ร่วมกันได้นะครับ แต่มีโปรแกรมเช่น Teredo หรือ 6to4 ที่สามารถจับ IPv6 packets แล้วมาแปรรูปใส่ห่อใหม่เป็น IPv4 packets ได้ ข้อแม้คือทั้งเครื่องต้นทางและปลายทางต้องลงโปรแกรมนี้ถึงจะสามารถรับส่งข้อมูลกันรู้เรื่อง

9. เราอาจจะใช้ IPv6 กันอยู่แล้วโดยไม่รู้ตัว

เนื่องจากตั้งแต่ Windows 2000 เป็นต้นมา Microsoft ได้จับ IPv6 ใส่เข้ามาอยู่แล้ว Mac OS ก็ยัด IPv6 มาตั้งแต่ Mac OS X 10.3 Panther ส่วน Linux นี่เริ่มมีมาตั้งแต่ Linux 2.1.8 kernel เลย ดังนั้นบางทีเครื่องของเราอาจจะ broadcast IPv6 อยู่แล้วโดยที่เราไม่รู้ตัว แต่อย่างไรก็ดี อุปกรณ์เครือข่าย เช่น สวิตช์ หรือ เราเตอร์ ที่รองรับ IPv6 ก็ยังไม่แพร่หลายมากนัก

10. Windows Shell Prompt ไม่รองรับ IPv6

ข้อนี้อาจจะฟังดูขัดกับข้อก่อนหน้าเล็กน้อย แต่เนื่องจากว่าเครื่องหมายที่คั่นอยู่ระหว่างตัวเลขใน IPv6 เป็นเครื่องหมาย colon “:” ซึ่งดันไปตรงกับเครื่องหมายที่ Windows ใช้ระบุตำแหน่ง drive พอดี เช่น C:, D:, E: เป็นต้น ดังนั้นเวลากรอก IPv6 address ลงไป Windows จะงงๆ ไม่เข้าใจว่ามันคืออะไร

ดังนั้น Microsoft เลยหาทางออกชั่วคราวโดยการกำหนดโดเมนเฉพาะของ IPv6 ใน Shell Prompt ของ Windows เป็น .ipv6.literal.net และให้คั่นระหว่างตัวเลขด้วยเครื่องหมาย dash “-” เช่น FE80-AB00-200D-617B.ipv6.literal.net

พวก *nix OS ไม่มีระบบการแบ่ง Drive C:, D: งี่เง่าอะไรแบบนี้เลยไม่ต้องเจอปัญหากับเครื่องหมาย colon “:”

ที่มา http://blogs.techrepublic.com.com/10things/?p=1893