วันพฤหัสบดีที่ 26 พฤศจิกายน พ.ศ. 2558

IP Adress

หมายเลข IP Address คือ?

IP Address คือหมายเลขประจำเครื่องที่ต้องกำหนดให้กับเครื่องคอมพิวเตอร์ทุกเครื่องและ อุปกรณ์ทุกชิ้น ในเครือข่ายเน็ตเวิร์ค โดยมีข้อแม้ว่าหมายเลข IP Address ที่จะกำหนดให้กับคอมพิวเตอร์ทุกเครื่องหรืออุปกรณ์ต่างๆ จะต้องไม่ซ้ำซ้อนกัน ซึ่งเมื่อกำหนดหมายเลข IP Address ได้อย่างถูกต้องจะช่วยให้คอมพิวเตอร์ทุกเครื่องและ อุปกรณ์ต่างๆในเครือข่าย รู้จักกันรวมถึงสามารถรับส่งข้อมูลไปมาระหว่างกันได้อย่างถูกต้อง โดย IP Address จะเป็น ตัวอ้างอิงชื่อที่อยู่ของคอมพิวเตอร์แต่ละเครื่อง ตัวอย่างเช่น หากคอมพิวเตอร์ A ต้องการส่งไฟล์ข้อมูลไปให้ คอมพิวเตอร์ B คอมพิวเตอร์ A จะต้องรู้จักหรือมองเห็นคอมพิวเตอร์ B เสียก่อน โดยการอ้างอิงหมายเลข IP Address ของคอมพิวเตอร์ B ให้ถูกต้อง จากนั้นจึงอาศัยโปรโตคอลเป็นตัวรับส่งข้อมูลระหว่างทั้ง 2 เครื่อง





 IP Address จะประกอบไปด้วยตัวเลขจำนวน 4 ชุด ระหว่างตัวเลขแต่ละชุดจะถูกคั่นด้วยจุด “.” เช่น 10.106.59. โดยคอมพิวเตอร์จะแปลงค่าตัวเลขทั้ง 4 ชุดให้กลายเป็นเลขฐาน 2 ก่อนจะนำค่าที่แปลงได้ไปเก็บลง เครื่องทุกครั้ง และนอกจากนี้หมายเลข IP Address ยังแบ่งออกเป็น 2 ส่วนดังนี้
1.ส่วนที่ใช้เป็นหมายเลขเครือข่าย (Network Address)
 2.ส่วนที่ใช้เป็นหมายเลขเครื่อง (Host Address)

ซึ่งหมายเลขทั้ง 2 ส่วนนี้สามารถแบ่งออกตามลักษณะการใช้งานได้ 5 Class ด้วยกันได้แก่ Class A, B, C, D และ E สำหรับ Class D และ E ทางหน่วยงาน InterNIC (Internet Network Information Center: หน่วยงานที่ ได้รับการจัดตั้งจากรัฐบาลสหรัฐ ซึ่งทำหน้าที่เกี่ยวกับการออกมาตรฐานและจัดสรรหมายเลข IP Address ให้กับ คอมพิวเตอร์ในเครือข่ายทั่วโลก) ได้มีการประกาศห้ามใช้งาน
Class A หมายเลข IP Address จะอยู่ในช่วง 0.0.0.0 ถึง 127.255.255.255 มีไว้สำหรับจัดสรรให้กับ องค์กรขนาดใหญ่ที่มีคอมพิวเตอร์เชื่อมต่อภายในเครือ ข่ายจำนวนมากๆ
Class B หมายเลข IP Address จะอยู่ในช่วง 128.0.0.0 ถึง 191.255.255.255 มีไว้สำหรับจัดสรรให้กับ องค์กรขนาดกลาง ซึ่งสามารถเชื่อมต่อคอมพิวเตอร์ในเครือข่ายได้มากถึง 65,534 เครื่อง
Class C หมายเลข IP Address จะอยู่ในช่วง 192.0.0.0 ถึง 223.255.255.255 มีไว้สำหรับจัดสรรให้กับ องค์กรขนาดเล็กและใช้กับคอมพิวเตอร์ส่วนใหญ่ในเครือ ข่ายอินเตอร์เน็ตสามารถต่อเชื่อมกับคอมพิวเตอร์ใน เครือข่ายได้ 254 เครื่อง
Class D หมายเลข IP Address จะอยู่ในช่วง 224.0.0.0 ถึง 239.255.255.255 สำหรับหมายเลข IP Address ของ Class นี้มีไว้เพื่อใช้ในเครือข่ายแบบ Multicast เท่านั้น
Class E หมายเลข IP Address จะอยู่ในช่วง 240.0.0.0 ถึง 254.255.255.255 สำหรับหมายเลข IP Address ของ Class นี้จะเก็บสำรองไว้ใช้ในอนาคต ปัจจุบันจึงยังไม่ได้มีการนำมาใช้งาน



Public IP และ Private IP แตกต่างกัน?
บนเครือข่ายอินเตอร์เน็ตเราจะได้รับการจัดสรร IP Address จากผู้ให้บริการอินเตอร์เน็ต (ISP: Internet Service Providers) ที่ใช้อยู่ ซึ่งเป็น IP Address ของจริงหรือที่เรียกว่า “Public IP” แต่สำหรับการต่อเครือข่าย เพื่อใช้งานภายในบ้านหรือออฟฟิศต่างๆ เราจะใช้ IP Address ของปลอม หรือที่เรียกว่า “Private IP” ซึ่ง Class ที่ นิยมใช้กันก็คือ Class C ที่อยู่ในช่วง 192.168.0.0 ถึง 192.168.255.0 โดยผู้ใช้หรือผู้ดูแลระบบจะสามารถเป็นผู้ กำหนดหมายเลข IP Address แบบ Private IP ด้วยตนเองได้

http://www.prasansoft.com/images/web-obtain%20IP.jpg





            Public IP Private IP IPConfio คำสั่งสำหรับเรียกดูหมายเลข IP Address ภายในเครื่อง
 คำสั่ง IPConfig เป็นคำสั่งที่ใช้สำหรับเรียกดูหมายเลข IP Address ของเครื่องที่ท่านใช้งานอยู่ ซึ่งถ้าหากท่าน ไม่ทราบว่าหมายเลข IP Address ของเครื่องที่ท่านใช้งานอยู่นั้นเป็นหมายเลขอะไรหรือมีรายละเอียดอะไรที่ เกี่ยวข้องกับหมายเลข IP Address บ้าง ก็สามารถใช้คำสั่งนี้เรียกดูผ่านหน้าต่าง Command Prompt ได้เลยครับ โดยเข้าไปที่
 1.ถ้าหากต้องการดูหมายเลข IP Address ซึ่งบอกรายละเอียดทั้งหมดก็สามารถดูได้โดยคลิกปุ่ม Start > Run > พิมพ์ cmd วรรค /k วรรค ipconfig วรรค /all จะได้ผลลัพธ์ออกมาดังรูป

http://www.varietypc.net/wp-content/uploads/2013/01/69205.gif


http://www.techf5.com/pic/static-ip-address.png

 และนอกจากนี้ยังมีตัวเลือกเพิ่มเติมที่นิยมใช้ร่วมกับคำสั่ง IPConfig ได้แก่
 ipconfig [/? | /all | /renew [adapter] | /release [adapter] | /flushdns | /displaydns | /registerdns | /showclassid adapter | /setclassid adapter [classid] ]

Options:
/? แสดง help ของคำสั่งนี้
/all แสดงรายละเอียดทั้งหมด
/release ยกเลิกหมายเลข IP ปัจจุบัน
/renew ขอหมายเลข IP ใหม่ ในกรณีที่เน็ตเวิร์คมีปัญหา เราอาจจะลองตรวจสอบได้โดยการใช้คำสั่งนี้ ซึ่งหากคำสั่ง นี้ทำงานได้สำเร็จ แสดงว่าปัญหาไม่ได้มาจากระบบเครือข่าย แต่อาจจะเกิดจากซอฟท์แวร์ของเรา
/flushdns ขจัด DNS Resolver ออกจาก cache.
/registerdns ทำการ Refreshes DHCP ทั้งหมด และ registers DNS names ใหม่
/displaydns แสดง DNS Resolver ทั้งหมดที่มีในอยู่ Cache.
 /showclassid แสดง class IDs ทั้งหมดที่ DHCP ยอมให้กับการ์ดแลนใบนี้
 /setclassid แก้ไข dhcp class id.




การใช้คำสั่ง Ping ตรวจสอบการเชื่อมต่อเครือข่าย
 คำสั่ง Ping เป็นคำสั่งที่ใช้ในการตรวจสอบการเชื่อมต่อกับเครือข่ายระหว่างคอมพิวเตอร์แต่ละเครื่องที่อยู่ใน เครือข่าย โดยคำสั่ง Ping จะส่งข้อมูลที่เป็นแพ็คเกจ 4 ชุดๆละ 32 Byte ไปยังคอมพิวเตอร์ปลายทางที่ต้องการ ตรวจสอบ หากมีการตอบรับกลับมาจากคอมพิวเตอร์เป้าหมายก็แสดงว่าการเชื่อมต่อเครือข่าย ยังเป็นปกติแต่หากไม่ มีการตอบรับกลับมาก็แสดงว่าคอมพิวเตอร์ปลายทางหรือเครือข่ายอยู่ใน ช่วงหนาแน่น ดังนั้นจะเห็นว่าคำสั่ง Ping มี ประโยชน์อย่างมากในการตรวจสอบสถานการณ์เชื่อมต่อเครือข่ายเบื้องต้นได้เป็น อย่างดี
ขั้นตอนการเรียกใช้งานมีดังนี้
1.คลิกปุ่ม Start > Run > พิมพ์ cmd เพื่อเรียกใช้งาน Command Prompt ดังรูป

http://micropendous.googlecode.com/svn/trunk/Pictures/Start_Run_CommandPrompt.jpg

2.เมื่อปรากฏหน้าต่าง Command Prompt ให้พิมพ์คำสั่ง ping ตามด้วยหมายเลข IP Address ของเครื่อง คอมพิวเตอร์ที่ต้องการเข้าไปตรวจสอบลงไป จากนั้นกดปุ่ม Enter
3.หากมีการตอบรับกลับมาจากคอมพิวเตอร์ปลายทาง จะปรากฏคำสั่งเหมือนในกรอบสีแดง แสดงว่าคอมพิวเตอร์ทั้ง 2 เครื่องสามารถติดต่อสื่อสารกันได้ตามปกติ
4.แต่ถ้าปรากฏคำสั่ง “Request timed out” นั่นแสดงว่าคอมพิวเตอร์ทั้ง 2 เกิดปัญหาขัดข้องไม่สามารถ ติดต่อสื่อสารถึงกันได้ซึ่งจะต้องทำการตรวจสอบการเชื่อมต่อเครือข่ายรวมถึงการตั้งค่าต่างๆให้ถูก ต้อง แล้วลองใช้ คำสั่ง Ping ตรวจสอบอีกครั้ง




ตัวเลือกเพิ่มเติมที่นิยมใช้ร่วมกันกับคำสั่ง Ping
 Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k hostlist] | [-w timeout] target name

Options:
-t Ping ไปยัง Host ตามที่ระบุเรื่อยๆ จนกว่าจะสั่งยกเลิกโดยกดแป้น Ctrl-C.และหากต้องการดูสถิติให้กดแป้น CtrlBreak
 -a เปลี่ยนหมายเลข IP Address ของ Host เป็นชื่อแบบตัวอักษร
-n count Ping แบบระบุจำนวน echo ที่จะส่ง -l size กำหนดขนาด buffer
-f ตั้งค่าไม่ให้แยก flag ใน packet.
 -i TTL Ping แบบกำหนด Time To Live โดยกำหนดค่าตั้งแต่ 1-255 -v TOS กำหนดประเภทของบริการ (Type of service)
 -r count Ping แบบให้มีการบันทึกเส้นทางและนับจำนวนครั้งในการ hops จนกว่าจะถึงปลายทาง
-s count Ping แบบนับเวลาในการ hop แต่ละครั้ง
-j host-list Loose source route along host-list.
-k host-list Strict source route along host-list.
-w timeout Ping แบบก าหนดเวลารอคอยการตอบรับ



วิธีสังเกต ว่า IP Address นี้อยู่ Class อะไร
ถ้า Byte แรก ซ้ายสุดเป็น ตัวเลข 1-126 แสดงว่าเป็นหมายเลข IP Address ที่อยุ่ใน Class A (IP address 127 นั่น จะเป็น Loopback Address ของ Class นี้น่ะครับ )
ถ้า Byte แรก ซ้ายสุดเป็น ตัวเลข 128-191 แสดงว่าเป็นหมายเลข IP Address ที่อยุ่ใน Class B
ถ้า Byte แรก ซ้ายสุดเป็น ตัวเลข 192-223 แสดงว่าเป็นหมายเลข IP Address ที่อยุ่ใน Class C
ส่วน 224 ขึ้นไปจะเป็น Multicast Address ที่กล่าวไว้ข้างต้น

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



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 จนครบ

 คือถ้าสมมุติเราได้ IP ที่มีชุดหมายเลข Network เป็น 20.0.0.0 ซึ่งทางเทคนิคจะเห็นว่าเป็นหมายเลข IP Class A ที่ เป็น Private IP Address สามารถกำหนดให้เครื่อง ได้ตั้งแต่หมายเลข 20.0.0.1 - 20.255.255.254 โดยมี หมายเลข Network เป็น 20.0.0.0 และหมายเลข Broadcast เป็น 20.255.255.255 แล้วถ้าเรานำมาใช้จริงก็จะเห็นว่ามันจะเห็นกันทั้งหมดเพราะว่า มันอยู่ใน network เดียวกัน เพราะฉะนั้นเวลาเราจะทำ subnet เราก็แบ่งไปตามที่เราต้องการเช่น เราอยากให้ byte ที่ 2 เป็นแผนก byte ที่ 3 เป็นหน่วยในแผนกประโยชน์ของ subnet ก็คือเผื่อทำให้การบริหาร จัดการมีประสิทธิภาพและเพื่อประโยชน์ ในด้าน ระบบความปลอดภัยของข้อมูล NAT เป็นการแก้ปัญหาจากการที่อินเตอร์เน็ตมีการขยายตัวอย่างรวดเร็ว ทำให้ IP ไม่เพียงพอต่อการใช้งาน โดย NAT สามารถแปลง IP หลายๆ ตัวที่ใช้ภายในเครือข่ายให้ติดต่อกับเครือข่ายอื่นโดยใช้ IP เดียวกัน ซึ่งวิธีการท างานก็คือ เมื่อมีการเริ่มทำงาน มันจะสร้างตารางไว้เก็บข้อมูล IP address ของเครื่องในเครือข่ายภายในที่ส่ง packet ผ่าน NAT device และจากนั้นมันก็จะสร้างตารางไว้เก็บข้อมูลหมายเลขพอร์ต ที่ถูกใช้ไปโดย outside IP address เมื่อมีการส่ง packet จากเครือข่ายภายในไปยังเครือข่ายภายนอก NAT device จะมีกระบวนการทำงานคือ

 1. มันจะบันทึกข้อมูล source IP adress และ source port number ไว้ในตารางที่เกี่ยวข้อง
 2. มันจะแทนที่ IP ของ packet ด้วย IP ขาออกของ NAT device เอง (ในที่นี้คือ 203.154.207.76)
 3. มันจะ assign หมายเลขพอร์ตใหม่ให้กับ packet และบันทึกค่าพอร์ตนี้ไว้ในตาราง และกำหนดค่านี้ลงไปใน source port number ของ packet นั้น
4. จากนั้นจะคำนวณหา IP, TCP checksum อีกครั้งเพื่อตรวจสอบความถูกต้อง และ เมื่อ NAT device ได้รับ packet ย้อนกลับมาจาก external network มันจะตรวจสอบ destination port number ของ packet นั้นๆ แล้วนำมาเปรียบเทียบกับข้อมูล source port number ในตารางที่บรรจุข้อมูลไว้ถ้า เจอข้อมูลที่ตรงกันมันก็จะเขียนทับ destination port number, destination IP address ของ pakcet นั้นๆ แล้ว จึงส่ง packet นั้นไปยังเครื่องอยู่ภายในเครือข่ายภายในที่เป็นผู้สร้าง packet นี้ขึ้นมาในครั้งแรก

 prefer คือ DNS ตัวแรกคับจะใช้ในการ resolve เป็นอันดับแรก ถ้าใช้งานได้ก็จะใช้อันนี้ประจำ หากใช้งานไม่ได้ก็จะ ใช้ตัวที่สอง ที่เรียกว่า alternate dns
 DNS Server
 Domain Name Service Server

ยกตัวอย่าง เวลาเราจะเข้าเว็ปไซต์ www.google.co.th เราก็จะจำง่ายเราจำแต่คำว่า google.co.th แต่การทำงาน คอมพิวเตอร์นั้นมันไม่ได้ติดต่อกันด้วย google.co.th แต่มันติดต่อกันด้วย IP Address ดังนั้น DNS Server จึงทำหน้าที่แปลงจากชื่อ google.co.th เป็น IP ที่มันค้นหาจากฐานข้อมูล (ฐานข้อมูลจะมีการ เชื่อมต่อกันทั่วโลก)


อย่างเช่น www.google.co.th แปลงเป็นไอพีได้ 10.11.1.20 ท ถ้าเราจำได้ว่า IP address ของเว็ป ไซต์คืออะไร DNS Server ก็ไม่มีความจำเป็น เราก็พิมพ์ไปได้เลย เช่น www.10.11.120 น่ะครับ Primary DNS หรือ Preferred DNS ก็คือชื่อ Domain Name Service ตัวหลักที่เราจะขอใช้บริการ (จำเป็นต้องมี เพราะเราจำชื่อ IP ของเว็ปต่างๆ ไม่ได้) Secondary DNS หรือ Alternat DNS ก็คือชื่อDomain Name Service ตัวสำรอง (เหมือนทางเบี่ยงเวลาสะพาน ขาด หรือชำรุด) ไม่ต้องมีก็ได้ถ้ามั่นใจว่า DNS หลักไม่มีวันล่ม