วันอาทิตย์ที่ 16 กุมภาพันธ์ พ.ศ. 2557

คำนวณ IP Address และ subnet mask

IP Address หรือ Internet Protocol Address มีความสำคัญอย่างไร และเกี่ยวข้องอะไรกับเราบ้าง ปัจจุบันคงไม่ต้องกล่าวถึงแล้ว IP Address เป็นหมายเลขที่ใช้กำหนดให้กับเครื่องคอมพิวเตอร์ หรืออุปกรณ์ Network ต่างๆ เช่น Router, Switch , Firewall , IP Camera , IP Phone , Accesspoint , เป็นต้น และอีกไม่นานอุปกรณ์ไฟฟ้าหรืออุปกรณ์สื่อสารทุกประเภทที่จะออกวางจำหน่ายจะมีIPAddress ติดมาด้วยจากโรงงานเลยทีเดียว IP Address ที่ใช้ในปัจจุบันนั้นจะเป็นชนิดที่เรียกว่า IPv4(IP version 4) ซึ่งไม่เพียงพอต่อการใช้งาน จึงมีการพัฒนาเป็น IPv6 (IP version 6) เพื่อรองรับอุปกรณ์และเทคโนโลยีใหม่ๆที่ต้องใช้IP Address ในการติดต่อสื่อสาร และในเมืองไทยเองก็มีการใช้IPv6ในหลายหน่วยงานแล้ว หน่วยงานที่จัดสรร IP Address ให้ในแถบ Asia Pacific คือAPNIC ผู้ให้บริการ Internet หรือ ISP จะขอ IP จาก APNIC แล้วนำมาแจกจ่ายให้แก่ลูกค้าของ ISP นั้นๆอีกต่อไปสำหรับผู้ที่จะสอบใบ Certificate ค่ายต่างๆ เช่น CCNA , CCNP , LPI , Security + , CWNAเป็นต้น ล้วนแล้วแต่จะต้องมีความรู้ กี่ยวกับ IP Address ทั้งสิ้น โดยเฉพาะ IPv4 จะต้องคำนวณได้อย่างแม่นยำและรวดเร็ว

IPv4
IPv4 ประกอบด้วยเลขฐานสอง 32 bits (4 bytes ,( 8bits=1byte)) แบ่งเป็น 4 กลุ่ม กลุ่มละ 8 bits แต่
ละกลุ่มนั้นจะคั่นด้วย . ( Dot )
กรณีตัวเลขน้อยสุดหรือเป็น เลข 0 ทั้งหมด  00000000 . 00000000 . 00000000 . 00000000
กรณีตัวเลขมากสุดหรือเป็น เลข 1 ทั้งหมด  11111111 . 11111111 . 11111111 . 11111111
เมื่อแปลงเป็นเลขฐาน 10 จะได้
กรณีตัวเลขน้อยสุดหรือเป็น เลข 0 ทั้งหมด  0.0.0.0
กรณีตัวเลขมากสุดหรือเป็น เลข 1 ทั้งหมด  255.255.255.255
ดังนั้น IPv4 จะมีตัวเลขที่เป็นไปได้ ตั้งแต่ 0.0.0.0 – 255.255.255.255


ก่อนการคำนวณเรื่อง IP เพื่อความรวดเร็ว ให้เขียนตามด้านล่างนี้ 

IPv4 จะมีตัวเลขที่เป็นไปได้ทั้งหมดคือตั้งแต่ 0.0.0.0 - 255.255.555.555
สามารถแบ่ง IPv4 ได้เป็น 5 แบบ หรือ 5 Class ตามด้านล่าง โดยวิธีการแบ่งจะอ้างอิงจาก byte ที่1 ดังนี้
class A  byte ที่1 ตัวเลขบิตแรก จะเป็น 0
class B  byte ที่1 ตัวเลขบิตแรกจะเป็น 1 บิตที่2 จะเป็น 0
class C  byte ที่1 ตัวเลข 2 บิตแรก จะเป็น 1 บิตที่3 จะเป็น 0
class D  byte ที่1ตัวเลข 3 บิตแรก จะเป็น 1 บิตที่4 จะเป็น 0
class E  byte ที่1 ตัวเลข 4 บิตแรกจะเป็น 1
ดังนั้นจะได้ผลตามรูปด้านล่าง



จะได้IP ในแต่ละ Class ดังนี้
Class A จะเริ่มต้นตั้งแต่ 0.0.0.0 ถึง 127.255.255.255
Class B จะเริ่มต้นตั้งแต่ 128.0.0.0 ถึง 191.255.255.255
Class C จะเริ่มต้นตั้งแต่ 192.0.0.0 ถึง 223.255.255.255
Class D จะเริ่มต้นตั้งแต่ 224.0.0.0 ถึง 239.255.255.255
Class E จะเริ่มต้นตั้งแต่ 240.0.0.0 ถึง 255.255.255.255


IP ที่สามารถนำไป Set ให้อุปกรณ์หรือ Host ได้จะมีอยู่3 Class คือ Class A, B และ C ส่วน IP ClassD จะสงวนไว้ใช้สำหรับงาน multicast applications และ IP Class E จะสงวนไว้สำหรับงานวิจัย หรือไว้ใช้ในอนาคต IPv4 ยังแบ่งเป็น 2 ประเภท คือ Public IP ( IP จริง ) และ Private IP ( IP ปลอม )Public IP ( IP จริง ) คือ IP ที่สามารถ set ให้อุปกรณ์ network เช่น Server หรือ Router แล้วสามารถติดต่อสื่อสารกับ Public IP ( IP จริง ) ด้วยกัน หรือออกสู่Network Internet ได้ทันทีPrivate IP ( IP ปลอม ) สามารถนำมา ใช้set ให้กับ PC หรืออุปกรณ์ในออฟฟิตได้แต่ไม่สามารถออกสู่
Public IP หรือออก Internet ได้ ต้องมีอุปกรณ์ Gateway เช่น Router ,Server หรือModem DSL เปิด Service NAT ( Network Address Translation ) ไว้ จึงจะสามารถออกสู่Internet ได้Private IP จะมีเฉพาะ Class A,B และ C ดังนี้

Class A : 10.x.x.x ( 10.0.0.0 - 10.255.255.255 )
Class B : 172.16.x.x - 172.31.x.x ( 172.16.0.0 - 172.31.255.255 )
Class C : 192.168.x.x ( 192.168.0.0 - 192.168.255.255 )

การคำนวณ IPv4
เมื่อเราได้IP Address มา 1 ชุด สิ่งที่จะต้องบอกได้จาก IP Address ที่ได้มาคือ
Subnet Mask คือ IP Address อะไร
Network IP คือ IP Address อะไร
Broadcast IP คือ IP Address อะไร
Range host IP ที่สามารถนำมาใช้งานได้ มีIP อะไรบ้าง
จำนวน Subnets , จำนวน hosts / Subnet
Subnet Mask ทำหน้าที่แบ่ง network ออกเป็นส่วนย่อยๆ ลักษณะคล้ายกับ IP Address คือ
ประกอบด้วยตัวเลข 4 ตัวคั่นด้วยจุด เช่น 255.255.255.0 วิธีการที่จะบอกว่า computer แต่ละเครื่องจะอยู่
ใน network วงเดียวกัน (หรืออยู่ใน subnet เดียวกัน) หรือไม่นั้นบอกได้ด้วยค่า Subnet Mask

วิธีการหา Subnet Mask
/30 หมายถึง mask 30 bits แรก
/27 หมายถึง mask 27 bits แรก
/20 หมายถึง mask 20 bits แรก
ให้ทำการแปลง mask bit ที่กำหนดให้ เป็นค่า Subnet Mask
วิธีการคือ bits ที่อยู่หน้าตัวmask ให้แทนด้วยเลข 1 bits ที่อยู่หลังให้แทนด้วยเลข 0

Ex /30
/30  11111111 . 11111111 . 11111111 . 111111/00 


จะได้ค่า Subnet Mask
/30  255.255.255.252
11111111 . 11111111 . 11111111 . 111111/00
ให้ใช้ตารางช่วยจะทำให้เร็วขึ้น โดย ถ้าเป็น 1 จำนวน 8 ตัวจะได้255
ถ้าเป็น 1 จำนวน 6 ตัวจะคือ 252 หรือจะใช้วิธีนับจาก 24 bits แรกซึ่งเป็น 1 ทั้งหมดอยู่แล้ว นับต่อมาจะได้
bits ที่30 เป็น 252 พอดี


Ex /27
/27  11111111 . 11111111 . 11111111 . 111/00000
จะได้ค่า Subnet Mask
/27  255.255.255.224

Ex /20
/20  11111111 . 11111111 . 1111/0000 . 00000000
จะได้ค่า Subnet Mask
/20  255.255.240.0


ตัวอย่าง Subnet Mask ต่างๆ มีดังนี้
Mask ที่เป็นค่า default ของ IP Class ต่างๆมีดังนี้
Class A = Mask 8 bits = 255 . 0 . 0 . 0
Class B = Mask 16 bits = 255 . 255 . 0 . 0
Class C = Mask 24 bits = 255 . 255 . 255 . 0

Subnet mask ทั่วไป
Mask 10 = 255 . 192 . 0 . 0 Mask 21 = 255 . 255 . 248 . 0
Mask 11 = 255 . 224 . 0 . 0 Mask 22 = 255 . 255 . 252 . 0
Mask 12 = 255 . 240 . 0 . 0 Mask 23 = 255 . 255 . 254 . 0
Mask 13 = 255 . 248 . 0 . 0 Mask 25 = 255 . 255 . 255 . 128
Mask 14 = 255 . 252 . 0 . 0 Mask 26 = 255 . 255 . 255 . 192
Mask 15 = 255 . 254 . 0 . 0 Mask 27 = 255 . 255 . 255 . 224
Mask 17 = 255 . 255 . 128 . 0 Mask 28 = 255 . 255 . 255 . 240
Mask 18 = 255 . 255 . 192 . 0 Mask 29 = 255 . 255 . 255 . 248
Mask 19 = 255 . 255 . 224 . 0 Mask 30 = 255 . 255 . 255 . 252
Mask 20 = 255 . 255 . 240 . 0 Mask 31 = 255 . 255 . 255 . 254

หมายเหตุ เพื่อให้การแปลงตัวเลขจากเลขฐานสอง เป็นฐานสิบเร็วขึ้นให้ดูจากด้านล่าง เช่นถ้าเป็น เลข 1ทั้งหมดจะได้เลข ฐานสิบคือ 255 ถ้าเป็นเลข 1 จำนวน 4 ตัวจะคือ 240 ถ้าเป็นเลข 0 ทั้งหมด จะได้เลข  หลังจากได้Subnet Mask แล้ว ขั้นตอนต่อไปคือการหา Network IP และ Broadcast IP  Network IP คือ IP ตัวแรกของ Subnet ปกติจะเอาไว้ประกาศเรื่องของ Routing จะไม่สามารถนำมา  Set ให้แก่อุปกรณ์หรือเครื่อง PC ได้ ให้แก่อุปกรณ์หรือเครื่อง PC ได้เช่นกัน

Ex.1 192.168.22.50/30
จากโจทย์ /30 เมื่อแปลงเป็น Subnet Mask จะได้255.255.255.252
ให้ดูจากที่เขียนไว้ด้านบนนะครับ ถ้าเป็น 1 หมดทั้ง 8 ตัวจะได้255 ( แปลงจากฐานสองเป็นฐานสิบ )
เป็น 1 ทั้งหมด 6 ตัวจะได้252 ดังนั้นจึงได้subnet mask เป็น 255.255.255.252
ต่อไป หาว่า จำนวน IP ต่อ Subnet มีจำนวนเท่าไหร่ จากค่า Subnet Mask ที่ให้มา
ดูที่2 bit ที่เหลือ ที่เป็นอะไรก็ได้นั้น ตัวเลขที่เป็นไปได้หมดคือ 00 , 01 , 10 , 11 มี4 ตัว
และเมื่อนำ00 , 01 , 10 , 11 แปลงเป็นฐานสิบจะได้
00 แปลงเป็นฐานสิบจะได้ 0
01 แปลงเป็นฐานสิบจะได้ 1
10 แปลงเป็นฐานสิบจะได้ 2
11 แปลงเป็นฐานสิบจะได้ 3
สรุปคือ จำนวน IP ต่อ Subnet เมื่อ Subnet Mask คือ 255.255.255.252 คือ 4 ตัว นั่นเอง
หรือใช้วิธีลัดดูจากที่เขียนไว้ ตัวเลขที่อยู่บน 252 คือ 4 ตามด้านล่างครับ

ดังนั้นถ้า /30 จำนวน IP ในแต่ละ subnet ที่จะเป็นไปได้ดูเฉพาะกลุ่มสุดท้าย
คือ 0-3 , 4-7 , 8-11 , _ _ _ , 252-255 หรือเขียนในรูป IPv4 จะได้
192.168.22.0 - 192.168.22.3
192.168.22.4 - 192.168.22.7
192.168.22.8 - 192.168.22.11
-----------
192.168.22.48 - 192.168.22.51
---------
192.168.22.252 - 192.168.22.255

หมายเหตุ 3 กลุ่มแรกเหมือนเดิมเนื่องจากผลของการ and ระหว่าง bit เนื่องจาก 3 กลุ่มแรกเป็น bit 1
ทั้งหมดทำการ add กับเลขใดก็จะได้ตัวเดิม 3 กลุ่มแรกจึงได้เลขฐาน 10 ตัวเดิม
โดย IP Address ตัวแรกของแต่ละ subnet จะเรียกว่า Network IP และ IP Address ตัวสุดท้ายของแต่
ละ subnet จะเรียกว่า Broadcast IP ดังนั้น
จากโจทย์192.168.22.50/30
1. Network IP คือ IP Address อะไร
ตอบ 192.168.22.48
2. Broadcast IP คือ IP Address อะไร
ตอบ 192.168.22.51
3. Range hosts IP ที่สามารถนำมาใช้งานได้ หรือ จำนวน hosts Per Subnet
ตอบ 192.168.22.49 - 192.168.22.50 นำIP มา set เป็น host ได้2 IP
วิธีการหา Network IP นอกเหนือจากการเขียนตามด้านบนแล้วยังหาได้โดย
วิธีการปกติทำได้โดยการนำเอา Subnet Mask มา AND กับ IP Address ที่ให้มา ผลที่ได้จะเป็น
Network IP วิธีนี้หนังสือหลายเล่มมีอธิบายแล้ว
วิธีการหาร นำIP จากโจทย์ที่ให้มา ตั้งหารด้วยจำนวน IP ที่มีได้ใน Subnet เช่น
192.168.22.50/30 ให้นำเอาตัวเลข 50 หารด้วย 4 ดังด้านล่าง 



เมื่อได้Netwok IP แล้ว ก็จะได้คำตอบเช่นเดียวกับด้านบน เนื่องจากเรารู้อยู่แล้วว่า /30 ใน 1 subnet จะมี
จำนวน IP ทั้งหมด 4 ตัวจากตาราง ดังที่ได้กล่าวมาแล้ว

Ex.2 192 .168.5.33/27 which IP address should be assigned to the PC host ?
A.192.168.5.5
B.192.168.5.32
C. 192.168.5.40
D. 192.168.5.63
E. 192.168.5.75
จากโจทย์/27 จะหมายถึง
11111111 . 11111111 . 11111111 . 111/XXXX X = mask 27 bit แรก ต้องเป็นเลข 1 ส่วน 5
bit หลัง เป็นอะไรก็ได้
/27 เมื่อแปลงเป็นเลขฐานสิบจะได้255 . 255 . 255 . 224

หรือจะคิดแบบลัด ตามตาราง ดูบรรทัดที่4 จะหมายถึงผลบวกของ bit ใน 8 bit สุดท้ายครับ 111 ก็คือ
128+64+32 = 224
เมื่อ ได้Subnet Mask แล้ว เราก็จะรู้ว่ามีจำนวน IP ต่อ Subnet เท่ากับ 32 หรือจะดูจากที่เขียนไว้ด้านบน
ของ 224 ก็คือ 32 นั่นเอง
จากโจทย์192 .168.5.33/27 จะใช้วิธีไหนก็ได้หาตัว Network มาให้ได้ก่อน
192.168.5.33/27 หมายถึง 192.168.5.32 - 192.168.5.63
โดย IP ตัวแรกจะเป็น Network IP ( 192.168.5.32 ) และ IP ตัวสุดท้ายจะเป็น Broadcast IP (
192.168.5.63 ) ซึ่งไม่สามารถใช้set ให้แก่PC ได้ ดังนั้นจะเหลือ IP ที่สามารถ Set ให้แก่PC ได้คือ
192.168.5.33 - 192.168.5.62
คำตอบจึงเป็นข้อ 192.168.5.40





*******อ้างอิง คำนวณ IP Address และ subnet mask



ไม่มีความคิดเห็น:

แสดงความคิดเห็น