subnet mask
การหา Subnet Mask ให้เหมาะสมกับขนาด
พอดีพึงสอบ Network ไปแล้วเป็นข้อเดียวที่ผมทำไม่ได้เลย ซึ่งผมไม่ได้เข้าใจวิธีแบ่งต่างๆมากมาย เหมือนยังไม่รู้ Concept แล้วผมก็ได้กลับบ้านมาศึกษาดูอีกที ตอนนี้เข้าใจทะลุปรุโปร่งแล้ว โดยผมหาตัวอย่างดีๆได้ที่หนึ่งครับ แต่ก่อนจะว่าถึงวิธีทำผมจะพูดถึงข้อดีก่อนนะครับ
ข้อดีของการทำ Subnet Mask
- ทำให้เครือข่ายเวลา Broadcast ถามเสียเวลาน้อยกว่ามาก
- ทำให้แบ่งการใช้งานเป็นหลายๆวงได้ ซึ่งสะดวกต่อการดูแลรักษา
- ช่วยเพิ่มประสิทธิภาพในการจ่าย Bandwidth ให้กับเครื่อง Client ต่างๆที่อยู่ในระบบ
โดย 3 ข้อหลักๆนี้ทำให้เราเห็นประสิทธิภาพที่เพิ่มขึ้นของ Subnet ได้อย่างมากมายแล้วนะครับ โดย Case ที่ผมยกมาเป็น Case ที่น่าจะทำให้เข้าใจได้ทุกมุมมอง เพราะเป็นการแบ่งย่อย Subnet ลงไปอีกชั้นหนึ่งด้วยลองไปดูกันครับ

ดังรูปจะเป็นว่า มีวงแลน 3 วงคือ LAN A , LAN B และ LAN C นอกจากนั้นยังมีการเชื่อมต่อ WAN อีก 3 วงครับ ซึ่งจากรูปจะเห็นได้ว่าจำนวน Host ใน LAN A นั้นไม่เท่าชาวบ้านเค้าครับ ถ้าเราออกแบบตามปกติแล้วจะทำให้สูญเสีย IP-Addressที่ LAN A เป็นจำนวน 32 IP Address เลยที่เดียวครับ และที่ WAN นั้นก็จะสูญเสีย IP Address ไปเป็นจำนวนมากด้วยเช่นกัน เพราะเวลาแบ่ง Subnet นั้นเราจะได้จำนวน Host แต่ละ Subnet เท่าๆกันครับ ถ้าเราแบ่ง Subnet แบบเดิมเราจะต้องแบ่ง IP Address ออกถึง 6 Subnet เลยทีเดียวเชียวแหล่ะ แต่ทุกอย่างก็ย่อมมีทางแก้นะครับ หลักการที่จะมาช่วยเราได้จะต้องอาศัยหลักการของ VLSM ( Variable Length Subnet Mask ) เข้ามาช่วยครับ แล้วไอ้เจ้า VLSM นี้มันช่วยได้อย่างไรล่ะ ? คำตอบก็คือมันจะทำการแบ่งย่อย Subnet ที่เราแบ่งย่อยไปแล้วอีกครั้ง โดยเลือกแบ่งเฉพาะ Subnet ที่ต้องการ
ถ้าเราใช้หลักการของ VLSM จะเห็นได้ว่า LAN B และ C มีอย่างล่ะ 60 Host ครับ ส่วน LAN A มีแค่ 30 Host แต่ WAN นั้นใช้แค่ WAN ล่ะ 4 IP Address นั้นคือ IP Interface ระหว่าง Route 2 IP Address ส่วนอีก 2 IP Address เป็น Network Address และ บรอดคลาสต์ ดังนั้นจะเห็นว่าเมื่อเรารวม LAN A , WAN1, WAN2 และ WAN3 แล้วยังได้ไม่เกิน 62 Host ที่กล่าวมาซะมากมายนี่เพียงจะบอกว่าจาก รูบถ้าใช้หลักการของ VLSM แล้วเราจะแบ่ง Subnet ได้ 3 Subnet ครับ
ตอนนี้เรารู้แล้วนะครับว่า เราจะต้องแบ่ง Subnet ออกเป็น 3 Subnet สมมติว่าเรามี IP Address 192.20.18.0 และ Subnet Mask 255.255.255.0 ซึ่งเป็น Class C นั้นเองครับ ตอนนี้เรามาดูว่ามันจะพอกับจำนวน Host ที่เราต้องใช้ทั้งหมดหรือเปล่าครับ จาก IP Address 192.20.18.0 นำมาเขียนเป็นเลขฐาน 2 ซะจะได้
11000000.00010100.00010010.00000000
ซึ่งจะเห็นได้ว่า Bit ที่เป็น Network Address มี 24 Bit ส่วนที่เป็น Host มี 8 Bit ( สีน้ำตาล ) ดังนั้นเราจะหาจำนวน Host ทั้งหมดได้จากสูตร
( 2^m)-2=จำนวน Host ทั้งหมด
เมื่อแทนค่าจะได้
( 2^8)-2= 254 Host
แต่ที่ต้องลบด้วย 2 เพราะ 192.20.18.0 เป็น Network Address และ IP Address สุดท้ายเป็น บรอดคลาสต์ นั้นคือ 192.20.18.255 ดังนั้นจะเห็นได้ว่า เรามี IP Address ที่จะใช้งานได้เท่ากับ 254 IP Address ซึ่งเพียงพอต่อการใช้งาน ( ใช้งานแค่ประมาณ 180 Host ) ที่กล่าวมานี้เป็นการคำนวณจำนวน Host ทั้งหมดโดยไม่แบ่งเป็น Subnet แต่ที่เราจะใช้งานเราจะต้องแบ่งเป็น Subnet โดยสามารถทำตามขั้นตอนดังต่อไปนี้ครับ
ขั้นตอนการคำนวณ
หาจำนวน Bit ที่ Network Address จะต้องยืมจาก Host Address โดยใช้สูตร
2^x >=จำนวน Subnet ที่เราต้องการ
จากตัวอย่างเราจะได้ 2^2=4 ก็แสดงว่า เราจะต้องยืม 2 บิตจาก Host Address
จำนวน Host ทั้งหมดที่สามารถที่จะใช้งานได้
( 2^n ) - 2 = Host ทั้งหมดที่จะใช้งานได้
ซึ่งค่า n เป็นจำนวนบิตของ Host ที่เหลือจากถูก Network Address ยืมไปแล้ว
จากตัวอย่างจำนวนบิตของ Host Address ถูกยืมไป 2 จาก 8 ดังนั้นจำนวนบิตหลังจากแบ่ง Subnet จึงเหลือแค่ 6 บิต ซึ่งจะได้ ( 2^6 )-2 = 62 Host ผลออกมาเป็นที่น่าพอใจครับ เพราะเราต้องการแค่ Subnet ล่ะ 60 Host เท่านั้น
หา Subnet Mask ได้โดยเขียน Subnet Mask ของ 255.255.255.0 ให้อยู่ในเลขฐาน 2 แล้วบวก 2 บิตที่ยืมมาจาก Host Address ซึ่งจะได้
1111 1111.1111 1111.1111 1111.0000 0000
0000 0000.0000 0000.0000 0000.1100 0000
จะได้เท่ากับ
1111 1111.1111 1111.1111 1111.1100 0000
จากนั้นจึงแปลงกลับเป็นฐานสิบจะได้ เท่ากับ 255.255.255.192
คราวนี้ก็มาถึงการแจกแจงการแบ่ง Subnet ครั้งแรกครับ ตารางนี้ยังไม่เกี่ยวกับ VLSM เพราะฉะนั้นจำนวน Host ในแต่ละ Subnet จะเท่ากันทั้งหมด ขั้นตอนการแบ่งได้ดังตาราง
| Subnet Number | Network Address | บิตยืม | Host | IP Address | Subnet Mask | Comment |
| 1 | 192.20.18. | 00 | 00 0000 | 192.20.18.0 | 255.255.255.192 | ไม่ใช้เป็น Network Address ของ Subnet 1 |
| 00 | 00 00001 | 192.20.18.1 | 255.255.255.192 | IP Address เริ่มต้นของ Subnet 1 | ||
| 00 | 00 0010 | 192.20.18.2 | 255.255.255.192 | - | ||
| 00 | 00 0011 | 192.20.18.3 | 255.255.255.192 | - | ||
| แจกแจงไปจนถึง | ||||||
| 00 | 11 1110 | 192.20.62 | 255.255.255.192 | IP Address สุดท้ายของ Subnet 1 | ||
| 00 | 11 1111 | 192.20.18.63 | 255.255.255.192 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 1 | ||
| 2 | 192.20.18. | 01 | 00 0000 | 192.20.18.64 | 255.255.255.192 | ไม่ใช้เป็น Network Address ของ Subnet 2 |
| 01 | 00 0001 | 192.20.18.65 | 255.255.255.192 | IP Address เริ่มต้นของ Subnet 2 | ||
| 01 | 00 0010 | 192.20.18.66 | 255.255.255.192 | - | ||
| 01 | 00 0011 | 192.20.18.67 | 255.255.255.192 | - | ||
| แจกแจงไปจนถึง | ||||||
| 01 | 11 1110 | 192.20.18.126 | 255.255.255.192 | IP Address สุดท้ายของ Subnet 2 | ||
| 01 | 11 1111 | 192.20.18.127 | 255.255.255.192 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 2 | ||
| 3 | 192.20.18. | 10 | 00 0000 | 192.20.18.128 | 255.255.255.192 | ไม่ใช้เป็น Network Address ของ Subnet 3 |
| 10 | 00 0001 | 192.20.18.129 | 255.255.255.192 | IP Address เริ่มต้นของ Subnet 3 | ||
| 10 | 00 0010 | 192.20.18.130 | 255.255.255.192 | - | ||
| 10 | 00 0011 | 192.20.18.131 | 255.255.255.192 | - | ||
| แจกแจงไปจนถึง | ||||||
| 10 | 11 1110 | 192.20.18.190 | 255.255.255.192 | IP Address สุดท้ายของ Subnet 3 | ||
| 10 | 11 1111 | 192.20.18.191 | 255.255.255.192 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 3 | ||
| 4 | 192.20.18. | 11 | 00 0000 | 192.20.18.192 | 255.255.255.192 | ไม่ใช้เป็น Network Address ของ Subnet 4 |
| 11 | 00 0001 | 192.20.18.193 | 255.255.255.192 | IP Address เริ่มต้นของ Subnet 4 | ||
| 11 | 00 0010 | 192.20.18.194 | 255.255.255.192 | - | ||
| 11 | 00 0011 | 192.20.18.195 | 255.255.255.192 | - | ||
| แจกแจงไปจนถึง | ||||||
| 11 | 11 1110 | 192.20.18.254 | 255.255.255.192 | IP Address สุดท้ายของ Subnet 4 | ||
| 11 | 11 1111 | 192.20.18.255 | 255.255.255.192 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4 | ||
เมื่อเราได้ Subnet มาแล้ว ตอนนี้ก็ถึงหน้าที่ของ VLSM แล้วครับ จะเห็นได้ว่า เราได้ Subnet มาทั้งหมด 4 Subnet แต่ที่เราต้องการนั้นจริงๆมีแค่ 3 Subnet แล้ว Subnet ที่เหลืออีก 1 Subnet นี่จะเอาไปทำอะไร คำตอบก็คือ ไม่ต้องเอาไปทำอะไร เก็บไว้เผื่ออนาคตมีการขยาย ก็สามารถนำ Subnet ที่เหลือไปใช้งานได้ครับ ตอนนี้ผมจะทำการแบ่ง Subnet ที่ 4 เพื่อจัดให้ LAN A ซึ่งต้องการใช้ Host แค่ 30 Host ( เหลือ 1 IP เพราะ Subnet ที่ 4 เมื่อแบ่งเป็น 2 Subnet จะได้ Subnet ล่ะ 31 Host ) ส่วนอีก 31 Host ที่เหลือจะนำไปใช้กับระบบ WAN
อาจจะมีคนถามว่าทำไมต้องแบ่ง Subnet ที่ 4 ล่ะ Subnet อื่นแบ่งไม่ได้หรอ คำตอบก็คือแบ่งได้ทุก Subnet แหล่ะครับ ถ้าเราต้องการ แต่ที่ผมแบ่ง Subnet ที่ 4 เพราะว่า Subnet ที่ 1 - 3 และ Subnet ที่ 4 ( 31 Host แรก ) ผมจะกำหนดให้ใช้งานสำหรับคอมพิวเตอร์ทั่วๆไป ครับ ส่วน 31 Host หลังของ Subnet ที่ 4 จะใช้สำหรับ Interface WAN นั้นเองครับ จุดประสงค์หลักๆ คือต้องการแบ่ง IP Address ออกเป็นหมวดหมู่นั้นเอง เพื่อง่ายต่อการแก้ไข เวลามีปัญหานะครับ
จาก Subnet ที่ 4 จะได้ค่า Network Address เป็น IP 192.20.18.192 และ Subnet Mask เป็น 255.255.255.192 หลักการทำก็ทำเหมือนเดิมทุกอย่างที่กล่าวมาข้างต้นทุกอย่างครับ โดยเราต้องการ 2 Subnet เพื่อแบ่งเป็น Subnet ล่ะ 31 Host ซึ่งจะได้ดังตาราง
| Subnet Number | Network Address | บิตยืมครั้งที่ 1 | บิตยืมครั้งที่ 2 | Host | IP Address | Subnet Mask | Comment |
| 4.1 | 192.20.18. | 11 | 0 | 0 0000 | 192.20.18.192 | 255.255.255.224 | ไม่ใช้เป็น Network Address ของ Subnet 4.1 |
| 192.20.18. | 11 | 0 | 0 0001 | 192.20.18.193 | 255.255.255.224 | IP Address เริ่มต้นของ Subnet 4.1 | |
| 192.20.18. | 11 | 0 | 0 0010 | 192.20.18.194 | 255.255.255.224 | - | |
| แจกแจงไปจนถึง | |||||||
| 192.20.18. | 11 | 0 | 1 1110 | 192.20.18.222 | 255.255.255.224 | IP Address สุดท้ายของ Subnet 4.1 | |
| 192.20.18. | 11 | 0 | 1 1111 | 192.20.18.223 | 255.255.255.224 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4.1 | |
| 4.2 | 192.20.18 | 11 | 1 | 0 0000 | 192.20.18.224 | 255.255.255.224 | ไม่ใช้เป็น Network Address ของ Subnet 4.2 |
| 192.20.18 | 11 | 1 | 0 0001 | 192.20.18.225 | 255.255.255.224 | IP Address เริ่มต้นของ Subnet 4.2 | |
| 192.20.18 | 11 | 1 | 0 0010 | 192.20.18.226 | 255.255.255.224 | - | |
| แจกแจงไปจนถึง | |||||||
| 192.20.18 | 11 | 1 | 1 1110 | 192.20.18.254 | 255.255.255.224 | IP Address สุดท้ายของ Subnet 4.2 | |
| 192.20.18 | 11 | 1 | 1 1111 | 192.20.18.255 | 255.255.255.224 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4.2 | |
จากตารางสามารถอธิบายได้ดังนี้ การยืมบิตครั้งที่ 2 เป็นการยืมเพื่อแบ่ง Subnet 4 เป็น 2 ส่วนๆล่ะ 31 Host ซึ่ง Network Address 192.20.18.192 จะต้องยืม Host Address 1 บิต จากสูตร 2^1 >=2 ส่วน Subnet Mask นั้นคิดเหมือนเดิมคือ แปลงเป็นฐานสองก่อนซึ่ง Subnet Mask ของ Subnet 4 คือ 255.255.255.192 แปลงเป็นฐานสองบวกด้วยบิตที่ยืมเพิ่มอีก1 จะได้ดังนี้ครับ
1111 1111.1111 1111.1111 1111.1100 0000
0000 0000.0000 0000.0000 0000.0010 0000
1111 1111.1111 1111.1111 1111.1110 0000
เมื่อแปลงกลับเป็นฐานสิบจะได้ 255.255.255.224
เสร็จไปแล้วสำหรับ IP Address สำหรับ LAN ต่อไปจะกล่าวถึงการทำ Subnet ของ WAN ซึ่งต้องการเพียงแค่ 3 Subnet เราจะทำการแบ่ง Subnet ที่ 4.2 ออกเพื่อใช้ใน WAN แต่ถ้าเราแบ่งแค่ 3 Subnet จะทำให้สูญเสีย IP Address บาง IP ไปเปล่าๆ เพราะในการ Interface ของ WAN นั้นใช้ IP แค่ 4 IP เท่านั้นคือ Interface 2 , Network Address 1 และ Broadcast 1 เท่านั้น ซึ่งถ้าแบ่งเป็น 3 Subnet จะต้องยืม 2 บิต ทำให้ Host เหลือ 3 บิตคิดเป็นจำนวน Host ได้ 2^3=8 จะเห็นได้ว่า ถ้าแบ่ง 3 Subnet จะได้ Subnet ล่ะ 8 Host ซึ่งเราจะใช้แค่ 4 Host แล้วที่เหลือก็จะไม่สามารถนำไปใช้งานได้ นอกจากนี้ Subnet ที่ 3 ที่เราออกแบบในตอนแรกจะใช้งานได้ยาก เพราะว่า เราจะได้ Subnet แค่ 4 Subnet จากการแบ่งย่อย Subnet ที่ 4.2 ซึ่งดังรูปเราจะต้องใช้ 3 Subnet เหลือ 1 Subnet จะเห็นได้ว่า Subnet 3 จะใช้งานได้ลำบาก หรืออาจจะต้องไปทำ VLSM ของ Subnet 3 เพื่อขยาย WAN อีกทำให้สิ้นเปลือง IP
ดังที่กล่าวพรรณามาเสียยืดยาวเพื่อจะบอกว่า ผมจะยืม IP Host 3 บิต เพื่อจะให้แต่ละ Subnet มี 4 Host ครับผลการทำได้ดังตารางด้านล่างครับ
| Subnet Number | Network Address | บิตยืมครั้งที่ 1 | บิตยืมครั้งที่ 2 | บิตยืมครั้งที่ 3 | Host | IP Address | Subnet Mask | Comment |
| 4.2.1 | 192.20.18. | 11 | 1 | 000 | 00 | 192.20.18.224 | 255.255.255.252 | ไม่ใช้เป็น Network Address ของ Subnet 4.2.1 |
| 192.20.18. | 11 | 1 | 000 | 01 | 192.20.18.225 | 255.255.255.252 | Interface 4.2.1 | |
| 192.20.18. | 11 | 1 | 000 | 10 | 192.20.18.226 | 255.255.255.252 | Interface 4.2.1 | |
| 192.20.18. | 11 | 1 | 000 | 11 | 192.20.18.227 | 255.255.255.252 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4.2.1 | |
| 4.2.2 | 192.20.18. | 11 | 1 | 001 | 00 | 192.20.18.228 | 255.255.255.252 | ไม่ใช้เป็น Network Address ของ Subnet 4.2.2 |
| 192.20.18. | 11 | 1 | 001 | 01 | 192.20.18.229 | 255.255.255.252 | Interface 4.2.2 | |
| 192.20.18. | 11 | 1 | 001 | 10 | 192.20.18.230 | 255.255.255.252 | Interface 4.2.2 | |
| 192.20.18. | 11 | 1 | 001 | 11 | 192.20.18.231 | 255.255.255.252 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4.2.2 | |
| 4.2.3 | 192.20.18. | 11 | 1 | 010 | 00 | 192.20.18.232 | 255.255.255.252 | ไม่ใช้เป็น Network Address ของ Subnet 4.2.3 |
| 192.20.18. | 11 | 1 | 010 | 01 | 192.20.18.233 | 255.255.255.252 | Interface 4.2.3 | |
| 192.20.18. | 11 | 1 | 010 | 10 | 192.20.18.234 | 255.255.255.252 | Interface 4.2.3 | |
| 192.20.18. | 11 | 1 | 010 | 11 | 192.20.18.235 | 255.255.255.252 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4.2.3 | |
| ทำการแจกแจง 4.2.3 ถึง 4.2.7 ซึ่งใช้หลักการเหมือนกันเพียงแต่ไล่บิตยืมที่ 3 | ||||||||
| 4.2.8 | 192.20.18. | 11 | 1 | 111 | 00 | 192.20.18.252 | 255.255.255.252 | ไม่ใช้เป็น Network Address ของ Subnet 4.2.8 |
| 192.20.18. | 11 | 1 | 111 | 01 | 192.20.18.253 | 255.255.255.252 | Interface 4.2.8 | |
| 192.20.18. | 11 | 1 | 111 | 10 | 192.20.18.254 | 255.255.255.252 | Interface 4.2.8 | |
| 192.20.18. | 11 | 1 | 111 | 11 | 192.20.18.255 | 255.255.255.252 | ไม่ใช้เป็นบรอดคลาสต์ของ Subnet ที่ 4.2.8 | |
คราวนี้มาดูความพยายามของเราที่ทำมาแต่ต้นมาใช้กับรูปข้างบน สามารถสรุปได้ดังรูปด้านล่างครับ

