Network
Subnetting คืออะไร? สมัยผมทำร้านเน็ต SiamCafe เมื่อก่อนเนี่ย, เราต้องจัดการ IP Address หลายเครื่องมาก Subnetting ก็เหมือนการแบ่งบ้านเลขที่ใหญ่ๆ ให้เป็นบ้านเลขที่ย่อยๆ ในซอยเดียวกัน ทำให้คอมพิวเตอร์ในซอยเดียวกันคุยกันได้ง่ายขึ้น เร็วขึ้น ไม่ต้องวิ่งไปถามบ้านเลขที่อื่นให้วุ่นวาย
ทำไมต้องทำ Subnetting? ลองนึกภาพว่าถ้าทุกเครื่องในโลกนี้ใช้ IP Address เดียวกันหมด จะเกิดอะไรขึ้น? วุ่นวายแน่นอน! Subnetting ช่วยแก้ปัญหานี้โดยการแบ่งเครือข่ายใหญ่ๆ ออกเป็นเครือข่ายย่อยๆ ทำให้การจัดการง่ายขึ้น, เพิ่มความปลอดภัย, และลดปัญหา traffic ในเครือข่าย
IP Address ก็คือบ้านเลขที่ของคอมพิวเตอร์ แต่ละเครื่องจะมี IP Address ไม่ซ้ำกัน ส่วน Network Mask ก็คือตัวบอกว่าส่วนไหนของ IP Address เป็นส่วนของเครือข่าย (Network) และส่วนไหนเป็นส่วนของเครื่อง (Host)
ยกตัวอย่าง IP Address: 192.168.1.10 และ Network Mask: 255.255.255.0 ในกรณีนี้ 192.168.1 คือส่วนของ Network และ .10 คือส่วนของ Host
เมื่อก่อน IP Address ถูกแบ่งเป็น Class A, B, และ C แต่ละ Class มี Network Mask เริ่มต้นที่ต่างกัน
| Class | IP Address Range | Default Subnet Mask | จำนวน Host ต่อ Network (โดยประมาณ) |
|---|---|---|---|
| A | 1.0.0.0 - 126.0.0.0 | 255.0.0.0 | 16,777,214 |
| B | 128.0.0.0 - 191.255.0.0 | 255.255.0.0 | 65,534 |
| C | 192.0.0.0 - 223.255.255.0 | 255.255.255.0 | 254 |
สมัยนี้เราไม่ค่อยใช้ Classful Addressing แล้ว แต่ความรู้พื้นฐานนี้ก็ยังสำคัญอยู่
มาถึงส่วนที่หลายคนกลัวกัน แต่จริงๆ แล้วมันไม่ได้ยากอย่างที่คิด! ผมจะสอนวิธีคำนวณ Subnetting แบบง่ายๆ ให้เข้าใจกัน
ก่อนอื่นต้องรู้ก่อนว่าเราต้องการแบ่งเครือข่ายออกเป็นกี่ Subnet และแต่ละ Subnet ต้องการจำนวน Host เท่าไหร่
ยกตัวอย่าง: ต้องการ 4 Subnet แต่ละ Subnet ต้องการ 30 Host
ใช้สูตร 2n >= จำนวน Subnet ที่ต้องการ ในที่นี้ 22 = 4 ดังนั้นต้องยืม 2 Bit จากส่วน Host
และใช้สูตร 2n - 2 >= จำนวน Host ที่ต้องการ (ลบ 2 เพราะ IP แรกเป็น Network Address และ IP สุดท้ายเป็น Broadcast Address) ในที่นี้ 25 - 2 = 30 ดังนั้นต้องเหลือ 5 Bit สำหรับ Host
เดิมที Network Mask คือ 255.255.255.0 เรายืม 2 Bit จากส่วน Host มา ดังนั้น Network Mask ใหม่คือ 255.255.255.192 (192 มาจาก 128 + 64)
หรือเขียนในรูปแบบ CIDR Notation ได้เป็น /26 (24 + 2)
สมมติว่าเราใช้ IP Address 192.168.1.0/26 ช่วง IP Address ของแต่ละ Subnet จะเป็นดังนี้
แต่ละ Subnet จะมี IP Address ที่ใช้งานได้จริง 30 IP (192.168.1.1 - 192.168.1.62, 192.168.1.65 - 192.168.1.126, ... )
สมัยผมทำร้านเน็ต, ผมใช้ Subnetting เพื่อแบ่งเครือข่ายของเครื่อง Server และเครื่อง Client ออกจากกัน ทำให้การจัดการง่ายขึ้น และเพิ่มความปลอดภัย
อีกเคสที่เจอบ่อยคือการใช้ Subnetting ในบริษัทที่มีหลายแผนก แต่ละแผนกต้องการเครือข่ายของตัวเอง
Tip: ใช้เครื่องมือคำนวณ Subnetting Online ช่วยก็ได้นะ สมัยนี้มีเยอะแยะ แต่ต้องเข้าใจหลักการก่อน ไม่งั้นจะใช้ไม่เป็น
# ตัวอย่างคำสั่ง Linux สำหรับการตั้งค่า IP Address
sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.192
คำสั่งนี้จะตั้งค่า IP Address ของ Interface eth0 เป็น 192.168.1.10 และ Subnet Mask เป็น 255.255.255.192
สุดท้ายนี้ ถ้าใครอยากรู้เรื่อง IT เพิ่มเติม ลองแวะไปดูที่ SiamCafe Blog ได้นะครับ มีบทความดีๆ เยอะแยะเลย
Q: ถ้าคำนวณผิดจะเป็นอะไรไหม?
A: คำนวณผิดก็อาจจะทำให้เครื่องคุยกันไม่ได้, IP ชนกัน, หรือเกิดปัญหาอื่นๆ ได้ ดังนั้นต้องระวัง!
Q: มีวิธีเช็คไหมว่า Subnet Mask ถูกต้องหรือเปล่า?
A: ลอง Ping เครื่องใน Subnet เดียวกันดู ถ้า Ping ได้ก็แสดงว่าน่าจะถูกต้อง แต่ถ้า Ping ไม่ได้ก็ต้องเช็คอีกที
Q: Subnetting ยากเกินไป มีวิธีอื่นไหม?
A: ถ้าเครือข่ายไม่ใหญ่มาก อาจจะไม่ต้องทำ Subnetting ก็ได้ แต่ถ้าเครือข่ายใหญ่ขึ้น Subnetting จะช่วยให้การจัดการง่ายขึ้นเยอะเลย
หวังว่าบทความนี้จะเป็นประโยชน์นะครับ อย่าลืมแวะไปอ่านบทความอื่นๆ ใน SiamCafe Blog ด้วยนะครับ
ดูวิดีโอเพิ่มเติมเกี่ยวกับSubnetting คำนวณยังไง เข้าใจง่:
สมัยผมทำร้านเน็ตฯ ใหม่ๆ คือคิดน้อยไปหน่อย ตอนนั้นแค่ "เออ แบ่งๆ ไปเหอะ" ปรากฎว่าพอเครื่องเยอะขึ้น IP ชนกันวุ่นวายมาก ต้องมานั่งไล่แก้ IP ใหม่หมด เสียเวลาสุดๆ กำหนด subnet ให้ดีตั้งแต่แรกเลยครับ วางแผนเผื่ออนาคตไว้หน่อยว่าจะมีอุปกรณ์เพิ่มอีกเท่าไหร่
ทำตาราง subnet ไว้เลยครับ ว่า subnet นี้ใช้กับอะไร, gateway อะไร, DNS อะไร จดไว้ให้หมด อย่าขี้เกียจ! ไม่งั้นเดี๋ยวลืมจริงๆ นะ ผมนี่จำไม่ได้สักที ต้องมานั่งงมทุกที ทำ documentation ดีๆ ชีวิตดีขึ้นเยอะ
ตัวอย่างตาราง Documentation:
| Subnet | IP Range | Gateway | DNS | Description |
|---|---|---|---|---|
| 192.168.1.0/24 | 192.168.1.1 - 192.168.1.254 | 192.168.1.1 | 8.8.8.8, 8.8.4.4 | เครื่อง Client ในร้าน |
| 192.168.2.0/24 | 192.168.2.1 - 192.168.2.254 | 192.168.2.1 | 8.8.8.8, 8.8.4.4 | เครื่อง Server, Printer |
แจก IP แบบ Manual นี่คือเหนื่อยมากครับ ยิ่งร้านใหญ่ๆ นี่ไม่ต้องพูดถึง ใช้ DHCP Server เถอะครับ ตั้ง range IP ให้ชัดเจน แล้วก็ reserve IP สำหรับอุปกรณ์สำคัญๆ เช่น Server, Printer จะได้ไม่ต้องกลัว IP ชน
# ตัวอย่างการตั้งค่า DHCP Server (Linux)
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
host server1 {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.10;
}
สนใจเรื่อง Forex ลองดู iCafeForex นะครับ
subnet mask ผิดนี่คือปัญหาใหญ่เลยครับ เครื่องใน network คุยกันไม่ได้, ออก internet ไม่ได้, printer ใช้ไม่ได้ สารพัดปัญหาที่จะตามมา
แบ่ง subnet หลักๆ คือเรื่อง security และ performance ครับ แยก network สำหรับเครื่อง client, server, guest wifi จะช่วยลดความเสี่ยงที่เครื่อง client จะเข้าถึงข้อมูลสำคัญบน server ได้ นอกจากนี้ยังช่วยลด broadcast traffic ทำให้ network เร็วขึ้นด้วย
มี subnet calculator เยอะแยะเลยครับใน internet ลองหาดู แต่ผมแนะนำว่าให้เข้าใจหลักการก่อน แล้วค่อยใช้ calculator จะดีกว่า
CIDR (Classless Inter-Domain Routing) คือวิธีการเขียน subnet mask แบบสั้นๆ เช่น /24 แทน 255.255.255.0
ติดตามเรื่องราวอื่นๆ ได้ที่ SiamCafe Blog ครับ
Subnetting ไม่ได้ยากอย่างที่คิดครับ เข้าใจหลักการ, ฝึกคำนวณบ่อยๆ, ทำ documentation ดีๆ แล้วชีวิตจะง่ายขึ้นเยอะ สมัยผมทำร้านเน็ตฯ นี่คือแก้ปัญหา network ทุกวัน แต่พอเข้าใจ subnetting แล้ว ชีวิตดีขึ้นเยอะเลยครับ ลองเอาไปปรับใช้กันดูนะครับ