ป้ายกำกับ: Networking Basics

Subnet Mask และ CIDR Notation (/24, /16): วิธีคำนวณและแบ่งวงเครือข่ายแบบเข้าใจง่ายSubnet Mask และ CIDR Notation (/24, /16): วิธีคำนวณและแบ่งวงเครือข่ายแบบเข้าใจง่าย

ในโลกของระบบเครือข่ายคอมพิวเตอร์ การจัดการที่อยู่ IP ที่มีจำนวนจำกัดให้สามารถรองรับอุปกรณ์นับพันเครื่องได้อย่างเป็นระเบียบและมีประสิทธิภาพถือเป็นหัวใจสำคัญของการออกแบบโครงสร้างพื้นฐานทางไอทีทั้งหมด หากไม่มีกลไกในการแบ่งแยกวงเครือข่ายอย่างเหมาะสม ก็จะเกิดปัญหาการชนกันของ IP Address (IP Conflict) และทำให้ทรัพยากรเครือข่ายไม่สามารถใช้งานได้อย่างเต็มศักยภาพ การทำความเข้าใจหลักการเหล่านี้จึงเป็นทักษะพื้นฐานที่วิศวกรเครือข่ายทุกคนต้องรู้

Subnet Mask และ CIDR คืออะไร? หลักการแบ่งส่วนเครือข่าย

หัวใจของการแบ่งวงเครือข่ายคือการทำความเข้าใจว่า IP Address แต่ละตัวประกอบด้วยส่วนใดบ้าง โดยหลักๆ จะแบ่งออกเป็นสองส่วนสำคัญ คือ Network ID (ระบุว่าเป็นของเครือข่ายไหน) และ Host ID (ระบุว่าเป็นอุปกรณ์เครื่องไหนในเครือข่ายนั้น) ภารกิจของ Subnet Mask และ CIDR Notation คือเครื่องมือที่ใช้ในการ ‘ตัด’ ส่วนเหล่านี้ออกจากกันอย่างแม่นยำ

CIDR (Classless Inter-Domain Routing) เป็นรูปแบบที่ง่ายที่สุดในการระบุขนาดของเครือข่าย โดยจะบอกจำนวนบิตที่ถูกสงวนไว้สำหรับ Network ID เช่น:

  • /24: หมายถึง 24 บิตแรกถูกสงวนไว้สำหรับ Network ID (ใช้บ่อยที่สุดสำหรับเครือข่ายย่อย)
  • /16: หมายถึง 16 บิตแรกถูกสงวนไว้สำหรับ Network ID (แสดงถึงเครือข่ายที่ใหญ่มาก)

การเลือกใช้ค่าที่เหมาะสมจึงสำคัญมาก เพราะการกำหนดค่าที่กว้างเกินไป (เช่น /16) อาจทำให้เกิดการสูญเสียช่วง IP Address จำนวนมหาศาลโดยไม่จำเป็น ซึ่งขัดต่อหลักการใช้ทรัพยากรอย่างมีประสิทธิภาพ

การประยุกต์ใช้ในฐานข้อมูล: การจัดการช่วง IP ด้วย PostgreSQL

แม้ว่า Subnet Mask และ CIDR จะเป็นแนวคิดทางเครือข่าย แต่ในทางปฏิบัติ ข้อมูลช่วง IP เหล่านี้มักถูกจัดเก็บและจัดการในระบบฐานข้อมูลอย่าง PostgreSQL เราสามารถใช้ SQL เพื่อจัดการและตรวจสอบความถูกต้องของช่วง IP ได้ ตัวอย่างนี้แสดงการสร้างตารางเพื่อเก็บข้อมูลช่วง IP และการใช้คำสั่งเพื่อจำลองการตรวจสอบความถูกต้องของ Network ID:

SQL

-- 1. สร้างตารางเพื่อเก็บข้อมูลช่วง IP Address และ Subnet Mask<br>CREATE TABLE ip_network_ranges (<code>
    network_id VARCHAR(15) PRIMARY KEY, <code>
    subnet_mask VARCHAR(15) NOT NULL, <code>
    cidr_notation INTEGER NOT NULL, <code>
    description TEXT <code>
);

-- 2. เพิ่มข้อมูลช่วงเครือข่ายที่กำหนด
INSERT INTO ip_network_ranges ( network_id, subnet_mask, cidr_notation, description ) VALUES ( '192.168.1.0', '255.255.255.0', 24, 'เครือข่ายย่อยสำหรับแผนก A' ), ( '10.0.0.0', '255.0.0.0', 16, 'เครือข่ายหลักองค์กร' );

-- 3. Query เพื่อดึงข้อมูลที่ต้องการขนาดเครือข่ายย่อย (ใช้ /24)
SELECT network_id, description FROM ip_network_ranges WHERE cidr_notation = 24;

บทสรุปและข้อควรจำสำหรับ Senior Architect

การเข้าใจความสัมพันธ์ระหว่าง Subnet Mask และ CIDR Notation ไม่ใช่แค่การท่องจำตัวเลข แต่คือการคิดอย่างเป็นระบบในการจัดสรรทรัพยากร IP อย่างมีประสิทธิภาพ การใช้ /24 เมื่อเหมาะสมจะช่วยให้เราได้วงเครือข่ายย่อยที่พอดีตัว (Optimal Subnetting) ลดการสูญเสีย IP Address และทำให้โครงสร้างพื้นฐานเครือข่ายมีความยืดหยุ่นสูง (Scalability) เสมอ

ในฐานะ System Architect การตรวจสอบความถูกต้องของช่วง IP และการจัดการข้อมูลเหล่านี้ในฐานข้อมูลด้วย PostgreSQL อย่างแม่นยำ จึงเป็นขั้นตอนสำคัญที่รับประกันว่าระบบเครือข่ายของคุณจะทำงานได้อย่างราบรื่นและมีประสิทธิภาพสูงสุด