IP address ตอนที่ 5 - Subnet Mask คืออะไร ทำไมมี IP ต้องมี Subnet Mask? (Subnet Mask แบบพื้นฐาน)
จาก IP address ตอนที่ 4 ผมได้ทิ้งท้ายคำถามไว้สองคำถาม ซึ่งในตอนที่ 5 นี้ผมจะขอกล่าวถึง เฉพาะเรื่อง ซับเน็ตมาส์ค (Subnet Mask) ก่อนนะครับ ผมขอให้พวกเราลองมาดูคำถามเกี่ยวกับ Subnet Mask กันไว้ก่อน และเก็บมันไว้ในใจก่อนนะครับ โดยผมจะค่อยๆ เฉลยมันออกมาทั้งหมด
"Subnet Mask คืออะไร มีหน้าที่อย่างไร แล้วทำไมเวลาพูดถึง IP address จะต้องพูดถึง Subnet Mask ควบคู่กันทุกครั้งไป แล้ว IP address ไปสัมพันธ์กับเจ้า Subnet Mask อย่างไร??????????"
ก่อนที่เราจะไปเฉลยคำถามเหล่านั้น ผมขอให้เรารู้จักหน้าตาของ Subnet Mask กันก่อนนะครับ
โครงสร้างของ Subnet Mask Subnet Mask มีต้นกำเนิดมาจากเลขฐานสอง (0 หรือ 1) เช่นเดียวกับ IP address ครับ โดย Subnet Mask จะเป็นเลขฐานสองที่มีขนาดทั้งหมด 32 bit และแบ่งออกเป็น 4 ชุด ชุดละ 8 bit โดยแต่่ละชุดจะถูกคั่นด้วยจุด
(อ๊ะ อ๊ะ!!! เดี๋ยวก่อน อย่าเพิ่งด่วนสรุปครับว่า Subnet Mask เหมือน IP address นะครับ ลองติดตามต่อไปนะครับ)
ลักษณะเด่นของ Subnet Mask Subnet Mask จะเป็นเลขฐานสองที่มีขนาด 32 bit โดยเลขฐานสองทั้ง 32 bit นี้จะถูกแบ่งออกเป็นสองฝ่ายคือ ฝ่ายซ้าย และฝ่ายขวา ซึ่งทั้งฝ่ายซ้าย และฝ่ายขวาสามารถอธิบายเพิ่มเติมได้ดังนี้ - เลขฐานสองทุก bit ที่อยู่ฝ่ายซ้าย จะต้องมีค่าเป็น 1 เสมอ (จะมี 0 มาแทรกไม่ได้เด็ดขาด) - เลขฐานสองทุก bit ที่อยู่ฝ่ายขวา จะต้องมีค่าเป็น 0 เสมอ (จะมี 1 มาแทรกไม่ได้เด็ดขาด) หมายเหตุ เลขฐานสอง 1 ตัว เราเรียก 1 bit
ตัวอย่าง เช่น
เกิดคำถามต่อมาว่า "แล้วเราจะเริ่มแบ่งฝ่ายจากตรงจุดไหนล่ะ หรือเริ่มแบ่งจาก bit ที่เท่าไหร่ล่ะ มีกฏเกณฑ์อะไรมาเป็นตัวบอก หรือตัดสินใจ" อันนี้ขอติดไว้ก่อนนะครับ คำเฉลยจะอยู่ตอนท้ายๆ ของบทความครับ
ดังนั้นเมื่อแปลง Subnet Mask จากตัวอย่างข้างบน จากเลขฐานสองกลายเป็นเลขฐานสิบ จะได้ผลการแปลงออกมาดังภาพข้างล่างครับ
หมายเหตุ สำหรับวิธีการแปลงจากเลขฐานสองเป็นเลขฐานสิบทำอย่างไร ขอให้ไปดู IP address ตอนที่ 4 นะครับ
Subnet Mask แตกต่างจาก IP address อย่างไร จากที่กล่าวมาในตอนต้นๆ จะเห็นได้ว่า Subnet Mask กับ IP address มีโครงสร้างที่เหมือนกัน แต่สิ่งที่แตกต่างกันคือ
- IP address ที่เป็นเลขฐานสอง ทั้ง 32 bit ตำแหน่งไหนจะเป็น 0 หรือตำแหน่งไหนจะเป็น 1 ก็ได้ ไม่มีกฏเกณฑ์ในการแบ่งว่า 1 ต้องเรียงกัน หรือ 0 ต้องเรียงกันเหมือนอย่าง Subnet Mask - Subnet Mask ที่เป็นเลขฐานสอง ทั้ง 32 bit จะต้องเริ่มต้นกำหนดก่อนว่าจะเริ่มแบ่งฝ่ายซ้าย และฝ่ายขวาที่จุดใด (กฏเกณฑ์ในการแบ่งฝ่ายว่าจะเริ่มที่จุดใด ลองอ่านไปเรื่อยๆ จะเข้าใจเองครับ) โดย bit ทั้งหมดที่อยู่ฝ่ายซ้ายจะต้องเป็น 1 ทั้งหมดทุก bit จะมี 0 มาแทรกไม่ได้เด็ดขาด และ bit ทั้งหมดที่เป็นฝ่ายขวาจะต้องเป็น 0 ทั้งหมดทุก bit จะมี 1 มาแทรกไม่ได้เด็ดขาด
กลับมาคำถามที่ผมตั้งให้ไว้ในตอนต้นที่ว่า "Subnet Mask คืออะไร มีหน้าที่อย่างไร แล้วทำไมเวลาพูดถึง IP address จะต้องพูดถึง Subnet Mask ควบคู่กันทุกครั้งไป แล้ว IP address ไปสัมพันธ์กับเจ้า Subnet Mask อย่างไร??????????"
ก่อนที่จะอธิบายว่า Subnet Mask คืออะไรนั้น ก็ยังมีคำถามที่เราควรสนใจอีกคำถามหนึ่ง นั่นก็คือ "เราจะรู้ได้อย่างไรว่า IP address เบอร์นี้มี bit อยู่กี่ bit ที่เป็นตัวแทนในส่วนของ Network ID และจะรู้ได้อย่างไรว่ามี bit อยู่กี่ bit ที่เป็นตัวแทนในส่วนของ Host ID?"
Subnet Mask คืออะไร? Subnet Mask คือตัวที่จะช่วยทำให้เราสามารถระบุได้ว่า IP address เบอร์นั้นๆ มี bit ไหนบ้างที่เป็น Network ID และมี bit ไหนบ้างที่เป็น Host ID
Subnet Mask จะถูกสร้างขึ้นมา โดยการวาง binary 1 (bit ที่เป็น 1) ไว้ในแต่ละตำแหน่งของ bit ที่เป็นตัวแทนในส่วนของ Network และ วาง binary 0 (bit ที่เป็น 0) ไว้ในแต่ละตำแหน่งของ bit ที่เป็นตัวแทนในส่วนของ Host
เช่น ต้องการจะบอกว่า IP address 10.1.2.3 มี 8 bit แรก (10) เป็น network และ 24 bit หลัง (.1.2.3) เป็น host เราสามารถบอกได้ด้วยการสร้าง หรือด้วยการระบุที่ Subnet Mask เป็น 11111111 . 00000000 . 00000000 . 00000000 หมายเหตุ IP address ทุกๆ เบอร์ จะต้องถูกกำหนด Network ID และ Host ID เสมอ ดังนั้น เมื่อกล่าวถึง IP address ทีไร จึงต้องกล่าวถึง Subnet Mask ด้วยทุกครั้งไป"สิ่งที่กำลังจะอธิบายต่อไปนี้ จะเป็นความรู้พื้นฐานที่เกี่ยวกับการคำนวณแบบเลขฐานสอง เรียกว่า AND logic ซึ่งหากท่านผู้อ่านไม่เคยรู้จักมาก่อน ผมจะพยายามอธิบายง่ายๆ นะครับ คือ ให้มองการ AND เลขฐานสอง เหมือนการคูณครับ" หลักการคือ IP address AND Subnet Mask = Network ID ซึ่งการนำ IP address มา AND กับ Subnet Mask นั้น หากจะคำนวณด้วยมือแล้ว เราจำเป็นที่จะต้องแปลง IP address และ Subnet Mask ให้เป็นเลขฐานสองเสียก่อนครับ แล้วจึงค่อยนำค่าทั้งสองมา AND กัน หมายเหตุ การ AND กันของเลขฐานสองก็คล้ายการคูณกันครับ 0 AND 0 = 0 0 AND 1 = 0 1 AND 0 = 0 1 AND 1 = 1 สำหรับในบทความนี้ เพื่อให้ง่ายต่อการเข้าใจเรื่อง Subnet Mask ขั้นพื้นฐาน และเพื่อให้เข้าใจถึงหน้าที่ของ Subnet Mask ผมจะขอกล่าวถึง หรือยกตัวอย่างเฉพาะรูปแบบหลักๆ ของ Subnet Mask ซึ่งมีด้วยกัน 3 รูปแบบหลักๆ ดังรูปข้างล่างครับ หมายเหตุ รูปแบบของ Subnet Mask จริงๆ แล้วมีอยู่มากมายหลายรูปแบบ แต่ก็ยังคงยึดหลักเดียวกันคือ แบ่งเป็นสองฝ่าย ฝ่ายซ้ายต้องเป็น 1 ทุก bit และฝ่ายขวาจะต้องเป็น 0 ทุก bit ครับ ซึ่งรูปแบบที่เหลือ ผมจะขอกล่าวในบทความอื่น ครับ ตัวอย่างของการคำนวณหา Network ID โดยการนำ IP address มา AND กับ Subnet Mask ดังรูปข้างล่างครับตัวอย่างที่ 1จากรูปข้างบน เราสามารถสรุปได้ว่า เมื่อเรานำ IP address 10.100.31.9 มา AND กับ Subnet Mask 255.0.0.0 แล้ว เราจะได้ Network ID = 10.0.0.0 Network ID = 10Host = .0.0.0 (.0.0.0 เป็นตัวแทนของ Host ID ใดๆ ภายใต้ network 10.0.0.0) Host ID ที่เป็นไปได้ภายใต้ network 10.0.0.0 คือ 10.0.0.1 ถึง 10.255.255.254
ดังนั้นเราจะสามารถแยกแยะได้แล้วว่า IP address 10.100.31.9 ที่มี Subnet Mask 255.0.0.0 จะมีองค์ประกอบดังนี้ คือ Network ID = 10.0.0.0 และมี Host ID = 0.100.31.9ตัวอย่างที่ 2จากรูปข้างบน เราสามารถสรุปได้ว่า เมื่อเรานำ IP address 172.16.7.41 มา AND กับ Subnet Mask 255.255.0.0 แล้ว เราจะได้ Network ID = 172.16.0.0 Network ID = 172.16Host = .0.0 (.0.0 เป็นตัวแทนของ Host ID ใดๆ ภายใต้ network 172.16.0.0) Host ID ที่เป็นไปได้ภายใต้ network 172.16.0.0 คือ 172.16.0.1 ถึง 172.16.255.254 ดังนั้นเราจะสามารถแยกแยะได้แล้วว่า IP address 172.16.7.41 ที่มี Subnet Mask 255.255.0.0 จะมีองค์ประกอบดังนี้ คือ Network ID = 172.16.0.0 และมี Host ID = 0.0.7.41 ตัวอย่างที่ 3จากรูปข้างบน เราสามารถสรุปได้ว่า เมื่อเรานำ IP address 192.168.89.11 มา AND กับ Subnet Mask 255.255.255.0 แล้ว เราจะได้ Network ID = 192.168.89.0 Network ID = 192.168.89Host = .0 (.0 เป็นตัวแทนของ Host ID ใดๆ ภายใต้ network 192.168.89.0) Host ID ที่เป็นไปได้ภายใต้ network 192.168.89.0 คือ 192.168.89.1 ถึง 192.168.89.254 ดังนั้นเราจะสามารถแยกแยะได้แล้วว่า IP address 192.168.89.11 ที่มี Subnet Mask 255.255.255.0 จะมีองค์ประกอบดังนี้ คือ Network ID = 192.168.89.0 และมี Host ID = 0.0.0.11
จากตัวอย่างทั้งสามดังรูปข้างบน เราคงจะเห็นแล้วว่า Subnet Mask มีไว้เพื่ออะไร ดังนั้นถ้าขาดซึ่ง Subnet Mask แล้ว เราจะไม่สามารถบอกได้เลยว่า IP address เบอร์นั้น มี Network ID คืออะไร เพิ่มเติมอีกนิดกับ Subnet Mask V.S. /Prefix Lengthหลายๆ ท่านอาจจะเคยเจอ IP address แล้วตามด้วย /8 หรือ /16 หรือ /24 แล้วเกิดคำถามว่า "เจ้า /8, /16 และ /24 มันคืออะไรหนอ?" ให้ท่านลองอ่านบทความข้างล่างดูนะครับ ซึ่งน่าจะพอให้คำตอบกับท่านได้เลขที่ตามหลังเครื่องหมาย / (อ่านว่า slash) เราเรียกว่า Prefix Length โดย /8, /16 และ /24 มีที่มาจาก /8 คือมี 1 เรียงติดกัน 8 bit (8 ตัว) นั่นคือ/8 = 11111111.00000000.00000000.00000000 = 255.0.0.0 ตัวอย่างเช่นIP address = 10.31.19.11 , Subnet Mask = 255.0.0.0 สามารถเขียนได้ใหม่เป็น 10.31.19.11/8ซึ่ง /8 เป็นการบอกกับเราว่า " 8 bit แรกทางซ้ายมือของ IP address 10.31.19.11 เป็น bit ของ network address" ดังนั้น Network ID (ผลการ AND ระหว่าง IP address กับ Subnet Mask) = 10.0.0.0 ซึ่งจะทำให้ ส่วนที่เหลืออีก 24 bit ทางขวามือของ IP address 10.31.19.11 เป็นส่วนของ Host IDดังนั้น Host ID = 0.31.19.11/16 คือมี 1 เรียงติดกัน 16 bit (16 ตัว) นั่นคือ/16 = 11111111.11111111.00000000.00000000 = 255.255.0.0 ตัวอย่างเช่นIP address = 172.16.87.99 , Subnet Mask = 255.255.0.0 สามารถเขียนได้ใหม่เป็น 172.16.87.99/16ซึ่ง /16 เป็นการบอกกับเราว่า "16 bit แรกทางซ้ายมือของ IP address 172.16.87.99 เป็น bit ของ network address" ดังนั้น Network ID (ผลการ AND ระหว่าง IP address กับ Subnet Mask) = 172.16.0.0 ซึ่งจะทำให้ส่วนที่เหลืออีก 16 bit ทางขวามือของ IP address 172.16.87.99 เป็นส่วนของ Host ID ดังนั้น Host ID = 0.0.87.99 /24 คือมี 1 เรียงติดกัน 24 bit (24 ตัว) นั่นคือ/24 = 11111111.11111111.11111111.00000000 = 255.255.255.0 ตัวอย่างเช่นIP address = 192.168.82.103 , Subnet Mask = 255.255.255.0 สามารถเขียนได้ใหม่เป็น 192.168.82.103/24ซึ่ง /24 เป็นการบอกกับเราว่า "24 bit แรกทางซ้ายมือของ IP address 192.168.82.103 เป็น bit ของ network address" ดังนั้น Network ID (ผลการ AND ระหว่าง IP address กับ Subnet Mask) = 192.168.82.0 ซึ่งจะทำให้ส่วนที่เหลืออีก 8 bit ทางขวามือของ IP address 192.168.82.103 เป็นส่วนของ Host ID ดังนั้น Host ID = 0.0.0.103 สรุป Subnet Mask และ Prefix LengthPrefix กับ Prefix Length คืออะไร Prefix แปลว่า คำนำหน้า ดังนั้น Prefix ใน IP address ก็คือ Subnet หรือ Network ID นั่นเอง
ส่วน Prefix Length แปลว่า ความยาวของคำนำหน้า ดังนั้น Prefix Length ใน IP address ก็คือ ความยาวของจำนวน bit ที่เป็นส่วนหน้าของ IP address [นับจาก bit ซ้ายสุดของ IP address ไล่มาทางขวาเรื่อยๆ จนเท่ากับตัวเลขที่อยู่หลังเครื่องหมาย / (อ่านว่า slash)] ซึ่งก็หมายถึงจำนวน bit ของ Network ID นั่นเอง ตัวอย่าง: 192.168.1.55/24 Prefix = 192.168.1 (24 bit แรก หรือ 24 bit หน้า) Prefix Length = /24 หรือ 255.255.255.0 เพื่อบอกให้ทราบว่า 24 bit แรกของ IP address เป็น Network ID เราจะใช้ /Prefix Length แทน Subnet Mask เมื่อไหร่ และมันมีประโยชน์อย่างไร? แน่นอนครับ จากที่ผมแจ้งไว้บนๆ ว่า "เมื่อเราพูดถึง IP address เรามักจะต้องอ้างอิงถึง Subnet Mask ด้วยทุกครั้งไป เพื่อให้ผู้เกี่ยวข้องได้ทราบว่า IP address เบอร์นั้นๆ มี Network ID เป็นอะไร" และเราก็ทราบมาอีกอย่างหนึ่งว่า Subnet Mask สามารถเขียนแทนได้ด้วย /Prefix Length
ส่วนการที่จะกล่าวถึงประโยน์ของการใช้ Prefix Length แทน Subnet Mask นั้น ผมขอตอบจากประสบการณ์นะครับ คือจากประการณ์ของผม ผมจะใช้ /Prefix Length ด้วยเงื่อนไขอยู่สองข้อดังนี้ครับ 1. การเขียน Subnet Mask เต็มรูปแบบค่อนข้างจะเขียนยาว ดังนั้นในบางครั้งผมจะใช้ /Prefix Length แทน 2. เวลาวาดรูป IP Network (Network Diagram) แล้วต้องมีการระบุ Subnet Mask ลงไปในรูป Network Diagram ผมจะระบุหรือเขียนลงไป ในรูปแบบของ /Perfix เพราะประหยัดพื้นที่ในหน้ากระดาษ ไม่ทำให้ Network Diagram เลอะเทอะไปด้วยตัวอักษรที่มากเกินความจำเป็นครับ
สรุปคำนิยามของ Subnet Mask อีกทีหนึ่ง Subnet Mask จะถูกสร้างขึ้นมา โดยการวาง binary 1 (bit ที่เป็น 1) ไว้ในแต่ละตำแหน่งของ bit ที่เป็นตัวแทนในส่วนของ Network และ วาง binary 0 (bit ที่เป็น 0) ไว้ในแต่ละตำแหน่งของ bit ที่เป็นตัวแทนในส่วนของ Host
การนำ Subnet Mask ไปใช้ประโยชน์บน Host ต้นทาง เพื่อตรวจสอบว่า Destination IP address ของ Host ปลายทางอยู่ใน Network ID (Subnet ID) เดียวกันกับมันหรือไม่ และการนำไปใช้ในการตัดสินใจว่าจะต้องมีการ setup Gateway บน Host หรือไม่ ท่านสามารถเข้าไปติดตามรายละเอียดได้ตาม link ข้างล่างนี้ครับ //www.bloggang.com/viewblog.php?id=likecisco&date=03-11-2014&group=3&gblog=23
ส่วนคำถามที่ว่า IP address เบอร์อะไร ควรจะจับคู่กับ Subnet Mask เบอร์อะไรนั้น ท่านสามารถไปติดตามได้ใน IP address ตอนที่ 6 - ลึกอีกนิดกับ Class ของ IP และ loopback address (127.0.0.1/localhost) นะครับ
สำหรับ Subnet Mask หรือ /Prefix Length ผมขอจบแค่นี้ก่อนนะครับ
ขอบคุณครับ โก้-ชัยวัฒน์ (kochaiwat)
Create Date : 09 สิงหาคม 2554 |
Last Update : 20 มกราคม 2559 0:23:48 น. |
|
67 comments
|
Counter : 118945 Pageviews. |
|
|
|