โดย ชาญชัย ฤทธิ์ทองพิทักษ์
บทความนี้ เป็นเรื่องเกี่ยวกับ Subnet Mask หลายๆ คนอาจจะเคยได้ยินคำนี้ แต่ไม่รู้ว่าคืออะไร มีประโยชน์อะไร หลายๆ คนอาจจะเคยกำหนด Subnet Mask ให้กับ network หรือ computer ของตัวเองมาแล้ว แต่ไม่รู้ว่า ตัวเลขที่ใส่เข้าไป มีความหมายอย่างไร เห็นคนอื่นเขาใช้ค่า Subnet Mask แบบนี้เราก็ใช้บ้าง หรือไม่ก็ใส่ค่าตามที่ Admin บอกมา ลองอ่านบทความนี้ ดูสิครับ แล้วจะรู้ว่า Subnet Mask เอาไว้ทำอะไร เราจะกำหนด ค่าตัวเลขนี้ ได้อย่างไร
ก่อนที่จะพูดถึงเรื่อง Subnet Mask ต้องพูดถึง เรื่องของ IP Address ก่อน เพราะ 2 เรื่องนี้ มีความสัมพันธ์กันอย่างลึกซึ้ง ถ้าไม่รู้จัก IP Address ก็ไม่มีทางเข้าใจ เรื่องของ Subnet Mask
IP Address คืออะไร? IP Address ก็คือสิ่งที่ใช้บอก ที่อยู่ของเครื่อง computer หรืออุปกรณ์บางอย่าง ที่ต่ออยู่ใน network (โดยที่ network นี้ต้องเป็น network ที่คุยกันด้วย protocol TCP/IP เท่านั้น) หรือจะพูดง่ายๆ ก็คือ IP Address เปรียบเสมือนกับ บ้านเลขที่ ซึ่งจะทำให้ computer แต่ละเครื่องใน network สามารถพูดคุย ติดต่อกันได้ถูกเครื่องนั่นเอง IP Address มีลักษณะเป็นตัวเลข 4 ตัวคั่นด้วยจุด ตัวอย่างเช่น 192.168.199.99 ซึ่งตัวเลขนี้ จะถูกกำหนดให้กับ computer แต่ละเครื่อง และจะไม่ซ้ำกันด้วย ตัวเลขแต่ละตัว จะมีค่าตั้งแต่ 0 จนถึง 255 ซึ่งเป็นค่าของตัวเลขขนาด 1 byte (8 bit) นั่นเอง ตัวเลขเหล่านี้ บอกอะไรกับเราบ้าง? สิ่งที่จะได้ จากตัวเลขทั้ง 4 ตัวนี้ก็คือ Network ID กับ Host ID ซึ่งจะบอกให้รู้ว่า เครื่อง computer ของเราอยู่ใน network ไหน และเป็นเครื่องไหนใน network นั้น เราจะรู้ได้อย่างไรว่า Network ID และ Host ID มีค่าเท่าไหร่ ก็ขึ้นอยู่กับว่า IP Address นั้น อยู่ใน class อะไร
สิ่งที่จะเป็นตัวจำแนก class ของ network ก็คือ bit ทางซ้ายมือสุดของตัวเลขตัวแรกของ IP Address (ที่แปลงเป็นเลขฐาน 2 แล้ว) นั่นเอง โดยที่ถ้า bit ทางซ้ายมือสุดเป็น 0 ก็จะเป็น class A ถ้าเป็น 10 ก็จะเป็น class B ถ้าเป็น 110 ก็จะเป็น class C ดังนั้น IP Address จะอยู่ใน class A ถ้าตัวเลขตัวแรกมีค่าได้ตั้งแต่ 0 127 (000000002 011111112) จะอยู่ใน class B ถ้าเลขตัวแรกมีค่าตั้งแต่ 128 191 (100000002 101111112) และ จะอยู่ใน class C ถ้าเลขตัวแรกมีค่าตั้งแต่ 192 - 223 (110000002 110111112) มีข้อยกเว้นอยู่นิดหน่อยก็คือตัวเลข 0, 127 จะใช้ในความหมายพิเศษ จะไม่ใช้เป็น address ของ network ดังนั้น network ใน class A จะมีค่าตัวเลขตัวแรก ในช่วง 1 126 สำหรับตัวเลขตั้งแต่ 224 ขึ้นไป จะเป็น class พิเศษ แต่จะไม่กล่าวถึงในที่นี้เนิ่องจากไม่ได้ใช้งานในภาวะปกติ
ในแต่ละ class ของ IP Address จะใช้จำนวนตัวเลขสำหรับ Network ID และ Host ID ไม่เหมือนกัน บาง class ก็ใช้ Network ID 3 byte + Host ID 1 byte, บาง class ก็ใช้ Network ID 2 byte + Host ID 2 byte ซึ่งสามารถดูได้จากรูปข้างล่างนี้

จากรูปจะเห็นได้ว่า class A ใช้ Network ID 1 byte และใช้ Host ID 3 byte ทำให้ class A สามารถมี network ได้ทั้งหมด 126 network (1 126) แต่ละ network มี computer ต่ออยู่ได้ถึงประมาณ 16 ล้านเครื่อง (256 x 256 x 256) ในทำนองเดียวกัน จะเห็นได้ว่า class C ใช้ Network ID 3 byte และใช้ Host ID 1 byte ทำให้ class C สามารถมี network ได้ทั้งหมดประมาณ 2 ล้าน network (32 x 256 x 256) แต่ละ network มี computer ต่ออยู่ได้ 254 เครื่อง (1 254)
จาก IP Address เราสามารถที่จะบอก ได้คร่าวๆ ว่า computer 2 เครื่องอยู่ใน network วงเดียวกันหรือเปล่าโดยการเปรียบเทียบ Network ID ของ IP Address ถ้ามี Network ID ตรงกันก็แสดงว่าอยู่ใน network วงเดียวกัน เช่น computer เครื่องหนึ่งมี IP Address 1.2.3.4 จะอยู่ใน network วงเดียวกับอีกเครื่องหนึ่งซึ่งมี IP Address 1.100.150.200 เนื่องจากมี Network ID ตรงกันคือ 1 (class A ใช้ Network ID 1 byte) อย่างไรก็ตาม จะเห็นได้ว่า network บาง class เป็น network ขนาดใหญ่ เช่น network ใน class A มี computer ได้ถึง 16 ล้านเครื่อง ซึ่งในความเป็นจริงแล้วเราไม่สามารถนำมาต่อร่วมกันทั้งหมดได้ เนื่องจากมีข้อจำกัด ทางด้าน physical media และ performance ของ network จึงต้องมีการแบ่ง network ออกเป็น segment ย่อยๆ หรือที่เราเรียกกันว่า subnet นั่นเอง
การแบ่ง network ออกเป็นส่วนย่อยๆ สามารถทำได้โดยใช้สิ่งที่เรียกว่า Subnet Mask ซึ่งมีลักษณะคล้ายกับ IP Address คือประกอบด้วยตัวเลข 4 ตัวคั่นด้วยจุด เช่น 255.255.255.0 วิธีการที่จะบอกว่า computer แต่ละเครื่องจะอยู่ใน network วงเดียวกัน (หรือพูดอีกอย่างหนึ่ง ก็คือใน subnet เดียวกัน) หรือเปล่า ก็สามารถทำได้โดยเอา Network Mask มา AND กับ IP Address ถ้าได้ค่าตรงกัน แสดงว่าอยู่ใน subnet เดียวกัน ถ้าได้ค่าไม่ตรงกัน ก็แสดงว่าอยู่คนละ subnet
ตัวอย่างเช่นเราจะดูว่าเครื่อง computer ที่มี IP Address 192.168.199.99 กับเครื่องที่มี IP Address 192.168.199.1 ใน network ที่มี Subnet Mask 255.255.255.0 อยู่ใน subnet เดียวกันหรือเปล่า สามารถทำได้โดย
IP Address 1 :
192.168.199.99 Subnet Mask :
255.255.255.0 AND
Result : 192.168.199.0 |
|
IP Address 2 :
192.168.199.1 Subnet Mask :
255.255.255.0 AND
Result : 192.168.199.0 |
จะเห็นได้ว่าผลลัพธ์จากการ AND มีค่าตรงกัน ดังนั้นจึงสรุปได้ว่า อยู่ใน subnet เดียวกัน ถ้าเราลองเปลี่ยน Subnet Mask เป็น 255.255.255.192 จะได้ว่า computer 2 เครื่องนี้อยู่คนละ subnet กัน ดังตัวอย่างต่อไปนี้
IP Address 1 :
192.168.199.99 Subnet Mask :
255.255.255.192 AND
Result : 192.168.199.64 |
|
IP Address 2 :
192.168.199.1 Subnet Mask :
255.255.255.192 AND
Result : 192.168.199.0 |
หมายเหตุ วิธีการ AND ตัวเลข 2 ตัว สามารถทำได้โดยใช้เครื่องคิดเลขแบบ Scientific หรือใช้วิธีการแปลง เป็นเลขฐาน 2 ก่อน แล้วจึง AND ทีละ bit
เมื่อเรารู้แล้วว่า Subnet Mask เอาไว้ใช้ทำอะไร และมีวิธีการใช้อย่างไรต่อไปเราก็มาเรียนรู้รายละเอียดเกี่ยวกับ Subnet Mask กันว่ามีส่วนประกอบอะไรบ้าง และเราจะกำหนด Subnet Mask ได้อย่างไรผู้สนใจ โปรดติดตามตอนต่อไปนะครับ