อุปกรณ์ทุกชิ้นที่เชื่อมต่ออินเทอร์เน็ตจำเป็นต้องมี IP address เช่นเดียวกับที่อยู่บ้านที่ระบุความแตกต่างของบ้านคุณจากบ้านอื่นบนถนนเดียวกัน IP address คือที่อยู่เฉพาะที่ระบุความแตกต่างของอุปกรณ์คุณจากอุปกรณ์อื่นที่เชื่อมต่ออยู่บนเครือข่ายเดียวกัน
อย่างไรก็ตาม IPv4 ซึ่งเป็นเวอร์ชันปัจจุบันของ IP address ที่ใช้กันทั่วโลก กำลังจะหมด IP address ที่ไม่ซ้ำกัน หนึ่งในวิธีแก้ปัญหานี้คือการนำ CIDR หรือ Classless Inter-Domain Routing มาใช้งาน
เพื่อบริหารจัดการเครือข่ายได้อย่างมีประสิทธิภาพ ผู้ดูแลระบบเครือข่ายจำเป็นต้องมีข้อมูลอ้างอิงเพื่อดูจำนวน host, subnet mask และช่วง IP address ที่ใช้งานได้สำหรับ CIDR block ที่กำหนด
ดังนั้นในบทความนี้ ผมจึงรวบรวม CIDR cheatsheet ไว้ให้ พร้อมอธิบายว่า CIDR คืออะไร รายละเอียดของ IPv4 CIDR และ IPv6 CIDR รวมถึง CIDR notation range คืออะไร
CIDR คืออะไร?
CIDR หรือ Classless Inter-Domain Routing คือระบบจัดสรร IP address ที่พัฒนาขึ้นในปี 1993 เพื่อแก้ไขข้อบกพร่องของระบบเดิม ก่อนที่จะมี CIDR อินเทอร์เน็ตใช้ระบบการจัดสรร IP แบบ class-based
โดยพื้นฐานแล้ว IP address แบ่งออกเป็นสามคลาส โดยแต่ละคลาสรองรับจำนวน IP address ที่แตกต่างกัน ดังนี้:
- ชั้น A: ใช้สำหรับองค์กรและเครือข่ายขนาดใหญ่มาก รองรับ IP address ได้สูงสุดกว่า 16 ล้านรายการต่อเครือข่าย
- หมวดหมู่ B: ใช้สำหรับเครือข่ายขนาดกลาง รองรับ IP address ที่ไม่ซ้ำกันได้สูงสุด 65,534 รายการ
- ชั้น C: ใช้สำหรับเครือข่ายขนาดเล็ก รองรับ IP address ที่ไม่ซ้ำกันได้เพียง 254 รายการ
แม้ระบบนี้จะใช้งานได้ในช่วงเวลานั้น แต่ก็มีประสิทธิภาพต่ำมาก เนื่องจากช่องว่างระหว่างจำนวน IP address ในแต่ละคลาสนั้นกว้างเกินไป ส่งผลให้เกิดปัญหาในหลายกรณี เช่น องค์กรที่ต้องการ IP address เพียง 300 รายการ ไม่สามารถใช้บล็อก Class C ได้ เพราะมีเพียง 254 รายการ ทำให้ IP registry ต้องจัดสรรบล็อก Class B แทน
นั่นหมายความว่าองค์กรที่ต้องการ IP address แค่ 300 รายการ กลับได้รับการจัดสรรถึง 65,534 รายการ อย่างที่กล่าวไว้ก่อนหน้านี้ ระบบนี้ยังทำงานได้ในยุคนั้น เพราะจำนวน IPv4 address ทั้งหมด (ประมาณ 4.3 พันล้านรายการ) มีมากกว่าจำนวนที่จะถูกใช้งานจริงอยู่มาก ตัวอย่างเช่น ในปี 1993 ประชากรโลกมีเพียงประมาณ 5.6 พันล้านคน และมีผู้เชื่อมต่ออินเทอร์เน็ตเพียง 15 ล้านคนเท่านั้น
อย่างไรก็ตาม เมื่อเวลาผ่านไปและมีผู้ใช้งานเชื่อมต่ออินเทอร์เน็ตมากขึ้นเรื่อยๆ IPv4 address เริ่มขาดแคลน จึงนำไปสู่การพัฒนา CIDR ซึ่ง CIDR ได้ยกเลิกโครงสร้างคลาสที่ตายตัวออกไปทั้งหมด และนำ Variable-Length Subnet Masking หรือ VLSM มาใช้แทน
ระบบนี้ให้ผู้ดูแลเครือข่ายจัดสรร IP address ได้ตามจำนวนที่ต้องการจริงๆ แทนที่จะต้องเลือกระหว่าง 254, กว่า 65,000 หรือกว่า 16 ล้านรายการ แต่ CIDR ทำงานอย่างไร? IPv4 CIDR แตกต่างจาก IPv6 CIDR อย่างไร? และใช้ CIDR cheatsheet เพื่อกำหนดค่าเครือข่ายได้อย่างไร?
ช่วง CIDR Notation
CIDR Notation ช่วยให้ผู้ดูแลเครือข่ายเข้าใจได้ว่าอุปกรณ์กี่เครื่องสามารถเชื่อมต่อกับเครือข่ายได้ และ IP address ถูกจัดระเบียบอย่างไร แต่ก่อนจะอ่านค่า CIDR notation ขอพูดถึงความหมายของแต่ละตัวเลขใน IP address ก่อน
ใน IPv4 แต่ละ address ประกอบด้วย 32 บิต นั่นหมายความว่ามีตัวแปร 32 ตัวที่เป็นได้ทั้ง 0 และ 1 ส่งผลให้มี IP address ที่ไม่ซ้ำกันถึง 2^32 รายการ (ประมาณ 4.3 พันล้านรายการ) ตัวอย่างเช่น CIDR notation range สำหรับ IPv4 CIDR มีดังนี้: 192.168.1.0/24
/24 ที่ต่อท้าย address นั้นหมายความว่า 24 บิตแรกถูกสงวนไว้สำหรับเครือข่าย และอีก 8 บิตที่เหลือใช้สำหรับ host โดย 24 บิตแรกแทนเครือข่ายของคุณ ส่วน 8 บิตที่เหลือเป็นตัวแปรที่ใช้สำหรับอุปกรณ์ต่างๆ ซึ่งแปลงเป็น 2^8 หรือ 256 IP address ทั้งหมด ในจำนวนนั้น 2 รายการถูกสงวนไว้สำหรับ network และ broadcast เหลือ IP address ที่ใช้งานได้จริง 254 รายการสำหรับอุปกรณ์ที่จะเชื่อมต่อกับเครือข่ายนี้
พูดง่ายๆ คือ 2^24 บิตแรกแทนส่วนประกอบของที่อยู่บ้านคุณ ตั้งแต่ประเทศ รัฐ เมือง ไปจนถึงชื่อถนน ส่วน 8 บิตที่เหลือก็เปรียบเหมือนเลขบ้านของแต่ละหลังบนถนนนั้น
CIDR notation range สำหรับ IPv4 มีค่าตั้งแต่ /0 ถึง /32 โดย /0 มักใช้กับ firewall และ internet gateway ส่วน /32 ใช้สำหรับระบุ IP address เดียวและการกำหนดค่า VPN ค่าระหว่างนั้นสามารถใช้ได้กับหลายวัตถุประสงค์และหลายขนาดเครือข่าย ตั้งแต่เครือข่ายในบ้านไปจนถึงองค์กรขนาดใหญ่
ดูรายละเอียดจำนวน host IP และ network IP ที่ใช้งานได้ในแต่ละ IPv4 CIDR ได้จาก CIDR cheatsheet ท้ายบทความนี้
ใน IPv6 แต่ละ address ประกอบด้วย 128 บิต หมายความว่ามี IP address ถึง 2^128 หรือ 340 undecillion รายการ (34 ตามด้วยเลขศูนย์ 37 ตัว) แม้จะมีจำนวน IP address มหาศาลขนาดนี้ CIDR ก็ยังคงถูกใช้เพื่อจัดสรร IP อย่างมีประสิทธิภาพ
ตัวอย่าง CIDR notation range สำหรับ IPv6 CIDR มีดังนี้: 2001:db8::/64
เช่นเดียวกับ IPv4 CIDR ค่า /64 หมายความว่า 64 บิตแรกใช้สำหรับเครือข่าย ส่วนอีก 64 บิตที่เหลือใช้สำหรับ host address ดังนั้นจึงมี IP address ที่ไม่ซ้ำกันสำหรับ host (อุปกรณ์) ถึง 2^64 หรือประมาณ 18 quintillion รายการ (18 ตามด้วยเลขศูนย์ 18 ตัว)
ต่างจาก IPv4 ตรงที่ IPv6 ใช้ multicast แทน broadcast ดังนั้นแทนที่จะมี 2 รายการที่ไม่สามารถใช้กับอุปกรณ์ได้เหมือนใน IPv4 ใน IPv6 มีเพียงรายการเดียวที่ใช้งานไม่ได้กับ host คือ network address
ดูรายละเอียดจำนวน host IP และ network IP ที่ใช้งานได้ในแต่ละ IPv6 CIDR ได้จาก CIDR cheatsheet ท้ายบทความนี้
IPv6 คืออนาคตของอินเทอร์เน็ต และถ้าคุณต้องการก้าวนำหน้า Cloudzy มีแพ็กเกจ IPv6 VPS ในราคาที่คุ้มค่าที่สุด พร้อม /64 subnet ฟรี นั่นหมายถึง IP address pool ถึง 18,446,744,073,709,551,616 รายการที่เป็นของคุณโดยเฉพาะ!
หากกังวลเรื่องความเข้ากันได้ คุณสามารถเพิ่ม IPv4 เพื่อทำให้ IPv6 VPS ของคุณเป็น dual-stack ได้ในราคาเพียงหนึ่งดอลลาร์ต่อเดือน ดูรายละเอียดเพิ่มเติมได้ที่ แผนVPS IPv6ของCloudzy ราคาที่นี่!
Subnetting ใน CIDR
หนึ่งในประโยชน์หลักของ IPv4 CIDR และ IPv6 CIDR คือความสามารถในการแบ่ง subnet และแยก CIDR block ออกเป็นส่วนย่อยๆ ช่วยให้ผู้ดูแลเครือข่ายสามารถแยกและจัดการแต่ละส่วนของ CIDR block ได้อย่างอิสระ
หากต้องการจัดสรรบิตสำหรับส่วน network และ host มากขึ้นหรือน้อยลง เพียงปรับค่า prefix length เท่านั้น ต่อไปนี้คือตัวอย่างการแบ่ง subnet ของ IPv4 CIDR:
address 192.168.1.0/24 สามารถแบ่งออกเป็น 2 subnet ย่อยได้:
- 192.168.1.0/25: subnet ที่รองรับ IP address ได้ 128 รายการ
- 192.168.1.128/25: ซับเน็ตที่สองที่มี 128 แอดเดรส
ด้วยการตั้งค่านี้ คุณสามารถแบ่งเครือข่าย 256 แอดเดรสออกเป็นสองเครือข่ายขนาด 128 แอดเดรส ซึ่งช่วยเพิ่มความปลอดภัย ประสิทธิภาพ และความง่ายในการจัดการ วิธีนี้ทำให้ระบบที่มีความละเอียดอ่อน เช่น ฝ่ายการเงิน สามารถอยู่บนซับเน็ตแยกต่างหาก และจำกัดการเข้าถึงเฉพาะพนักงานหรืออุปกรณ์ที่ได้รับอนุญาตเท่านั้น
การแยกทราฟฟิกด้วยวิธีนี้ช่วยลดความแออัดและทำให้ข้อมูลไหลเวียนภายในแต่ละซับเน็ตได้อย่างมีประสิทธิภาพมากขึ้น นอกจากนี้ การทำซับเน็ตยังช่วยให้จัดการเครือข่ายได้ง่ายขึ้น เพราะสามารถตรวจสอบและบำรุงรักษาแต่ละซับเน็ตได้อย่างอิสระโดยไม่กระทบกับเครือข่ายโดยรวม
การทำซับเน็ตบน IPv6 CIDR มีความสำคัญเป็นพิเศษ เนื่องจากการตั้งค่า /64 CIDR ทั่วไปมี IP แอดเดรสให้ใช้งานจำนวนมาก สมมติว่าคุณมีเครือข่าย IPv6 แบบ /64 ทั่วไป เช่น 2001:db8:abcd:1000::/64 ถ้าเราขอยืม 4 บิตจากส่วน network เราสามารถแบ่งเครือข่ายออกเป็น 16 ซับเน็ต ซึ่งส่งผลให้เกิดการเปลี่ยนแปลงดังนี้:
- ซับเน็ตเดิม: 2001:db8:abcd:1000::/64
- ซับเน็ตใหม่: /68
- จำนวนของ subnet: 2^(บิตที่ยืมมาจากเครือข่าย) = 2^4 = 16 เครือข่ายย่อย
- ซับเน็ตแรก: 2001:db8:abcd:1000:0000::/68
- ซับเน็ตที่สอง: 2001:db8:abcd:1000:1000::/68
- ซับเน็ตที่สาม 2001:db8:abcd:1000:2000::/68
- … จนถึง 2001:db8:abcd:1000:f000::/68
- 2001:db8:abcd:1000: 64 บิตแรกกำหนด global routing prefix
- 0000 – f000: 4 บิตถัดไปใช้สำหรับการทำซับเน็ต
- โฮสต์พอร์ชัน: 60 บิตที่เหลือใช้สำหรับแอดเดรสของโฮสต์ (ส่วน "::" ที่เหลือแสดงถึงบล็อก 16 บิตสามบล็อก)
แต่ละซับเน็ต /68 มีแอดเดรสโฮสต์ที่เป็นไปได้ถึง 2^60 = 1.15 quintillion แอดเดรส
หากคุณยังไม่แน่ใจว่าต้องการแบ่งเครือข่ายอย่างไร ฉันได้เตรียม CIDR subnetting cheat sheet ไว้ให้ที่ส่วนท้ายของบทความนี้
CIDR ชีทแชร์
การคำนวณจำนวน IP แอดเดรสที่ใช้ได้ใน IPv4 CIDR และ IPv6 CIDR อาจค่อนข้างยุ่งยากหากทำด้วยตนเองโดยไม่มี CIDR cheatsheet โดยเฉพาะกับ IPv6 ที่มี IP แอดเดรสนับพันล้านหรือแม้แต่มากกว่านั้น
หากคุณสนใจวิธีคำนวณช่วง CIDR notation นี่คือสูตรสำหรับ IPv4 CIDR และ IPv6 CIDR:
สำหรับ IPv4:
- Number of addresses= 2^(32-prefix length)
- ตัวอย่างเช่น CIDR block แบบ /24 มี: 2^(32-24)= 2^8= 256 ที่อยู่ IP
สำหรับ IPv6:
- จำนวนที่อยู่ = 2^(128-ความยาวของคำนำหน้า)
- ตัวอย่างเช่น CIDR block แบบ /64 มี: 2^(128-64)= 2^64= ประมาณ 18 quintillion (เลข 18 ตามด้วยศูนย์ 18 ตัว) IP แอดเดรส
อย่างที่เห็น ตัวเลขเหล่านี้อาจซับซ้อนมากหากไม่มี CIDR cheatsheet ดังนั้นเพื่อหลีกเลี่ยงความยุ่งยากในการคำนวณ ที่นี่'s a complete CIDR cheatsheet that not only covers CIDR but everything you need to know about IPv4, IPv6, and subnetting.
สรุป
หากไม่มี CIDR เราคงหมด IPv4 แอดเดรสไปตั้งแต่หลายทศวรรษก่อน และยังต้องเผชิญปัญหาการจัดสรร IP ใน IPv6 ด้วยเช่นกัน หวังว่า CIDR cheat sheet ของเราจะช่วยให้คุณตั้งค่าเครือข่ายได้อย่างครบถ้วนโดยไม่มีสะดุด
คำถามที่พบบ่อย
CIDR คืออะไร?
CIDR หรือ Classless Inter-Domain Routing คือระบบจัดสรร IP แอดเดรสที่พัฒนาขึ้นในปี 1993 เพื่อแก้ไขข้อบกพร่องของระบบเดิม CIDR ยกเลิกโครงสร้างคลาสที่ตายตัวและนำ variable-length subnet masking หรือ VLSM มาใช้แทน ระบบนี้ช่วยให้ผู้ดูแลเครือข่ายจัดสรร IP แอดเดรสได้ตามจำนวนที่ต้องการจริง แทนที่จะต้องเลือกระหว่าง 254, กว่า 65,000, หรือกว่า 16 ล้านแอดเดรสเท่านั้น
CIDR notation range คืออะไร?
CIDR notation ใช้แทน IP แอดเดรสพร้อม network prefix ที่เกี่ยวข้อง ซึ่งมีหน้าตาประมาณนี้: 192.168.1.0/24 โดย IP แอดเดรส (192.168.1.0) ตามด้วยเครื่องหมายทับ ("/") และตัวเลข (24) ที่บอกว่ากี่บิตของ IP แอดเดรสถูกสงวนไว้สำหรับ network prefix บิตที่เหลือใช้ระบุอุปกรณ์แต่ละเครื่อง (โฮสต์) ในเครือข่าย
มี CIDR cheat sheet สำหรับ CIDR ไหม?
ใช่เลย! การคำนวณจำนวน IP แอดเดรสที่ใช้ได้สำหรับ IPv4 CIDR และโดยเฉพาะ IPv6 CIDR นั้นค่อนข้างยุ่งยาก นั่นจึงเป็นเหตุผลที่ฉันรวบรวม CIDR cheat sheet ฉบับสมบูรณ์ที่ครอบคลุมทุกอย่างตั้งแต่ CIDR และการทำซับเน็ต ไปจนถึงคำสั่ง IPv4 และ IPv6 ไว้ที่นี่