24 ก.ค. เวลา 14:49 • การศึกษา
Network By Shoper Gamer

วิธีคำนวณ VLSM เบื้องต้น

โดย
ในโลกของเครือข่ายคอมพิวเตอร์ การบริหารจัดการ IP Address เป็นสิ่งสำคัญมากครับ ลองนึกภาพว่าเรามีบ้านหลายหลัง (ซึ่งก็คืออุปกรณ์เครือข่ายต่างๆ เช่น คอมพิวเตอร์, เซิร์ฟเวอร์, เราเตอร์) และ เราต้องการให้บ้านแต่ละหลังมีที่อยู่ที่ไม่ซ้ำกัน (IP Address) เพื่อให้สามารถส่งจดหมาย (ข้อมูล) ไปหากันได้ถูกต้อง
ในอดีต เรามีการจัดสรร IP Address แบบ Fixed-Length Subnet Mask (FLSM) ซึ่งเหมือนกับการสร้างหมู่บ้านที่ทุกบ้านมีขนาดเท่ากันหมด ไม่ว่าจะมีคนอยู่กี่คนก็ตาม วิธีนี้อาจจะดูง่ายดี แต่ปัญหาคือมันสิ้นเปลืองมาก! ลองคิดดูว่าถ้าบ้านหลังไหนมีคนอยู่แค่ 2 คน แต่เราต้องสร้างบ้านขนาดใหญ่เท่ากับบ้านที่มีคนอยู่ 200 คน ก็จะเกิดพื้นที่ว่างเปล่าและทรัพยากรที่ไม่ได้ใช้ประโยชน์มหาศาล
นั่นคือที่มาของ VLSM (Variable Length Subnet Mask) VLSM เปรียบเสมือนการสร้างหมู่บ้านที่สามารถปรับขนาดบ้านให้เหมาะสมกับจำนวนผู้อยู่อาศัยที่แท้จริงได้ ทำให้เราใช้ทรัพยากร IP Address ได้อย่างมีประสิทธิภาพสูงสุด ไม่ต้องเสียทิ้งไปโดยเปล่าประโยชน์
  • ​ส่วนประกอบสำคัญในการคำนวณ VLSM
การคำนวณ VLSM เกี่ยวข้องกับตัวเลขฐานสอง (Binary) และ ตัวเลขฐานสิบ (Decimal) ซึ่งอาจจะดูซับซ้อนในตอนแรก แต่ไม่ต้องกังวลเราจะค่อยๆ ไปทีละขั้นตอน
สิ่งที่เราต้องรู้จักมีดังนี้:
1) IP Address (IPv4): ประกอบด้วยตัวเลข 4 ชุด คั่นด้วยจุด เช่น `192.168.1.0` แต่ละชุดมีค่าได้ตั้งแต่ 0-255
2) Subnet Mask:
ตัวเลข 4 ชุด คั่นด้วยจุด เหมือน IP Address ใช้สำหรับบอกว่าส่วนใดของ IP Address เป็น Network ID และส่วนใดเป็น Host ID โดยจะประกอบด้วยเลข 255 (แทนค่า Bit เป็น 1) และ 0 (แทนค่า Bit เป็น 0) เช่น `255.255.255.0`
3) Prefix Length (CIDR Notation): เป็นวิธีเขียน Subnet Mask อีกรูปแบบหนึ่ง โดยบอกจำนวนบิตที่เป็น Network ID เช่น `/24` หมายความว่า 24 บิตแรกเป็น Network ID และอีก 8 บิตที่เหลือเป็น Host ID
4) Network ID:
IP Address ตัวแรกของ Subnet ที่ใช้ระบุเครือข่ายนั้นๆ
5) Broadcast ID:
IP Address ตัวสุดท้ายของ Subnet ที่ใช้ส่งข้อมูลไปยังทุกอุปกรณ์ใน Subnet นั้นๆ
6) Usable IP Range:
ช่วงของ IP Address ที่สามารถนำไปกำหนดให้กับอุปกรณ์ต่างๆ ได้ (ไม่รวม Network ID และ Broadcast ID)
  • ​หลักการทำงานของ VLSM
การคำนวณ VLSM จะเริ่มจากการจัดสรร IP Address ให้กับ Subnet ที่มีความต้องการ Host มากที่สุดก่อนเสมอ จากนั้นค่อยๆ ไล่ไปหา Subnet ที่มีความต้องการ Host น้อยลงเรื่อยๆ เหตุผลคือการจัดสรรจากมากไปน้อยจะช่วยให้เรามีพื้นที่ว่างสำหรับ Subnet ขนาดเล็กที่เหลืออยู่ได้ง่ายกว่า
  • ​ขั้นตอนแบบละเอียด
สมมติโจทย์: คุณได้รับมอบหมายให้จัดสรร IP Address จากเครือข่าย `192.168.1.0/24` เพื่อใช้งานในแผนกต่างๆ ดังนี้
○ แผนก A: ต้องการ 50 Hosts
○ แผนก B: ต้องการ 25 Hosts
○ แผนก C: ต้องการ 10 Hosts
○ แผนก D: ต้องการ 5 Hosts
○ ลิงก์เชื่อมต่อเราเตอร์ 1: ต้องการ 2 Hosts
○ ลิงก์เชื่อมต่อเราเตอร์ 2: ต้องการ 2 Hosts
2
☆ เรามาเริ่มคำนวณกันเลย!
■ ขั้นตอนที่ 1: เรียงลำดับความต้องการจากมากไปน้อย
○ แผนก A: 50 Hosts
○ แผนก B: 25 Hosts
○ แผนก C: 10 Hosts
○ แผนก D: 5 Hosts
○ ลิงก์เชื่อมต่อเราเตอร์ 1: 2 Hosts
○ ลิงก์เชื่อมต่อเราเตอร์ 2: 2 Hosts
■ ขั้นตอนที่ 2: คำนวณ Subnet สำหรับแต่ละความต้องการ
หลักการคือ เราต้องหาจำนวนบิตของ Host ID ที่เพียงพอต่อจำนวน Host ที่ต้องการ โดยใช้สูตร: `2^n - 2 >= จำนวน Host ที่ต้องการ`
○ `n` คือ จำนวนบิตของ Host ID
○ `-2` คือ การหักออกสำหรับ Network ID และ Broadcast ID
☆ ก. แผนก A (50 Hosts)
○ ต้องการ Host 50 ตัว
○ ลองใช้
`n=5`: `2^5 - 2 = 32 - 2 = 30` (ไม่พอ)
○ ลองใช้
`n=6`: `2^6 - 2 = 64 - 2 = 62` (พอ!)
○ ดังนั้น เราต้องการ 6 บิตสำหรับ Host ID
○ เมื่อมี 6 บิตสำหรับ Host ID แสดงว่าเรามีบิตสำหรับ Network ID = `32 - 6 = 26` บิต
○ Subnet Mask คือ /26
- `192.168.1.0/26`
- Network ID: `192.168.1.0`
- Subnet Mask: `255.255.255.192` (วิธีแปลง: 24 บิตแรกเป็น 1, อีก 2 บิตของ Octet ที่ 4 เป็น 1 คือ `128+64=192`)
- Broadcast ID: `192.168.1.63` (ถัดไป 64 IP Address นับจาก 0)
- Usable IP Range: `192.168.1.1` ถึง `192.168.1.62`
- จำนวน IP ทั้งหมดใน Subnet นี้คือ 64 IP Address (รวม Network และ Broadcast)
☆ ข. แผนก B (25 Hosts)
○ ต้องการ Host 25 ตัว
○ ลองใช้
`n=4`: `2^4 - 2 = 16 - 2 = 14` (ไม่พอ)
○ ลองใช้
`n=5`: `2^5 - 2 = 32 - 2 = 30` (พอ!)
○ ดังนั้น เราต้องการ 5 บิตสำหรับ Host ID
○ เมื่อมี 5 บิตสำหรับ Host ID แสดงว่าเรามีบิตสำหรับ Network ID = `32 - 5 = 27` บิต
○ Subnet Mask คือ /27
○ ใช้ IP Address ที่ว่างถัดจาก Subnet ก่อนหน้า (192.168.1.64)
- `192.168.1.64/27`
- Network ID: `192.168.1.64`
- Subnet Mask: `255.255.255.224` (วิธีแปลง: 24 บิตแรกเป็น 1, อีก 3 บิตของ Octet ที่ 4 เป็น 1 คือ `128+64+32=224`)
- Broadcast ID: `192.168.1.95` (ถัดไป 32 IP Address นับจาก 64)
- Usable IP Range: `192.168.1.65` ถึง `192.168.1.94`
- จำนวน IP ทั้งหมดใน Subnet นี้คือ 32 IP Address
☆ ค. แผนก C (10 Hosts)
○ ต้องการ Host 10 ตัว
○ ลองใช้
`n=3`: `2^3 - 2 = 8 - 2 = 6`
(ไม่พอ)
○ ลองใช้
`n=4`: `2^4 - 2 = 16 - 2 = 14` (พอ!)
○ ดังนั้น เราต้องการ 4 บิตสำหรับ Host ID
○ เมื่อมี 4 บิตสำหรับ Host ID แสดงว่าเรามีบิตสำหรับ Network ID = `32 - 4 = 28` บิต
○ Subnet Mask คือ /28
○ ใช้ IP Address ที่ว่างถัดจาก Subnet ก่อนหน้า (192.168.1.96)
เริ่มที่ `192.168.1.96/28`
○ Network ID: `192.168.1.96`
○ Subnet Mask: `255.255.255.240` (วิธีแปลง: 24 บิตแรกเป็น 1, อีก 4 บิตของ Octet ที่ 4 เป็น 1 คือ `128+64+32+16=240`)
○ Broadcast ID: `192.168.1.111` (ถัดไป 16 IP Address นับจาก 96)
○ Usable IP Range: `192.168.1.97` ถึง `192.168.1.110`
○ จำนวน IP ทั้งหมดใน Subnet นี้คือ 16 IP Address
☆ ง. แผนก D (5 Hosts)
○ ต้องการ Host 5 ตัว
○ ลองใช้
`n=3`: `2^3 - 2 = 8 - 2 = 6` (พอ!)
○ ดังนั้น เราต้องการ 3 บิตสำหรับ Host ID
○ เมื่อมี 3 บิตสำหรับ Host ID แสดงว่าเรามีบิตสำหรับ Network ID = `32 - 3 = 29` บิต
○ Subnet Mask คือ /29
○ ใช้ IP Address ที่ว่างถัดจาก Subnet ก่อนหน้า (192.168.1.112)
เริ่มนับที่ `192.168.1.112/29`
○ Network ID: `192.168.1.112`
○ Subnet Mask: `255.255.255.248` (วิธีแปลง: 24 บิตแรกเป็น 1, อีก 5 บิตของ Octet ที่ 4 เป็น 1 คือ `128+64+32+16+8=248`)
○ Broadcast ID: `192.168.1.119` (ถัดไป 8 IP Address นับจาก 112)
○ Usable IP Range: `192.168.1.113` ถึง `192.168.1.118`
○ จำนวน IP ทั้งหมดใน Subnet นี้คือ 8 IP Address
☆ จ. ลิงก์เชื่อมต่อเราเตอร์
1 (2 Hosts)
○ ต้องการ Host 2 ตัว
○ ลองใช้
`n=2`: `2^2 - 2 = 4 - 2 = 2` (พอ!)
○ ดังนั้น เราต้องการ 2 บิตสำหรับ Host ID
○ เมื่อมี 2 บิตสำหรับ Host ID แสดงว่าเรามีบิตสำหรับ Network ID = `32 - 2 = 30` บิต
○ Subnet Mask คือ /30
○ ใช้ IP Address ที่ว่างถัดจาก Subnet ก่อนหน้า (192.168.1.120)
○ `192.168.1.120/30`
○ Network ID: `192.168.1.120`
○ Subnet Mask: `255.255.255.252` (วิธีแปลง: 24 บิตแรกเป็น 1, อีก 6 บิตของ Octet ที่ 4 เป็น 1 คือ `128+64+32+16+8+4=252`)
○ Broadcast ID: `192.168.1.123` (ถัดไป 4 IP Address นับจาก 120)
○ Usable IP Range: `192.168.1.121` ถึง `192.168.1.122`
○ จำนวน IP ทั้งหมดใน Subnet นี้คือ 4 IP Address
☆ ฉ. ลิงก์เชื่อมต่อเราเตอร์ 2 (2 Hosts)
○ ต้องการ Host 2 ตัว (เหมือนข้อ จ.)
○ Subnet Mask คือ /30
○ ใช้ IP Address ที่ว่างถัดจาก Subnet ก่อนหน้า (192.168.1.124)
○ `192.168.1.124/30`
○ Network ID: `192.168.1.124`
○ Subnet Mask: `255.255.255.252`
○ Broadcast ID: `192.168.1.127` (ถัดไป 4 IP Address นับจาก 124)
○ Usable IP Range: `192.168.1.125` ถึง `192.168.1.126`
○ จำนวน IP ทั้งหมดใน Subnet นี้คือ 4 IP Address
  • ​รวมทั้งหมด
☆ สำหรับแผนก A (50 Hosts)
○ ได้รับ Network ID เป็น `192.168.1.0`
○ ใช้ Subnet Mask แบบ
`/26` หรือ `255.255.255.192`
○ มีช่วง IP ที่สามารถใช้งานได้ตั้งแต่ `192.168.1.1` ไปจนถึง `192.168.1.62`
○ และมี Broadcast ID คือ `192.168.1.63`
☆ สำหรับแผนก B (25 Hosts):
○ ได้รับ Network ID ถัดไปคือ `192.168.1.64`
○ ใช้ Subnet Mask แบบ
`/27` หรือ `255.255.255.224`
○ มีช่วง IP ที่สามารถใช้งานได้ ตั้งแต่ `192.168.1.65` ไปจนถึง `192.168.1.94`
○ และมี Broadcast ID คือ `192.168.1.95`
☆ สำหรับแผนก C (10 Hosts)
○ ได้รับ Network ID ถัดไปคือ `192.168.1.96`
○ ใช้ Subnet Mask แบบ
`/28` หรือ `255.255.255.240`
○ มีช่วง IP ที่สามารถใช้งานได้ ตั้งแต่ `192.168.1.97` ไปจนถึง `192.168.1.110`
○ และมี Broadcast ID คือ `192.168.1.111`
☆ สำหรับแผนก D (5 Hosts)
○ ได้รับ Network ID ถัดไปคือ `192.168.1.112`
○ ใช้ Subnet Mask แบบ
`/29` หรือ `255.255.255.248`
○ มีช่วง IP ที่สามารถใช้งานได้ตั้งแต่ `192.168.1.113` ไปจนถึง `192.168.1.118`
○ และมี Broadcast ID คือ `192.168.1.119`
☆ สำหรับลิงก์เชื่อมต่อเราเตอร์ 1 (2 Hosts)
○ ได้รับ Network ID ถัดไปคือ `192.168.1.120`
○ ใช้ Subnet Mask แบบ
`/30` หรือ `255.255.255.252`
○ มี ช่วง IP ที่สามารถใช้งานได้ ตั้งแต่ `192.168.1.121` ไปจนถึง `192.168.1.122`
○ และมี Broadcast ID คือ `192.168.1.123`
☆ สำหรับลิงก์เชื่อมต่อเราเตอร์ 2 (2 Hosts):
○ ได้รับ Network ID ถัดไปคือ `192.168.1.124`
○ ใช้ Subnet Mask แบบ
`/30` หรือ `255.255.255.252`
○ มีช่วง IP ที่สามารถใช้งานได้ ตั้งแต่ `192.168.1.125` ไปจนถึง `192.168.1.126`
○ และมี Broadcast ID คือ `192.168.1.127`
จะเห็นได้ว่าการใช้ VLSM ทำให้แต่ละ Subnet มีขนาดที่แตกต่างกันตามจำนวน Host ที่ต้องการจริง ซึ่งช่วยให้เราใช้ IP Address ได้อย่างมีประสิทธิภาพสูงสุดและประหยัดทรัพยากรไปได้มากครับ
จากตัวอย่างนี้ เราได้ใช้ IP Address ไปถึง `192.168.1.127` จากทั้งหมด 256 IP Address ในเครือข่าย `192.168.1.0/24` ซึ่งเหลือ IP Address ที่ยังไม่ได้ใช้งานอีกจำนวนมาก (ตั้งแต่ `192.168.1.128` ถึง `192.168.1.255`) ซึ่งเราสามารถเก็บไว้ใช้ในอนาคต หรือจัดสรรให้กับแผนกอื่นๆ ที่อาจจะเกิดขึ้นได้ นี่คือข้อดีของการใช้ VLSM ที่ช่วยประหยัด IP Address และ ทำให้การบริหารจัดการเครือข่ายมีประสิทธิภาพมากขึ้น
✏️ Shoper Gamer
  • ​VLSM คืออะไร 👇
  • ​Subnetting เบื้องต้น 👇
  • ​วิธีคำนวณ FLSM เบื้องต้น Part 1/2 (หา Subnet) 👇
  • ​วิธีคำนวณ FLSM เบื้องต้น Part 2/2 (หา Host) 👇
Credit :
👇
  • ​https://www.comparitech.com/net-admin/variable-length-subnet-mask-vlsm-tutorial/
  • ​https://www.numberanalytics.com/blog/ultimate-guide-to-vlsm-in-networking
  • ​https://www.jodoi.com/book/book_technic_cal_IP.pdf

ดูเพิ่มเติมในซีรีส์

โฆษณา