IP address ตอนที่ 7 - IPv4 Address ที่ถูกจองเอาไว้
บทความ CCNA นี้ ผมคิดว่าน่าจะเป็นประโยชน์กับหลายๆ ท่านนะครับ
สำหรับท่านใดที่ยังไม่แม่นในเรื่อง Class A, B และ C ของ IP address ท่านสามารถเข้าไปศึกษาตาม link นี้ ได้ก่อน แล้วค่อยกลับมาที่ page นี้นะครับ หัวข้อ: IP address ตอนที่ 6 - ลึกอีกนิดกับ Class ของ IP และ loopback address (127.0.0.1/localhost)
IPv4 address ที่ถูกจองเอาไว้ไม่ให้นำมากำหนดให้กับ device หรืออุปกรณ์ในเครือข่าย มีดังนี้: - Network address - Directed broadcast address - Local broadcast address (255.255.255.255) - Local loopback address (127.0.0.1) - All zeros address (0.0.0.0)
- Network Address: Network address เป็นวิธีการที่เป็นมาตรฐานในการอ้างอิงถึง network โดย IP address ที่มีตำแหน่งของ host bit เป็นเลขฐานสอง 0 หมดทุก bit จะถูกจองไว้สำหรับให้เป็น network address
ตัวอย่าง network address ใน Class A ใน network ของ Class A จะเน้นที่ 8 bit แรกเป็น network และ 24 bit หลังเป็น host เช่น 20.X.X.X = 00010100.xxxxxxxx.xxxxxxxx.xxxxxxxx โดย - 20 หรือ 00010100 จะอยู่ในตำแหน่งของ network เมื่อ x = 0 หรือ 1 และ X = 0 ถึง 255
ดังนั้น 20.0.0.0 หรือ 00010100.00000000.00000000.00000000 ซึ่งเป็น IP address เบอร์แรกของ range จะเป็น network address ที่มี host ได้ตั้งแต่ 20.0.0.1 ไปจนถึง 20.255.255.254 (สำหรับ 20.255.255.255 หรือ IP address เบอร์สุดท้ายของ range จะเป็น Directed broadcast address ซึ่งจะกล่าวในลำดับถัดไปครับ) โดย host ทุกๆ host ที่อยู่ใน network 20.0.0.0 จะต้องมี network bit ที่เหมือนๆ กันทั้งหมด นั่นคือ host ทุกๆ host จะต้องมี 8 bit แรกที่เหมือนกัน คือ 00010100
ตัวอย่าง network address ใน Class ฺB เช่น 172.16.0.0 (16 bit แรกเป็น network bit และ 16 bit หลังเป็น host bit) ตัวอย่าง network address ใน Class C เช่น 192.168.1.0 (24 bit แรกเป็น network bit และ 8 bit หลังเป็น host bit)
Network IP address นี้จะเป็น address ที่อยู่ใน IP routing table ของ router โดยเมื่อ router ได้รับ IP packet มา มันจะเข้าไปตรวจสอบ destination IP address ที่อยู่ใน IP header แล้วนำมาเปรียบเที่ยบกับ network address ที่อยู่ใน IP routing table ของมัน ว่า destination IP address นั้น match กับ network address ไหนมากที่สุด และจะ forward IP packet นั้นออกไปบน interface ที่สอดคล้องกับ network address นั้นๆ
- Directed Broadcast Address: Broadcast IP address ของ network เป็น address ที่พิเศษ (special address) สำหรับ network แต่ละ network ที่จะทำให้สามารถสื่อสารไปยัง host ทุกๆ host ที่อยู่ภายใน network เดียวกันได้ ซึ่งในการส่งข้อมูลไปยัง host ทุกๆ host ที่อยู่ใน network เดียวกันนั้น, host จะสามารถส่ง packet เพียงแค่ packet เดียวได้ ซึ่งเป็น packet ที่ถูกระบุ destination address เป็น broadcast address ของ network โดย broadcast address จะเป็น address สูงสุด หรือเป็น address เบอร์สุดท้ายของ range ซึ่งก็คือ IP address ที่มีตำแหน่งของ host bit เป็น 1 ทั้งหมดทุกๆ bit นั่นเอง
ตัวอย่าง broadcast address ใน Class A (8 bit แรกเป็น network bit และ 24 bit หลังเป็น host bit) เช่นใน network 20.X.X.X หรือ 00010100.xxxxxxxx.xxxxxxxx.xxxxxxxx จะมี broadcast address คือ 20.255.255.255 หรือ 00010100.11111111.11111111.11111111 ซึ่ง address ที่มีตำแหน่งของ host bit เป็น 1 ทั้งหมดทุกๆ bit นี้จะถูกอ้างถึงเป็น directed broadcast address
ตัวอย่าง broadcast address ใน Class ฺB เช่น 172.16.255.255 (16 bit แรกเป็น network bit และ 16 bit หลังเป็น host bit) ตัวอย่าง broadcast address ใน Class C เช่น 192.168.1.255 (24 bit แรกเป็น network bit และ 8 bit หลังเป็น host bit)
Directed broadcast address สามารถที่จะถูก route ได้ แต่การ routing directed broadcast ไม่ได้เป็นพฤติกรรมที่เป็น default ซึ่งผมขอขยายความเพิ่มดังนี้ครับ โดยปกติแล้ว router จะไม่ forward IP packet ที่มี destination address เป็น broadcast address (เพราะ router เกิดมาเพื่อแบ่ง broadcast domain) แต่หากเราต้องการให้ router ทำการ forward หรือทำการส่งผ่าน IP packet ที่มี destination เป็น directed broadcast address ไปยัง subnet ปลายทางแล้ว ก็สามารถที่จะทำได้ แต่ต้องไป manual configure ด้วย command "ip directed-broadcast" บน interface ของ router เองโดยเฉพาะนะครับ
ตัวอย่างการ enable IP Directed Broadcast บน Interface ของ router เพื่อให้ router ยอม forward IP packet ที่มี destination address เป็น directed broadcast address
1. ตรวจสอบค่า default ของ router เกี่ยวกับ feature "IP Directed Broadcast"
R2#show ip interface fa0/1 | include Directed broadcast Directed broadcast forwarding is disabled R2#
ซึ่งจะพบว่า feature "IP Directed Broadcast" ถูก disable อยู่ โดย default นั่นก็หมายความว่า โดย default แล้ว router ตัวนี้จะไม่ forward directed broadcast IP packet
2. Enable feature "IP Directed Broadcast" บน interface ของ router
R2#conf t R2(config)#interface FastEthernet 0/1 R2(config-if)#ip directed-broadcast R2(config-if)#end R2#
3. ตรวจสอบ feature "IP Directed Broadcast" บน interface ของ router อีกครั้งหนึ่ง
R2#show ip interface fa0/1 | include Directed broadcast Directed broadcast forwarding is enabled R2#
สำหรับวิธีการทดสอบอย่างละเอียดนั้น ถ้าผมพอมีเวลา จะเขียนให้ในหัวข้อใหม่นะครับ แต่ในเบื้องต้น หากใครต้องการทดสอบด้วยตัวเองแล้ว แนะนำให้ทำการ debug หรือ capture packet ดูนะครับ เพราะถ้ายังไม่ได้ enable feature "IP Directed Broadcast" แล้ว เวลาคุณ ping ไป (เช่น ping 20.255.255.255) แล้ว คุณอาจจะได้รับการ reply กลับ แต่ไม่ได้จากวงของ directed broadcast นั้นๆ โดยตรงนะครับ เพราะ router ที่ reply กลับมาหาคุณจะเป็น connected router ที่ต่อโดยตรงกับคุณแทน (มันทำตัวเป็น proxy) ดังนั้นเพื่อให้แน่ใจว่าคุณได้รับ reply จาก destination ที่เป็น directed broadcast วงนั้นจริง ขอให้ debug หรือไม่ก็ capture packet นะครับ
- Local ฺBroadcast Address (255.255.255.255): ถ้าอุปกรณ์ IP ต้องการที่จะสื่อสารกับอุปกรณ์ทั้งหมดที่อยู่บน local network (บน LAN วงเดียวกัน) มันจะทำการ set destination address ให้เป็น bit 1 ทั้งหมดทุกๆ bit (255.255.255.255) และจากนั้นจึงส่ง packet ออกไป
ตัวอย่างเช่น host ที่ไม่รู้จัก หมายเลข network ของพวกมันเอง และมันกำลังถามหา server อยู่ มันจะใช้ destination address เป็น 255.255.255.255 เช่น client ที่ยังไม่มี IP address ต้องการร้องขอ IP address จาก DHCP server มันจะส่ง DHCP Discover และ Request message ไปยัง DHCP Server ด้วย destination address ที่เป็นแบบ local broadcast address (255.255.255.255) ดังภาพตัวอย่างข้างล่าง
ภาพแสดงถึง "Client พยายามส่ง DHCP message เพื่อร้องขอ IP address จาก DHCP server"
Local broadcast address จะไม่สามารถถูก route ได้ ซึ่งผมขอขยายความเพิ่มดังนี้ครับ โดยปกติแล้ว router จะไม่ forward IP packet ที่มี destination address เป็น broadcast address (เพราะ router เกิดมาเพื่อแบ่ง broadcast domain) และโดยเฉพาะสำหรับ Local Broadcast Address แล้วนั้น, router จะไม่ forward IP packet ที่มี destination 255.255.255.255 ข้ามผ่านตัวมันไปยัง destination subnet ใดๆ อย่างเด็ดขาด มิฉนั้้นแล้ว เราจะมี router ไปเพื่ออะไร?
สรุปข้อแตกต่างระหว่าง Directed Broadcast กับ Local Broadcast Address:
- สำหรับ Directed Broadcast Address นั้น client จะรู้ว่าตนเองอยู่ใน network หมายเลขอะไร และ address ประเภทนี้สามารถที่จะถูก route ได้ - สำหรับ Local Broadcast Address นั้น client จะไม่รู้ว่าตนเองอยู่ใน network หมายเลขอะไร และ address ประเภทนี้จะไม่สามารถถูก route ได้
- Local Loopback Address (127.0.0.1): Local Loopback Address ถูกใช้เพื่อที่จะให้ system ทำการส่ง message ไปยังตัวของมันเอง เพื่อที่จะทำการ testing โดย loopback address จะสร้างวิธีลัด (shortcut method) สำหรับ TCP/IP application และ services ที่ run อยู่บน device ตัวเดียวกัน เพื่อที่จะสื่อสารซื่งกันและกัน ซึ่งโดยปกติแล้ว local loopback address จะเป็น 127.0.0.1
ตัวอย่างเช่น Web Server และ Web Client run อยู่บน device ตัวเดียวกัน จากนั้นให้ทำการเปิด web browser (เช่น Internet Explorer) แล้วกรอก URL คือ "https://127.0.0.1" เป็นต้น
- All Zeros Address (0.0.0.0): Address 0.0.0.0 แสดงให้เห็นถึง host ที่อยู่ใน network นี้ และ address นี้จะถูกใช้เป็น source address เท่านั้น
ตัวอย่างเช่น ในช่วงของการร้องขอ IP address นั้น client จะทำการกำหนด source IP address ของมันเป็น 0.0.0.0 ไปก่อนบน DHCP Discover และ Request message จนกว่ามันจะได้ IP address ที่สามารถใช้งานได้จริง ดังตัวอย่างในภาพข้างบน ที่แสดงถึง "Client พยายามส่ง DHCP message เพื่อร้องขอ IP address จาก DHCP server"
============================================== เสริมให้อีกหน่อยครับ
หากเราอยากรู้ว่า subnet mask อะไร หรือ prefix อะไร รองรับจำนวน IP address ที่สามารถ assign ให้กับ host ได้เท่าไหร่ ให้เอา 2 ยกกำลังจำนวน bit ที่เป็น host แล้ว ลบออกด้วย 2
2^bit_host - 2
เช่น /27 หรือ 255.255.255.224 ดังนั้น bit ที่เป็น host = 5 bit (/32 - /27 = 5 bit) ดังนั้นจะได้ว่า จำนวน host ที่เป็นไปได้ หรือจำนวน IP address ที่สามารถ setup ให้กับ host ได้ จะมีจำนวนเท่ากับ:
2^5 - 2 = 32 - 2 = 30 IP address หรือ 30 host
2 ยกกำลัง เมื่่อ 2 คือ ความน่าจะเป็น มี 2 ค่า คือ ไม่ 0 ก็ 1 จากเลขฐาน 2
ลบออกด้วย 2 คือ Network Address และอีกหนึ่ง address คือ Broadcast Address - Network Address ซึ่งเป็น address เบอร์แรกของ range ที่มี bit ของ host เป็น 0 ทั้งหมด - Broadcast Address คือ address เบอร์สุดท้ายของ range ที่มี bit ของ host เป็น 1 ทั้งหมดทุก bit
โดยทั้ง Network Address และ Broadcast Address จะไม่สามารถ assign ให้กับ host ได้เลย ถ้าอยากรู้ ลองกำหนด address ทั้ง 2 เบอร์นี้บน Windows สิ แล้วมันฟ้องว่า
ตึ๊ง!!!! "Address ที่นายใช้อยู่มันใช้ไม่ได้นะจ๊ะ"
สำหรับการแบ่ง subnet ด้วยหลักการของ Bit to Borrow ท่านสามารถไปอ่านได้ตาม link นี้ครับ
หวังว่าบทความนี้จะช่วยให้ท่านที่สับสนกับ address เหล่านี้ได้เคลียร์บ้างไม่มากก็น้อยนะครับ
ขอบคุณครับ โก้-ชัยวัฒน์ (KoChaiwat)
Create Date : 06 สิงหาคม 2557 |
| |
|
Last Update : 26 มีนาคม 2561 9:38:24 น. |
| |
Counter : 19213 Pageviews. |
| |
|
|