Subnet Mask คืออะไร ??

Subnet mask เป็น Parameter อีกตัวหนึ่งที่ต้องระบุควบคู่กับหมายเลข IP Address หน้าทีของ Subnet mask ก้คืิอ การช่วยในการแยกแยะว่าส่วนใดภายในหมายเลข IP Address เป็น Network Address และส่วนใดเป็นหมายเลข Host Address ดังนั้น ท่านจะสังเกตได้ว่า เมื่อเราระบุ IP Address ให้กับเครื่องคอมพิวเตอร์์ เราจำเป็นต้องระบุ Subnet mask ลงไปด้วยทุกครั้ง
บทความการคำนวณ หา Subnet นี้ ไม่ได้ลงรายละเอียด ถึงขนาด Bit น่ะครับ เพราะตัวผมเองไม่เกงเรื่องพวกนี้ ผมคิดว่าถ้า หาตาม internet  หรือ หนังสือจะทำให้เข้าใจง่ายกว่าที่อ่านจากบทความนี้  ผมจะเน้นเรื่องของการ คำนวณยังไงให้ไว ให้ถูกต้องแม่นยำเพื่อใช้สำหรับ สอบ หรือ ประโยชน์อื่นๆ  น่ะครับ


Default Subnet mask ของแต่ล่ะ Class ดั้งนี้
• Class A จะมี Subnet mask เป็น 255.0.0.0 หรือเลขฐานสองดัง้นี้
11111111.00000000.00000000.00000000
(รวมเลข 1 ให้หมด ก็จะได้เท่ากับ 255)

Class B จะมี Subnet mask เป็น 255.255.0.0 หรือเลขฐานสองดัง้นี้
11111111.11111111.00000000.00000000

Class C จะมี Subnet mask เป็น 255.255.255.0 หรือเลขฐานสองดัง้นี้
11111111.11111111.11111111.00000000

มาถึงจุดนี้ผมอยากให้ท่านสังเกตว่า
“ตำแหน่ง ของ Bit ไหน ในหมายเลข IP Address ที่ถูกกันไว้ให้เป็น Network Address หรือ Subnet Address จะมีค่าของ Bit ตำแหน่งที่ตรงกันใน Subnet mask เป็น 1 เสมอ”
หลักการพื้นฐานของการทำ Subnet

หลัก การทำงานมีอยู่ว่า เราจะต้องยืม bitในตำแหน่งที่แต่เดิมเคยเป็น Host Address มาใช้เป็น Sub-network Address ด้วยการแก้ไขค่า Subnet mask ให้เป็นค่าใหม่ที่เหมาะสม

สูตรการคำนวณ  2 ยกกำลัง n  – 2 = ??

การวางแผน คำนวณ Subnet
1. หาจำนวน Segment ทั้งหมดที่ต้องการ Subnet address   จำนวนใน Segment ในที่นี้ นับจำนวน network ที่อยุ่ในแต่ล่ะฝั่งอขง Router หรือของ switch Layer 3 หรือ หากมีการ implement VLAN จะนับจำนวนของ VLAN ก็ได้

2. จำนวนเครื่อง computer ทั้งหมดในแต่ล่ะ Segment (ในที่นี้เราสมมุติ ว่าจำนวนเครืื่อง มีจำนวนใกล้เคียงกัน)
3. หาจำนวน bit ที่จะต้องยืมมาใช้เป็น Subnet Address โดยพิจารณาจาก ข้อ.1  และ ข้อ.2 โดยอาศัยสูตรง่าย ๆ
ถ้ายืมมาจำนวน x bit แล้ว ถ้านำเอา 2 มายกกำลังด้วย x แล้ว หักลบออกอีก 2 แล้วได้ค่ามากกว่า หรือ เท่ากับจำนวน
Subnet address ที่เราต้องการ
ขั้นต่อมา  ก้ต้องนำ bit ที่เหลือจากการยืมมา เข้าสูตรเดิมคือ  2 ยกกำลัง n -2 = ??
4. นำ subnet mask ที่ได้มาคำนวณร่วมกับหมายเลข Network Address เดิมเพื่อหา Subnet Address ทั้งหมดที่เป็นไปได้ เพื่อที่จะนำไปกำหนดให้กับ Network แต่ล่ะ Segment
5. คำนวณหมายเลข IP Address ที่เป็นไปได้ทั้งหมดในแต่ล่ะ Subnet แล้วนำไป กำหนดให้กับเครื่อง computer เครื่อง server  และแต่ล่ะ interface ของ router จนครบ
ตัวอย่างการคำนวณ น่ะครับ
Network Address  192.168.100.0
Subnetmask        255.255.255.192 (/26)

• ได้ทั้งหมดกี่ subnet

้bit ที่ถูกยืมมา  2
255.255.255.11000000
ดั้งนั้น จำนวน subnet ที่ได้คือ 2 ยกกำลัง 2  – 2  = 2  subnet

• ได้ทั้งหมดกี่ Host
Bit ที่เหลือจากการยืมจากข้างบน  คือ 6
ก็นำมาเข้าตามสูตรเหมือนกัน 2 ยกกำลัง 6 – 2 =  62 host << ที่จะนำไปใช้กับเครื่อง ใ 1 วง network

• หมายเลข Subnet ที่ถูกต้องเป็นหมายเลขอะไรบ้าง ??

Subnet แรก   192.168.100.0 1 000000    192.168.100.64
Subnet สอง   192.168.100. 1 0 000000    192.168.100.128

• หมายเลข Host ในแต่ล่ะ subnet เป็นอย่างไร ?

Subnet แรก   192.168.100.64
ที่ใช้ได้ 192.168.100.65 – 192.168.100.126

Subnet สุดท้าย 192.168.100.128
ที่ใช้ได้ 192.168.100.129 – 192.168.100.190
___________________________________

อีกตัวอย่างการคำนวณ น่ะครับ
Network Address  192.168.100.0
Subnetmask        255.255.255.224 (/27)

• ได้ทั้งหมดกี่ subnet

้bit ที่ถูกยืมมา  3
255.255.255.1 1 1 00000
ดั้งนั้น จำนวน subnet ที่ได้คือ 2 ยกกำลัง 3  – 2  = 6 subnet

• ได้ทั้งหมดกี่ Host
Bit ที่เหลือจากการยืมจากข้างบน  คือ 5
ก็นำมาเข้าตามสูตรเหมือนกัน 2 ยกกำลัง 5 – 2 =  30 host << ที่จะนำไปใช้กับเครื่อง ใ 1 วง network

• หมายเลข Subnet ที่ถูกต้องเป็นหมายเลขอะไรบ้าง ??

Subnet Zero คือ 192.168.100.0  – 192.168.100.31 <<  ไม่ใช่น่ะครับ วงนี้
Subnet แรก  คือ   192.168.100.32  -  192.168.100.63

Subnet สอง  คือ   192.168.100.64  -  192.168.100.95
Subnet สาม  คือ   192.168.100.96  -  192.168.100.127
Subnet สี่    คือ   192.168.100.128  -  192.168.100.159
Subnet ห้า  คือ   192.168.100.160  -  192.168.100.191
Subnet หก  คือ   192.168.100.192  -  192.168.100.223
Broadcast  คือ   192.168.100.224  -  192.168.100.255  << อันนี้ก็ไม่ใช่น่ะครับ

จะ เห็นได้ว่า มีแค่เพียง 6 subnet เท่านั้น ที่ใช้ได้  แต่ในทางปฏิบัติ เราสามารถใช้ คำสั่ง subnet zero ได้น่ะครับให้สามารถใช้งานได้ แต่ทีผมแนะนำให้ ลบออกสอง คือในทางทฤษฏี น่ะครับ แต่ก็ควรทำน่ะ
มาถึงจุดนี้ก้ต้องทำได้กัน้บางแล้วน่ะครับ Laughing แต่มันยังไม่จบหรอกน่ะครับ ยังมีความซับซ้อนมากขึ้นไปอีก

Variable Length Subnet Masks (VLSM)

เป็นการ แบ่ง Subnet ที่ย่อยลงมาอีก จากการทำ Subnetting เนื่องจากเหตุผลที่ว่า การแบ่ง Subnet ในเมื่อสักครู่นั้น ยังเหลือ IP ทิ้งอีกเป็นจำนวนที่มากเกินไป ดังนั้น จึงมีการ แบ่งย่อยลงมาอีกขั้นหนึ่ง ซึ่งสามารดูตัวอย่างได้ดังนี้

Mechanism of Subnetting

Mechanism of VLSM

ตัวอย่างในการทำ VLSM

IP 172.16.0.0/20

1. 2 Subnets for 500 Hosts

2. 3 Subnets for 200 Hosts

3. 2 Subnets for 100 Hosts

4. 4 Subnets for 50 Hosts

5. 4 Subnets for 2 Hosts

How’s Work

เรารู้ว่า IP Address นี้ โดนทำ Subnetting มาก่อนแล้วครั้งหนึ่ง เนื่องจาก ค่า CIDR (Classless InterDomain Routing) ของ IP 172.16.0.0 นั้น ปกติควรจะเป็น /16 แต่ มันถูกทำเป็น /20 นั่นคือ มีการทำ Subnetting มาแล้วครั้งหนึ่ง

การทำ VLSM จะต้องเริ่มแบ่ง Subnetting ที่ Network วงที่ใหญ่ที่สุด นั่นหมายถึง เราต้องแบ่งจากวงที่มี 500 Hosts ไล่ลงมาเป็น 200, 100, 50 และ 2 Hosts ตามลำดับ

500 Hosts นั้น เราสามารถหา จำนวนบิทที่จะ Assign ได้ จาก การนำ 2 ไปยกกำลัง x เพื่อได้มากกว่า 500 ซึ่งคำตอบก็คือ 9 เนื่องจาก 2 ยกกำลัง 9 จะได้ 512 Hosts และลบออก 2 = 510 Hosts

ขั้นแรก เราต้องนำ IP Address นี้ มากระจาย Binary ก่อน ซึ่งจะได้ดังนี้

172.16.00000000.00000000

เราจะใส่เครื่องหมายคั่นที่ ตำแหน่งที่ /20 นับจากด้านหน้า จะได้ดังนี้

172.16.0000|0000.00000000

และเราจะใส่เครื่องหมายคั่นที่ตำแหน่งที่ 9 นับจากด้านหลัง จะได้ดังนี้

172.16.0000|XXX|0.00000000

ตำแหน่งตรงกลางคือ Binary ที่สามารถทำ VLSM ได้ ซึ่ง แสดงได้ดังนี้

- 172.16.0000|000|0.00000000 – 172.16.0000|000|1.11111111 = 172.16.0.0-172.16.1.255

- 172.16.0000|001|0.00000000 – 172.16.0000|001|1.11111111 = 172.16.2.0-172.16.3.255

- 172.16.0000|010|0.00000000 – 172.16.0000|010|1.11111111 = 172.16.4.0-172.16.5.255

- 172.16.0000|011|0.00000000 – 172.16.0000|011|1.11111111 = 172.16.6.0-172.16.7.255

- 172.16.0000|100|0.00000000 – 172.16.0000|100|1.11111111 = 172.16.8.0-172.16.9.255

- 172.16.0000|101|0.00000000 – 172.16.0000|101|1.11111111 = 172.16.10.0-172.16.11.255

- 172.16.0000|110|0.00000000 – 172.16.0000|110|1.11111111 = 172.16.12.0-172.16.13.255

- 172.16.0000|111|0.00000000 – 172.16.0000|111|1.11111111 = 172.16.14.0-172.16.15.255

Subnet Masks = 20 + 3 (20 คือ /20 และ 3 คือ บิทที่ยืมมา (ตัวหนา) ดังนั้น เมื่อกระจาย Decimal จะได้ Subnet Masks = 255.255.254.0)

เราจะสังเกตได้ว่า เราทำโจทย์ข้อที่ 2 ได้สำเร็จแล้วคือ 2 Subnets for 500 Hosts นั่นก็คือ 172.16.0.0 – 172.16.1.255/23 และ 172.16.2.0 – 172.16.3.255/23 จบข้อที่ 1

นำ IP ในวงที่ 3 (สีแดง) ซึ่งยังไม่ได้ใช้ มาทำ โจทย์ข้อที่ 2 คือ 3 Subnets for 200 Hosts

IP ของเราที่นำมาใช้คือ 172.16.4.0/23 ซึ่ง 200 Hosts นั้น เราสามารถหา จำนวนบิทที่จะ Assign ได้ จาก การนำ 2 ไปยกกำลัง x เพื่อได้มากกว่า 200 ซึ่งคำตอบก็คือ 8 เนื่องจาก 2 ยกกำลัง 8 จะได้ 256 Hosts ลบออก 2 เหลือ 254 Hosts

ขั้นต่อมา เราต้องนำ IP Address นี้ มากระจาย Binary ก่อน ซึ่งจะได้ดังนี้

172.16.00000100.00000000

เราจะใส่เครื่องหมายคั่นที่ ตำแหน่งที่ /23 นับจากด้านหน้า จะได้ดังนี้

172.16.0000010|0.00000000

และเราจะใส่เครื่องหมายคั่นที่ตำแหน่งที่ 8 นับจากด้านหลัง จะได้ดังนี้

172.16.0000010|X|.00000000

ตำแหน่งตรงกลางคือ Binary ที่สามารถทำ VLSM ได้ ซึ่ง แสดงได้ดังนี้

172.16.0000010|0|.00000000 – 172.16.0000010|0|.11111111 = 172.16.4.0-172.16.4.255

172.16.0000010|1|.00000000 – 172.16.0000010|1|.11111111 = 172.16.5.0-172.16.5.255

สังเกตว่า เราสามารถทำได้เพียง 2 Network เท่านั้น IP ที่แบ่งมาก็หมด ดังนั้นเราต้องไปดึงมาจาก IP ที่เราทำการแบ่งไว้ในโจทย์ข้อก่อน (สีเขียว) ดังนี้

IP ของเราที่นำมาใช้คือ 172.16.6.0/23

และทำตามเดิม จะได้

172.16.00000110.00000000

เราจะใส่เครื่องหมายคั่นที่ ตำแหน่งที่ /23 นับจากด้านหน้า จะได้ดังนี้

172.16.0000011|0.00000000

และเราจะใส่เครื่องหมายคั่นที่ตำแหน่งที่ 8 นับจากด้านหลัง จะได้ดังนี้

172.16.0000011|X|.00000000

ตำแหน่งตรงกลางคือ Binary ที่สามารถทำ VLSM ได้ ซึ่ง แสดงได้ดังนี้

172.16.0000011|0|.00000000 – 172.16.0000011|0|.11111111 = 172.16.6.0-172.16.6.255

172.16.0000011|1|.00000000 – 172.16.0000011|1|.11111111 = 172.16.7.0-172.16.7.255

Subnet Masks = 23 + 1 (23 คือ /23 และ 1 คือ บิทที่ยืมมา (ตัวหนา) ดังนั้น เมื่อกระจาย Decimal จะได้ Subnet Masks = 255.255.255.0)

เราจะได้คำตอบในโจทย์ข้อ 2 คือ 172.16.4.0-172.16.4.255/24, 172.168.5.0 -172.16.5.255/24 และ 172.16.6.0-172.16.6.255/24

สังเกตว่า เรายังเหลือ IP 172.16.7.0/24 อยู่ ให้นำมาทำโจทย์ข้อที่ 3 ต่อได้ คือ 2 Subnets for 100 Hosts

IP ของเราที่นำมาใช้คือ 172.16.7.0/24

100 Hosts นั้น เราสามารถหา จำนวนบิทที่จะ Assign ได้ จาก การนำ 2 ไปยกกำลัง x เพื่อได้มากกว่า 100 ซึ่งคำตอบก็คือ 7 เนื่องจาก 2 ยกกำลัง 7 จะได้ 128 Hosts

ขั้นต่อมา เราต้องนำ IP Address นี้ มากระจาย Binary ก่อน ซึ่งจะได้ดังนี้

172.16.00000111.00000000

เราจะใส่เครื่องหมายคั่นที่ ตำแหน่งที่ /24 นับจากด้านหน้า จะได้ดังนี้

172.16.00000111.|00000000

และเราจะใส่เครื่องหมายคั่นที่ตำแหน่งที่ 7 นับจากด้านหลัง จะได้ดังนี้

172.16.00000111.|X|0000000

ตำแหน่งตรงกลางคือ Binary ที่สามารถทำ VLSM ได้ ซึ่ง แสดงได้ดังนี้

- 172.16.00000111.|0|0000000 – 172.16.00000111.|0|1111111 = 172.16.7.0-172.16.7.127

- 172.16.00000111.|1|0000000 – 172.16.00000111.|1|1111111 = 172.16.7.128-172.16.7.255

Subnet Masks = 24 + 1 (24 คือ /24 และ 1 คือ บิทที่ยืมมา (ตัวหนา) ดังนั้น เมื่อกระจาย Decimal จะได้ Subnet Masks = 255.255.255.128)

เราจะได้คำตอบในโจทย์ข้อที่ 3 คือ 172.16.17.0-172.16.7.127/25 และ 172.16.7.128-172.16.7.255/25

เราต้องการ IP ในการทำโจทย์ข้อที่ 4 คือ 4 Subnets for 50 Hosts ดังนั้น เราต้องไปดึงมาจาก IP ที่เราทำการแบ่งไว้ในโจทย์ข้อก่อน (สีส้ม) ดังนี้

IP ของเราที่นำมาใช้คือ 172.16.8.0/23

50 Hosts นั้น เราสามารถหา จำนวนบิทที่จะ Assign ได้ จาก การนำ 2 ไปยกกำลัง x เพื่อได้มากกว่า 50 ซึ่งคำตอบก็คือ 6 เนื่องจาก 2 ยกกำลัง 6 จะได้ 64 Hosts

ขั้นต่อมา เราต้องนำ IP Address นี้ มากระจาย Binary ก่อน ซึ่งจะได้ดังนี้

172.16.00001000.00000000

เราจะใส่เครื่องหมายคั่นที่ ตำแหน่งที่ /23 นับจากด้านหน้า จะได้ดังนี้

172.16.0000100|0.00000000

และเราจะใส่เครื่องหมายคั่นที่ตำแหน่งที่ 6 นับจากด้านหลัง จะได้ดังนี้

172.16.0000100|X.XX|000000

ตำแหน่งตรงกลางคือ Binary ที่สามารถทำ VLSM ได้ ซึ่ง แสดงได้ดังนี้

- 172.16.0000100|0.00|000000 – 172.16.0000100|0.00|111111= 172.16.8.0-172.16.8.63

- 172.16.0000100|0.01|000000 – 172.16.0000100|0.01|111111= 172.16.8.64-172.16.8.127

- 172.16.0000100|0.10|000000 – 172.16.0000100|0.10|111111=172.16.8.128-172.16.8.191

- 172.16.0000100|0.11|000000 – 172.16.0000100|0.11|111111=172.16.8.192-172.16.8.255

- 172.16.0000100|1.00|000000 – 172.16.0000100|1.00|111111=172.16.9.0-172.16.9.63

- 172.16.0000100|1.01|000000 – 172.16.0000100|1.01|111111=172.16.9.64-172.16.9.127

- 172.16.0000100|1.10|000000 – 172.16.0000100|1.10|111111=172.16.9.128-172.16.9.191

- 172.16.0000100|1.11|000000 – 172.16.0000100|1.11|111111=172.16.9.192-172.16.9.255

Subnet Masks = 23 + 3 (23 คือ /23 และ 3 คือ บิทที่ยืมมา (ตัวหนา) ดังนั้น เมื่อกระจาย Decimal จะได้Subnet Masks = 255.255.255.192)

เราจะได้คำตอบในโจทย์ข้อที่ 4 คือ 172.16.8.0-172.16.8.63/26, 172.16.8.64-172.16.8.127/26,172.16.8.128-172.16.8.191/26 และ 172.16.8.192-172.16.8.255/26

เราต้องการ IP ในการทำโจทย์ข้อที่ 5 คือ 4 Subnets for 2 Hosts ดังนั้น เราต้องไปดึงมาจาก IP ที่เราทำการแบ่งไว้ในโจทย์ข้อก่อน (สีน้ำตาล) ดังนี้

IP ของเราที่นำมาใช้คือ 172.16.9.0/26

2 Hosts นั้น เราสามารถหา จำนวนบิทที่จะ Assign ได้ จาก การนำ 2 ไปยกกำลัง x เพื่อได้มากกว่า 2 ซึ่งคำตอบก็คือ 1 เนื่องจาก 2 ยกกำลัง 1 จะได้ 2 Hosts แต่ เนื่องจาก เราต้องสงวนไว้ 2 Hosts สำหรับ Network ID และBroadcast ID ดังนั้น จึงต้อง บวกเพิ่มอีก 2 Hosts เป็น 4 Hosts ดังนั้นจึงต้องยืม 2 บิท

ขั้นต่อมา เราต้องนำ IP Address นี้ มากระจาย Binary ก่อน ซึ่งจะได้ดังนี้

172.16.00001001.00000000

เราจะใส่เครื่องหมายคั่นที่ ตำแหน่งที่ /26 นับจากด้านหน้า จะได้ดังนี้

172.16.00001001.00|000000

และเราจะใส่เครื่องหมายคั่นที่ตำแหน่งที่ 2 นับจากด้านหลัง จะได้ดังนี้

172.16.00001001.00|XXXX|00

ตำแหน่งตรงกลางคือ Binary ที่สามารถทำ VLSM ได้ ซึ่ง แสดงได้ดังนี้

- 172.16.00001001.00|0000|00 – 172.16.00001001.00|0000|11=172.16.9.0-172.16.9.3

- 172.16.00001001.00|0001|00 – 172.16.00001001.00|0001|11=172.16.9.4-172.16.9.7

- 172.16.00001001.00|0010|00 – 172.16.00001001.00|0010|11=172.16.9.8-172.16.9.11

- 172.16.00001001.00|0011|00 – 172.16.00001001.00|0011|11=172.16.9.12-172.16.9.15

Subnet Masks = 26 + 4 (26 คือ /26 และ 4 คือ บิทที่ยืมมา (ตัวหนา) ดังนั้น เมื่อกระจาย Decimal จะได้ Subnet Masks = 255.255.255.252)

เราจะได้ คำตอบในโจทย์ข้อที่ 5 คือ 172.16.9.0-172.16.9.3/30, 172.16.9.4-172.16.9.7/30,

172.16.9.8-172.16.9.11/30 และ 172.16.9.12-172.16.9.15/30

  • Share/Bookmark
Advertisement

Leave a Reply