ในขณะที่ IPv6 กำลังเข้ามาเราน่าจะเรียนรู้เรื่องเล็กๆ น้อยๆ ของ IPv6 กันเสียหน่อย ไม่อย่างนั้นอาจจะมีคนทำเสื้อมาล้อเลียนเราได้ว่า "I hacked ::1"
เริ่มต้นด้วยการเขียนแอดเดรส IPv6 แบบเต็มๆ นั้นเราแบ่งเลข IPv6 ซึ่งมี 128 บิตออกเป็น 8 ชุด ชุดละ 16 บิต แล้วเขียนแต่ละชุดในรูปของเลขฐาน 16 คั่นแต่ละชุดจากกันด้วยเครื่องหมายโคลอน เช่น
0010000000000001 0000110110111000 0000000000000010 0000000000000011 0000000000000100 0000000000000101 0000000000000110 0000000000000111
เราจะเขียนได้เป็น
2001:db8:2:3:4:5:6:7
แต่ถ้าเลขฐาน 16 ที่มีค่าเป็น 0 อยู่ติดกันหลายชุดเราจะสามารถเขียนย่อด้วยโคลอนคู่ติดกันได้ เช่น
0010000000000001 0000110110111000 0000000000000010 0000000000000000 0000000000000000 0000000000000000 0000000000000110 0000000000000111
จะเขียนเป็น
2001:db8:2::6:7
เนื่องจากการเขียนนั้นทำได้หลายรูปแบบทำให้สับสนยุ่งยาก จึงได้มี RFC5952: A Recommendation for IPv6 Address Text Representation ที่เป็นการแนะนำการเขียนแอดเดรสของ IPv6 เอาไว้ดังนี้ (RFC ที่ยกมาแต่ละตัวตอนนี้มีสถานะต่างๆ กัน ไม่มีตัวไหนเป็น "มาตรฐาน" นะครับ ยังเปลี่ยนไปเปลี่ยนมาตลอด มองว่าเป็นคำแนะนำสำหรับเวลานี้ก็แล้วกัน)
ที่ผ่านมานั้นเป็นการเขียนแอดเดรส IPv6 ธรรมดา ในกรณีของแอดเดรส IPv6 พิเศษเช่น
ไอพีเหล่านี้มีความพิเศษตรงที่ได้ฝังเอาหมายเลข IPv4 เอาไว้ในส่วนนัยสำคัญต่ำ (ขวามือสุด) ของ IPv6 ซึ่งสามารถที่จะเขียนในรูปแบบพิเศษที่ผสมกันระหว่างเลขฐาน 16 ที่คั่นด้วยโคลอนกับเลขฐานสิบที่คั่นด้วยจุด โดยมีข้อกำหนดว่าแนะนำให้เขียนในรูปแบบพิเศษนี้เมื่อสามารถแบ่งแยกชี้ชัดได้ว่าไอพีนี้มี IPv4 แอดเดรสฝังอยู่โดยดูจาก "พรีฟิก (prefix: ส่วนต้นทางซ้ายมือของแอดเดรส)" ที่รู้กันดีเท่านั้น เช่นพรีฟิกที่กำหนดใน RFC4291 และ RFC2765 แต่ถ้ามีวิธีการอื่นที่ทำให้รู้ได้ว่าพรีฟิกนั้นมี IPv4 ฝังอยู่ก็อาจจะเขียนแบบผสมด้วยก็ได้
ตัวอย่าง IPv6 ที่เขียนในรูปแบบนี้เช่น ::ffff:10.0.0.1 (เป็น IPv4-Mapped IPv6 address)
ส่วนในการเขียน IPv6 ร่วมกับหมายเลขพอร์ทนั้นสามารถทำได้หลายวิธีเช่นเดียวกับ IPv4 เช่น
ตอนนี้เราพอจะรู้แล้วว่ารูปแบบการเขียน IPv6 นั้นเป็นอย่างไร แล้วมี "แอดเดรส/พรีฟิก" อะไรที่เราควรรู้ไว้บ้าง?
และอันสุดท้าย
รู้แบบนี้แล้วก็อย่าไปบอกใครเขาล่ะว่าได้ "hacked ::1" มา
ที่มา
Comments
อารมณ์เดียวกับเรื่องเล่าบน e-mail ที่เขาท้าให้แฮกแล้วบอก ip ให้เขาเป็น 127.0.0.1 สินะ..
ปล.จนถึงทุกวันนี้ก็ยังจำหมายเลขหน้าของ Unicast,Multicast,Anycast อะไรยังไม่ได้
จำได้แต่ ::1 เนี่ยหล่ะ.. = ="
(ไม่ได้ใช้งานมันก็ไม่จำซักที..)
ภาคต่อจาก 127.0.0.1 รึเปล่าครับ ฮ่าๆๆ
เป็นภาคต่อของ ipv4 เป็น ipv6 555
บทความดีมากครับ น่าจะตอบคำถามในใจตอนนี้ของคนอ่านได้เยอะทีเดียว
สาธุ...ขอให้ RFC5952 มันผ่าน ได้เป็นมาตรฐานทีเถอะ
เพราะปวดกบาลกับไอ 0 หลายๆชุดติดกันเหลือเกิน
ขอถามหน่อยครับ /8 /16 /32 ... นี่มันแปลว่าอะไรครับ
จำนวน bit ของ Subnet Mask ครับ
ยกตัวอย่าง ipv4
x.x.x.x = 32 bit
(ช่องละ 8 bit = 256 host)
ดังนั้น /8 จะเท่ากับ subnet mask = 255.0.0.0
(0 กับ 256 จะไม่นับเพราะเป็น zubnet zero)
/16 = 255.255.0.0
และ /32 = 255.255.255.255 นั่นเอง
ปล.ส่วน ipv6 มี 128 bit ครับผม
ขอโทษนะครับ แต่ 256 มันไม่น่าจะได้อยู่แล้วนิครับ
8 bit : 2^8 = 256 ซึ่งเป็น 0 ถึง 255
256เกินไม่ใช่หรอครับ หรือผมเข้าใจอะไรผิด
0-255 มี 256 ตัวครับ
นั่นคือ ไม่มีการใช้ .256 นะแหล่ะ
อ่อ ขออภัยครับพอดีเขียนผิด
subnet zero เป็น 0-255 ซึ่งเราไม่ได้ใช่ครับผม
แต่จำนวน host รวมทั้งหมด ยังคงเป็น 256 ครับ รวม 0 ด้วย ^^
เลข CIDR ครับ อ่านเองได้ที่ https://secure.wikimedia.org/wikipedia/en/wiki/Classless_Inter-Domain_Routing
^
^
that's just my two cents.
ขอบคุณทุกคำตอบครับ ไม่เคยเห็นการเขียนแบบนี้ สรุปว่าเป็นจำนวน bit ของ subnet mask นี่เอง
network ไม่มีสอนเหรอครับ
onedd.net
เรื่อง subnet mask น่ะจำได้ แต่จำไม่ได้ว่ามีวิธีบอกแบบนี้ด้วย
netstat -an ใน win7 มันขึ้นแบบนี้
UDP [fe80::595e:10f3:5614:3299%12]:1900 ดอกจัน:ดอกจัน
UDP [fe80::595e:10f3:5614:3299%12]:59583 ดอกจัน:ดอกจัน
%12 นี่คืออะไรอะครับ ?
interface index ครับ
(link-local address ต้องระบุว่าใช้ interface ไหน)
ไม่ได้เรียนและทำงานด้านนี้โดยตรง อ่านแล้วมึน เหอๆๆ
ยังไงๆก็คงต้องเรียนรู้เบื้องต้นไว้มั่ง
คิดถึงตอนเวลา config ip ใส่ server ทีละ 200 ip ปวดตับน่าดู
ขอบคุณสำหรับบทความครับ มีประโยชน์มากๆ
ไม่เข้าใจที่ว่า
รู้แบบนี้แล้วก็อย่าไปบอกใครเขาล่ะว่าได้ "hacked ::1" มา
หมายความว่ายังไงหรอครับ งง -*-
"I Hack 127.0.0.1" ลองหาใน google ดูครับ ::1 ใน IPv6 เหมื่อนกับ 127.0.0.1 ใน IPv4 ครับ คือ Loopback IP หรือ IP ของเครื่องตัวเองนั้นล่ะครับความหมายก็ลองตีความดูครับอธิบายไม่ถูกเหมือนกัน
อันนี้ฝากเจ้าของกระทู้หน่อยครับ "fe80::/10 Link Local Unicast ไว้สำหรับติดต่อกันภายใน link เดียวกัน (เทียบแล้วจะใกล้เคียงกับภายใน subnet เดียวกันใน)" คำว่า "ใน" คำสุดท้ายเกินมารึเปล่าครับ
เกินครับ ขอบคุณครับ
แนะนำว่าให้ไปหาอ่านนะครับ เพราะมัน ฮามากกกกกกก
(เคยอ่านเวอร์ชั่นภาษาไทยด้วย ลองหาดูไม่น่ายาก ^^)
:: DigiKin8 ::
ไปหาอ่านมาแล้ว ฮามาก 5555
มันคือเครื่องของคุณเองไงครับ จาไปแฮคเครื่องตัวเองทำไย ^ ^
Texion Business Solutions
จำข่าวไอซีทีโดนแฮคได้ไหมครับ "ICT ระบุ รู้หมายเลข IP คนแฮกเวปไซต์แล้ว ประสานงานให้ ISP นำข้อมูลผู้ใช้ IP หมายเลข 127.0.0.1 มาเพื่อเป็นข้อมูลประกาศจับต่อไป"
อันนี้เค้า(คนแถวนี้แหละ)แซวกันเล่นนะครับ ข่าวจริงๆ ไม่ใช่อย่างนี้
+1
ผมก็นึกว่าจริงซะอีก แต่ที่ผมอ่านมาไม่ใช่แถวนี้นะ รู้สึกจะพันทิพมั๊ง
IPv6 แจกได้ถึง..
340,282,366,920,938,463,463,374,607,431,768,211,456 หมายเลข (หามาจาก Internet)
โอ้ววว
เอาง่ายๆว่า ในทุกๆพื้นที่ 1 ตารางเมตรของโลก มีอุปกรณ์ที่ต้องใช้ IP ได้ 2000 ชิ้น
Search หา Google ว่าจะอยู่บน IPv6 ได้อีกกี่ปีนี่ยังไม่เจอเลยครับ คง predict ยาก
(ส่วนตัว) คงต้องเป็นยุคที่เราครอบครองระบบสุริยะจักรวาลนี้ได้แน่ๆเลย อิอิ
โอ้ว ตำรา Network ตอนเรียนมหาลัยต้องอัพเดตใหม่หมดเลยสินี่ ยากเหมือนกันแฮะ
แฟนพันธุ์แท้สตีฟจ็อบส์ | MacThai.com
ขอบคุณสำหรับข่าวนี้ แม้จะยังไม่เข้าใจลึกซึ้งแต่จะเก็บเอาไว้ศึกษาอีกทีหนึ่ง
จดๆๆ ขอบคุณสำหรับความรู้ครับ
คนที่จบมาแล้ว สมัยตอนเรียนไม่มีอย่างนี้แน่นอน
ปล. it ต้องเรียนกันตลอดชีวิต เทคโนโลยีมันเปลี่ยนแปลงกันตลอด
แค่อ่านคร่าว ๆ ก็มึนแล้วครับ
ขอผ่านไปก่อน รอไว้ได้ใช้จริงจัง ค่อยมานั่งทำความเข้าใจอีกที
อ่านไปซักพักเริ่มงงเพราะพื้นฐานไม่ค่อยแน่น จนกระทั่งบรรทัดท้ายๆถึงเข้าใจหัวข้อเรื่อง -0-
สงสัยอยู่ว่า การย่อ 0 ยาวๆ เป็น :: มันจะมีประโยชน์จริงรึเปล่า
ถ้าเป็น IP global มันก็ยากที่จะได้ 0 ติดกันยาวๆ
แต่นึกออกแค่กรณีเดียวคือ ตอนทำ NAT ถึงจะมี IP เป็น 0 ติดกันเยอะๆ
สงสัยมากๆ ไม่เข้าใจว่าทำไม ipv6 ต้องเขียนเป็นเลขฐาน 16 ทำไมไม่เขียนเป็นเลขฐาน 10 เหมือน ipv4
ผมคิดว่า
เพราะมันชุดละ 16 บิท เขียนเปน FFFF ง่ายกว่า 65535
แต่ผมสงสัยมากกว่า ว่าทำไมมันถึงใช้ : แทน .
ใช้ .. ก็ได้ถ้าต้องย่อ
แล้วมันก็ไปตีกับเลข port ที่ IPv4 ใช้ :
กลัวว่าบางครั้งย่อแล้วอาจจะเหลือแค่เลข 0-9 4 ชุด มันจะไปคล้ายกับ IPv4 มั้งครับ
มีวิธีเขียนแบบเลขฐานสิบ คือ
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16
ตัดทีละ 8 bit 16 ตัว ได้ 128bit เหมือนเดิมครับ แต่มัน... ยาวบัดซบ และย่อไม่ได้
น่าจะเป็น 0-15 รึป่าวครับ
แล้วก็ย่อตัวเลข 0 ที่ติดกันได้เหมือนกัน แต่ก็คงจะยาวกว่าใช้เลขฐาน 16 อยู่ดี
ที่ผมแทนเป็นตัวเลขเป็นเลขหลักครับ
จะให้เขียนแบบ
x.x.x.x.x.x.x.x.x.x.x. เกรง(ตัวเอง)จะงงว่ากดไปกี่ชุดแล้ว
ได้แต่หวังว่าคงจะไม่ต้องเกิดเหตุจำเป็นต้องมากรอก URL ด้วย IPv6 ...นรกนะก๊าบ
อ่านกี่ครั้งก็เห็นเป็น "ฉันเฉาะ" (-____-