มีซับเน็ต IP เพื่อให้เราเตอร์เลือกปลายทางที่เหมาะสมสำหรับแพ็กเก็ต คุณสามารถใช้เครือข่ายย่อย IP เพื่อแยกเครือข่ายที่ใหญ่ขึ้นด้วยเหตุผลเชิงตรรกะ (ไฟร์วอลล์ ฯลฯ ) หรือความต้องการทางกายภาพ (โดเมนออกอากาศเล็ก ฯลฯ )
อย่างไรก็ตามเพียงแค่ใส่เราเตอร์ IP ใช้เครือข่ายย่อย IP ของคุณในการตัดสินใจกำหนดเส้นทาง ทำความเข้าใจว่าการตัดสินใจเหล่านั้นทำงานอย่างไรและคุณสามารถเข้าใจวิธีการวางแผนเครือข่ายย่อย IP
นับถึง 1
หากคุณมีความเชี่ยวชาญในรูปแบบไบนารี (ฐาน 2) แล้วคุณสามารถข้ามส่วนนี้ได้
สำหรับพวกคุณที่เหลืออยู่: ทำให้คุณอับอายเพราะไม่คล่องแคล่วในระบบเลขฐานสอง!
ใช่ - นั่นอาจจะรุนแรงสักหน่อย มันเป็นเรื่องง่ายมากที่จะเรียนรู้ที่จะนับเป็นไบนารี่และเรียนรู้ทางลัดในการแปลงไบนารี่เป็นทศนิยมและย้อนกลับ คุณควรรู้วิธีการทำ
การนับเลขฐานสองนั้นง่ายมากเพราะคุณต้องรู้วิธีนับ 1 เท่านั้น!
ลองนึกถึง "odometer" ของรถยกเว้นว่าไม่เหมือนกับเครื่องวัดระยะทางแบบดั้งเดิมแต่ละหลักสามารถนับได้สูงสุด 1 จาก 0 เมื่อรถสดจากโรงงานเครื่องวัดระยะทางจะอ่าน "00000000"
เมื่อคุณขับไมล์แรกของคุณแล้วมาตรวัดระยะทางจะอ่าน "00000001" จนถึงตอนนี้ดีมาก
เมื่อคุณขับไมล์ที่สองของคุณเลขตัวแรกของเครื่องวัดระยะทางย้อนกลับไปที่ "0" (เนื่องจากค่าสูงสุดคือ "1") และหลักที่สองของเครื่องวัดระยะทางจะเลื่อนไปที่ "1" ทำให้เครื่องวัดระยะทางอ่าน " 00000010" ดูเหมือนว่าหมายเลข 10 ในรูปแบบเลขฐานสิบ แต่จริงๆแล้วคือ 2 (จำนวนไมล์ที่คุณขับรถมาจนถึงตอนนี้) ในรูปแบบเลขฐานสอง
เมื่อคุณขับไมล์ที่สามแล้วมาตรวัดระยะทางจะอ่าน "00000011" เนื่องจากตัวเลขตัวแรกของมาตรวัดระยะทางจะเปลี่ยนอีกครั้ง ตัวเลข "11" ในรูปแบบเลขฐานสองจะเหมือนกับเลขทศนิยม 3
ในที่สุดเมื่อคุณขับไมล์ที่สี่ของคุณทั้งสองหลัก (ซึ่งอ่าน "1" ในตอนท้ายของไมล์ที่สาม) ย้อนกลับไปที่ตำแหน่งศูนย์และหลักที่สามม้วนขึ้นไปที่ตำแหน่ง "1" ทำให้เรา " 00000100" นั่นคือการแทนเลขฐานสองของเลขทศนิยม 4
คุณสามารถจดจำสิ่งเหล่านี้ได้หากคุณต้องการ แต่คุณเพียงแค่ต้องเข้าใจว่าเครื่องวัดระยะทางเล็ก ๆ "หมุน" เมื่อจำนวนที่นับนั้นใหญ่ขึ้นเท่าใด มันเหมือนกับการทำงานของเครื่องวัดระยะทางทศนิยมแบบดั้งเดิมยกเว้นว่าตัวเลขแต่ละหลักจะต้องเป็น "0" หรือ "1" ใน "binary odometer" ของเราเท่านั้น
ในการแปลงเลขฐานสิบเป็นเลขฐานสองคุณสามารถหมุนเครื่องวัดระยะทางไปข้างหน้าทำเครื่องหมายโดยทำเครื่องหมายนับเสียงดัง ๆ จนกว่าคุณจะหมุนเป็นจำนวนครั้งเท่ากับจำนวนทศนิยมที่คุณต้องการแปลงเป็นเลขฐานสอง อะไรก็ตามที่ปรากฏบนเครื่องวัดระยะทางหลังจากที่การม้วนและการรีดนั้นจะเป็นการแสดงเลขฐานสองของจำนวนทศนิยมที่คุณนับได้
เมื่อคุณเข้าใจว่ามาตรวัดระยะทางหมุนไปข้างหน้าอย่างไรคุณก็จะเข้าใจว่ามันหมุนย้อนกลับได้อย่างไรเช่นกัน ในการแปลงเลขฐานสองที่แสดงบนเครื่องวัดระยะทางกลับเป็นทศนิยมคุณสามารถหมุนเครื่องวัดระยะทางกลับทีละหนึ่งติ๊กนับเสียงดังจนกระทั่งเครื่องวัดระยะทางอ่าน "00000000" เมื่อการนับและการรีดเสร็จสิ้นจำนวนสุดท้ายที่คุณพูดออกเสียงจะเป็นเลขทศนิยมของเลขฐานสองที่เครื่องวัดระยะทางเริ่มต้น
การแปลงค่าระหว่างไบนารีและทศนิยมด้วยวิธีนี้น่าเบื่อมาก คุณทำได้ แต่จะไม่มีประสิทธิภาพมากนัก มันง่ายกว่าที่จะเรียนรู้อัลกอริธึมเล็กน้อยเพื่อให้เร็วขึ้น
การกันอย่างรวดเร็ว: แต่ละหลักในเลขฐานสองเรียกว่า "บิต" นั่นคือ "b" จาก "ไบนารี" และ "มัน" จาก "หลัก" บิตเป็นเลขฐานสอง
การแปลงเลขฐานสองเช่นพูดว่า "1101011" เป็นทศนิยมนั้นเป็นกระบวนการง่ายๆที่มีอัลกอริธึมเล็กน้อยที่มีประโยชน์
เริ่มต้นด้วยการนับจำนวนบิตในเลขฐานสอง ในกรณีนี้มี 7 ทำ 7 ส่วนบนกระดาษ (ในใจของคุณในไฟล์ข้อความ ฯลฯ ) และเริ่มกรอกจากขวาไปซ้าย ในช่องด้านขวาสุดให้ป้อนหมายเลข "1" เพราะเราจะเริ่มต้นด้วย "1" เสมอ ในช่องถัดไปทางซ้ายให้ใส่ค่าสองเท่าในช่องทางด้านขวา (เช่น "2" ในช่องถัดไป "4" ในช่องถัดไป) และดำเนินการต่อไปจนกว่าช่องทั้งหมดจะเต็ม (คุณจะจำตัวเลขเหล่านี้ได้ซึ่งเป็นพลังของ 2 ในขณะที่คุณทำสิ่งนี้มากขึ้นเรื่อย ๆ ฉันดีถึง 131,072 ในหัวของฉัน แต่ฉันมักจะต้องใช้เครื่องคิดเลขหรือกระดาษหลังจากนั้น)
ดังนั้นคุณควรมีสิ่งต่อไปนี้บนกระดาษของคุณในช่องเล็ก ๆ ของคุณ
64 | 32 | 16 | 8 | 4 | 2 | 1 |
ถอดความบิตจากเลขฐานสองด้านล่างของช่องดังนี้:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 0 1 1
ตอนนี้เพิ่มสัญลักษณ์และคำนวณคำตอบสำหรับปัญหา:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
+ + + + + + =
ทำคณิตศาสตร์ทั้งหมดคุณควรมากับ:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
x 1 x 1 x 0 x 1 x 0 x 1 x 1
--- --- --- --- --- --- ---
64 + 32 + 0 + 8 + 0 + 2 + 1 = 107
แค่นั้นแหละ "1101011" ในทศนิยมคือ 107 มันเป็นเพียงขั้นตอนง่าย ๆ และคณิตศาสตร์ง่าย
การแปลงทศนิยมเป็นไบนารีนั้นง่ายดายและเป็นอัลกอริธึมพื้นฐานแบบเดียวกัน
สมมติว่าเราต้องการแปลงเลข 218 เป็นไบนารี เริ่มต้นทางด้านขวาของกระดาษเขียนหมายเลข "1" ทางซ้ายให้เพิ่มค่านั้นเป็นสองเท่า (เช่น "2") แล้วเลื่อนไปทางซ้ายของกระดาษเพิ่มค่าสุดท้ายเป็นสองเท่า หากจำนวนที่คุณกำลังจะเขียนมากกว่าจำนวนที่จะแปลงหยุดเขียน มิฉะนั้นให้เพิ่มจำนวนก่อนหน้าและเขียนต่อไป (การแปลงตัวเลขจำนวนมากเช่น 34,157,216,092 ไปเป็นไบนารีโดยใช้อัลกอริทึมนี้อาจค่อนข้างน่าเบื่อ แต่ก็เป็นไปได้อย่างแน่นอน)
ดังนั้นคุณควรมีกระดาษของคุณ:
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
คุณหยุดเขียนตัวเลขที่ 128 เพราะเพิ่มเป็นสองเท่า 128 ซึ่งจะให้ 256 คุณจะมีขนาดใหญ่กว่าจำนวนที่ถูกแปลง (218)
เริ่มจากหมายเลขซ้ายสุดเขียน "218" เหนือ (128) แล้วถามตัวเองว่า: "218 มีขนาดใหญ่กว่าหรือเท่ากับ 128" หากคำตอบคือใช่ให้ขีด "1" ด้านล่าง "128" ด้านบน "64" เขียนผลลัพธ์ของ 218 ลบ 128 (90)
ดูที่ "64" ถามตัวเองว่า: "มีขนาดใหญ่กว่าหรือเท่ากับ 64 64" ดังนั้นคุณต้องเขียน "1" ด้านล่าง "64" จากนั้นลบ 64 จาก 90 และเขียนข้างบน "32" (26)
เมื่อคุณไปที่ "32" คุณจะพบว่า 32 ไม่มากกว่าหรือเท่ากับ 26 ในกรณีนี้ให้เขียน "0" ด้านล่าง "32" คัดลอกหมายเลข (26) จากด้านบน 32 "ไปด้านบน" 16 "จากนั้นถามคำถามเดียวกันกับตัวเลขที่เหลือต่อไป
เมื่อคุณทำเสร็จแล้วคุณควรจะ:
218 90 26 26 10 2 2 0
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
1 1 0 1 1 0 1 0
ตัวเลขที่อยู่ด้านบนเป็นเพียงโน้ตที่ใช้ในการคำนวณและไม่ได้มีความหมายอะไรกับเรามากนัก อย่างไรก็ตามที่ด้านล่างคุณจะเห็นเลขฐานสอง "11011010" 218 ถูกแปลงเป็นไบนารี่เป็น "11011010"
ทำตามขั้นตอนง่าย ๆ เหล่านี้คุณสามารถแปลงเลขฐานสองเป็นทศนิยมและกลับมาอีกครั้งโดยไม่ต้องใช้เครื่องคิดเลข คณิตศาสตร์นั้นง่ายมากและสามารถจดจำกฎได้ด้วยการฝึกฝน
แยกที่อยู่
คิดว่าการกำหนดเส้นทาง IP เหมือนกับการส่งพิซซ่า
เมื่อคุณถูกขอให้ส่งพิซซ่าไปที่ "123 Main Street" มันชัดเจนสำหรับคุณในฐานะมนุษย์ที่คุณต้องการไปที่อาคารหมายเลข "123" บนถนนที่มีชื่อว่า "Main Street" มันง่ายที่จะรู้ว่าคุณต้องไปที่ 100-block ของถนนสายหลักเพราะหมายเลขอาคารอยู่ระหว่าง 100 ถึง 199 และบล็อกของเมืองส่วนใหญ่จะมีเลขเป็นร้อย คุณ "เพิ่งรู้" วิธีแยกที่อยู่
เราเตอร์ส่งแพ็กเก็ตไม่ใช่พิซซ่า งานของพวกเขาเหมือนกับคนขับพิซซ่า: เพื่อให้ได้สินค้า (แพ็คเก็ต) ใกล้กับปลายทางมากที่สุด เราเตอร์เชื่อมต่อกับเครือข่ายย่อย IP สองเครือข่ายขึ้นไป (เพื่อประโยชน์ทั้งหมด) เราเตอร์จะต้องตรวจสอบที่อยู่ IP ปลายทางของแพ็กเก็ตและแยกที่อยู่ปลายทางเหล่านั้นออกเป็นส่วนประกอบ "ชื่อถนน" และ "หมายเลขอาคาร" เช่นเดียวกับคนขับพิซซ่าเพื่อตัดสินใจเกี่ยวกับการจัดส่ง
คอมพิวเตอร์แต่ละเครื่อง (หรือ "โฮสต์") ในเครือข่าย IP ได้รับการกำหนดค่าด้วยที่อยู่ IP ที่ไม่ซ้ำกันและซับเน็ตมาสก์ ที่อยู่ IP นั้นสามารถแบ่งออกเป็นองค์ประกอบ "หมายเลขอาคาร" (เช่น "123" ในตัวอย่างด้านบน) ที่เรียกว่า "รหัสโฮสต์" และส่วนประกอบ "ชื่อถนน" (เช่น "ถนนสายหลัก" ในตัวอย่างด้านบน) ที่เรียกว่า "รหัสเครือข่าย" สำหรับสายตามนุษย์ของเราเป็นเรื่องง่ายที่จะเห็นว่าหมายเลขอาคารและชื่อถนนอยู่ใน "123 Main Street" แต่ยากที่จะเห็นการแบ่งใน "10.13.216.41 ที่มีซับเน็ตมาสก์ 255.255.192.0"
เราเตอร์ IP "เพิ่งรู้" วิธีแยกที่อยู่ IP ออกเป็นส่วนต่าง ๆ เหล่านี้เพื่อตัดสินใจในการกำหนดเส้นทาง เนื่องจากการทำความเข้าใจเกี่ยวกับวิธีที่แพ็กเก็ต IP ถูกกำหนดเส้นทางในการทำความเข้าใจกระบวนการนี้เราจำเป็นต้องทราบวิธีการแบ่งที่อยู่ IP ด้วย โชคดีที่การแยกรหัสโฮสต์และรหัสเครือข่ายออกจากที่อยู่ IP และซับเน็ตมาสก์นั้นค่อนข้างง่าย
เริ่มต้นด้วยการเขียนที่อยู่ IP เป็นเลขฐานสอง (ใช้เครื่องคิดเลขหากคุณยังไม่ได้เรียนรู้ที่จะทำสิ่งนี้ในหัวของคุณ แต่ให้จดบันทึกเรียนรู้วิธีการทำ - เป็นเรื่องง่ายและประทับใจเพศตรงข้ามที่ บุคคล):
10. 13. 216. 41
00001010.00001101.11011000.00101001
เขียนซับเน็ตมาสก์เป็นไบนารีเช่นกัน
255. 255. 192. 0
11111111.11111111.11000000.00000000
เขียนแบบเคียงข้างกันคุณจะเห็นว่าจุดในซับเน็ตมาสก์ที่ "1" "หยุด" เข้าแถว "ถึงจุดหนึ่งในที่อยู่ IP นั่นคือจุดที่ ID เครือข่ายและการแยก ID โฮสต์ ดังนั้นในกรณีนี้:
10. 13. 216. 41
00001010.00001101.11011000.00101001 - IP address
11111111.11111111.11000000.00000000 - subnet mask
00001010.00001101.11000000.00000000 - Portion of IP address covered by 1's in subnet mask, remaining bits set to 0
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
เราเตอร์ใช้ subnet mask เพื่อ "mask out" บิตที่ครอบคลุมโดย 1 ใน IP address (แทนที่บิตที่ไม่ใช่ "masked out" ด้วย 0's) เพื่อแยก ID เครือข่าย:
10. 13. 192. 0
00001010.00001101.11000000.00000000 - Network ID
ในทำนองเดียวกันโดยใช้ subnet mask เพื่อ "mask out" บิตที่ครอบคลุมโดย 0 ในที่อยู่ IP (แทนที่บิตที่ไม่ใช่ "masked out" ด้วย 0's อีกครั้ง) เราเตอร์สามารถแยก ID โฮสต์:
0. 0. 24. 41
00000000.00000000.00011000.00101001 - Portion of IP address covered by 0's in subnet mask, remaining bits set to 0
สายตามนุษย์ของเราไม่ง่ายที่จะเห็น "ตัวแบ่ง" ระหว่างรหัสเครือข่ายและรหัสโฮสต์เนื่องจากอยู่ระหว่าง "หมายเลขอาคาร" และ "ชื่อถนน" ในที่อยู่ทางกายภาพในระหว่างการจัดส่งพิซซ่า แต่ผลสุดท้ายคือ เหมือนกัน.
ตอนนี้คุณสามารถแบ่งที่อยู่ IP และซับเน็ตมาสก์ออกเป็นโฮสต์ ID และรหัสเครือข่ายแล้วคุณสามารถกำหนดเส้นทาง IP ได้เหมือนที่เราเตอร์ทำ
คำศัพท์เพิ่มเติม
คุณจะเห็นซับเน็ตมาสก์เขียนทั่วอินเทอร์เน็ตและตลอดเวลาที่เหลือของคำตอบนี้เป็น (IP / หมายเลข) สัญกรณ์นี้เรียกว่าสัญกรณ์ "Classless Inter-Domain Routing" (CIDR) "255.255.255.0" ประกอบด้วย 24 บิตของ 1 เมื่อเริ่มต้นและจะเร็วกว่าในการเขียนว่าเป็น "/ 24" มากกว่า "255.255.255.0" ในการแปลงหมายเลข CIDR (เช่น "/ 16") เป็นมาสก์ซับเน็ตทศนิยมแบบจุดเพียงเขียนจำนวน 1 นั้นแล้วแบ่งออกเป็นกลุ่ม 8 บิตและแปลงเป็นทศนิยม (เช่น "/ 16" คือ "255.255.0.0" เป็นต้น)
ย้อนกลับไปใน "วันเก่า" ไม่ได้ระบุมาสก์เครือข่ายย่อย แต่ได้มาจากการดูที่อยู่ IP บางบิต ตัวอย่างเช่นที่อยู่ IP ที่ขึ้นต้นด้วย 0 - 127 มีซับเน็ตมาสก์โดยนัยที่ 255.0.0.0 (เรียกว่าที่อยู่ IP "คลาส A")
มาสก์ซับเน็ตโดยนัยเหล่านี้ไม่ได้ใช้ในวันนี้และฉันไม่แนะนำให้เรียนรู้เกี่ยวกับพวกเขาอีกต่อไปเว้นแต่คุณจะมีความโชคร้ายในการจัดการกับอุปกรณ์ที่เก่ามากหรือโปรโตคอลเก่า (เช่น RIPv1) ที่ไม่สนับสนุนการ ฉันจะไม่พูดถึงที่อยู่ "คลาส" เหล่านี้เพิ่มเติมเพราะไม่เหมาะสมในวันนี้และอาจสร้างความสับสน
อุปกรณ์บางอย่างใช้สัญกรณ์ที่เรียกว่า "สัญลักษณ์ตัวแทน" "wildcard mask" ไม่มีอะไรมากไปกว่า subnet mask ที่มี 0 ทั้งหมดที่จะมี 1 และ 1 ของที่จะมี 0 "หน้ากากตัวแทน" ของ a / 26 คือ:
11111111.11111111.11111111.11000000 - /26 subnet mask
00000000.00000000.00000000.00111111 - /26 "wildcard mask"
โดยทั่วไปคุณจะเห็น "หน้ากากตัวแทน" ที่ใช้จับคู่ ID โฮสต์ในรายการควบคุมการเข้าถึงหรือกฎไฟร์วอลล์ เราจะไม่พูดคุยพวกเขาเพิ่มเติมที่นี่
เราเตอร์ทำงานอย่างไร
อย่างที่ฉันได้พูดไปแล้วเราเตอร์ IP มีงานคล้าย ๆ กับพนักงานขับรถส่งพิซซ่าเพราะพวกเขาจำเป็นต้องนำสินค้า (แพ็คเก็ต) ไปยังจุดหมายปลายทาง เมื่อนำเสนอด้วยแพ็กเก็ตที่ถูกผูกไว้สำหรับที่อยู่ 192.168.10.2 เราเตอร์ IP จำเป็นต้องกำหนดว่าอินเทอร์เฟซเครือข่ายใดที่จะทำให้แพ็กเก็ตนั้นใกล้กับปลายทางมากที่สุด
สมมติว่าคุณเป็นเราเตอร์ IP และคุณมีอินเตอร์เฟสที่เชื่อมต่อกับคุณตามหมายเลข:
- Ethernet0 - 192.168.20.1, subnet mask / 24
- Ethernet1 - 192.168.10.1, subnet mask / 24
หากคุณได้รับแพ็คเก็ตที่จะส่งด้วยที่อยู่ปลายทาง "192.168.10.2" มันค่อนข้างง่ายที่จะบอก (ด้วยสายตามนุษย์ของคุณ) ว่าแพ็กเก็ตควรถูกส่งออกไปที่อินเตอร์เฟส Ethernet1 เนื่องจากที่อยู่อินเตอร์เฟส Ethernet1 สอดคล้องกับปลายทางของแพ็กเก็ต ที่อยู่ คอมพิวเตอร์ทุกเครื่องที่เชื่อมต่อกับส่วนต่อประสาน Ethernet1 จะมีที่อยู่ IP เริ่มต้นด้วย "192.168.10" เนื่องจากรหัสเครือข่ายของที่อยู่ IP ที่กำหนดให้กับส่วนต่อประสาน Ethernet1 ของคุณคือ "192.168.10.0"
สำหรับเราเตอร์กระบวนการเลือกเส้นทางนี้ทำได้โดยการสร้างตารางเส้นทางและปรึกษาตารางทุกครั้งที่มีการส่งแพ็คเก็ต ตารางเส้นทางมี ID เครือข่ายและชื่ออินเตอร์เฟสปลายทาง คุณทราบวิธีรับหมายเลขเครือข่ายจากที่อยู่ IP และซับเน็ตมาสก์แล้วดังนั้นคุณจึงสามารถสร้างตารางเส้นทางได้ นี่คือตารางเส้นทางของเราสำหรับเราเตอร์นี้:
- รหัสเครือข่าย: 192.168.20.0 (11000000.10101000.00010100.00000000) - มาสก์เครือข่ายย่อย 24 บิต - อินเตอร์เฟส Ethernet0
- รหัสเครือข่าย: 192.168.10.0 (11000000.10101000.00001010.00000000) - subnet mask 24 บิต - อินเตอร์เฟส Ethernet1
สำหรับแพ็กเก็ตขาเข้าของเราที่ถูกผูกไว้สำหรับ "192.168.10.2" เราต้องการเพียงแปลงที่อยู่ของแพ็คเก็ตนั้นเป็นไบนารี่ (ในฐานะมนุษย์ - เราเตอร์จะรับมันเป็นไบนารี่ออฟไลน์เริ่มต้นด้วย) ตาราง (ขึ้นอยู่กับจำนวนบิตใน subnet mask) จนกระทั่งเราจับคู่รายการ
- ปลายทางแพ็กเก็ตที่เข้ามา: 11000000.10101000.00001010.00000010
เปรียบเทียบกับรายการในตารางเส้นทางของเรา:
11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00010100.00000000 - Interface Ethernet0
!!!!!!!!.!!!!!!!!.!!!????!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)
11000000.10101000.00001010.00000010 - Destination address for packet
11000000.10101000.00001010.00000000 - Interface Ethernet1, 24 bit subnet mask
!!!!!!!!.!!!!!!!!.!!!!!!!!.xxxxxxxx - ! indicates matched digits, ? indicates no match, x indicates not checked (beyond subnet mask)
รายการสำหรับ Ethernet0 ตรงกับ 19 บิตแรกที่ดี แต่จากนั้นหยุดการจับคู่ นั่นหมายความว่าไม่ใช่อินเทอร์เฟซปลายทางที่เหมาะสม คุณจะเห็นว่าอินเตอร์เฟส Ethernet1 ตรงกับ 24 บิตของที่อยู่ปลายทาง อ้า! แพ็คเก็ตถูกผูกไว้สำหรับอินเตอร์เฟส Ethernet1
ในเราเตอร์ในชีวิตจริงตารางเส้นทางจะถูกจัดเรียงในลักษณะที่มาสก์ซับเน็ตที่ยาวที่สุดถูกตรวจจับคู่ก่อน (เช่นเส้นทางที่เฉพาะเจาะจงที่สุด) และตัวเลขเพื่อให้ทันทีที่พบการแข่งขันแพ็กเก็ตสามารถกำหนดเส้นทางได้ และไม่จำเป็นต้องมีความพยายามในการจับคู่เพิ่มเติม (หมายความว่าจะแสดง 192.168.10.0 ก่อนและ 192.168.20.0 จะไม่ถูกตรวจสอบ) ที่นี่เราลดความซับซ้อนลงเล็กน้อย โครงสร้างข้อมูลและอัลกอริธึมที่แปลกใหม่ทำให้เราเตอร์ IP เร็วขึ้น แต่อัลกอริธึมง่ายๆจะให้ผลลัพธ์ที่เหมือนกัน
เส้นทางคงที่
จนถึงตอนนี้เราได้พูดคุยเกี่ยวกับเราเตอร์สมมุติของเราว่ามีเครือข่ายเชื่อมต่อโดยตรง นั่นไม่ชัดเจนว่าโลกใช้งานได้จริงอย่างไร ในการเปรียบเทียบการขับพิซซ่าบางครั้งคนขับรถไม่ได้รับอนุญาตให้เข้าไปในอาคารมากกว่าแผนกต้อนรับและต้องส่งพิซซ่าให้คนอื่นเพื่อส่งไปยังผู้รับสุดท้าย (ระงับความไม่เชื่อและทนกับฉันในขณะที่ กรุณายืดความคล้ายคลึงของฉันด้วย)
เริ่มจากการเรียกเราเตอร์จากตัวอย่างก่อนหน้า "เราเตอร์ A" คุณรู้ตารางเส้นทางของ RouterA แล้ว:
- รหัสเครือข่าย: 192.168.20.0 (11000000.10101000.00010100.00000000) - subnet mask / 24 - อินเตอร์เฟสเราเตอร์ A-Ethernet0
- รหัสเครือข่าย: 192.168.10.0 (11000000.10101000.00001010.00000000) - subnet mask / 24 - อินเตอร์เฟสเราเตอร์ A-Ethernet1
สมมติว่ามีเราเตอร์อีกตัวหนึ่ง "เราเตอร์ B" ที่มีที่อยู่ IP 192.168.10.254/24 และ 192.168.30.1/24 ที่กำหนดให้กับอินเตอร์เฟส Ethernet0 และ Ethernet1 มันมีตารางเส้นทางต่อไปนี้:
- รหัสเครือข่าย: 192.168.10.0 (11000000.10101000.00001010.00000000) - subnet mask / 24 - อินเตอร์เฟสเราเตอร์ B-Ethernet0
- รหัสเครือข่าย: 192.168.30.0 (11000000.10101000.00011110.00000000) - subnet mask / 24 - อินเตอร์เฟสเราเตอร์ B-Ethernet1
ในศิลปะ ASCII ที่สวยงามเครือข่ายมีลักษณะดังนี้:
Interface Interface
Ethernet1 Ethernet1
192.168.10.1/24 192.168.30.254/24
__________ V __________ V
| | V | | V
----| ROUTER A |------- /// -------| ROUTER B |----
^ |__________| ^ |__________|
^ ^
Interface Interface
Ethernet0 Ethernet0
192.168.20.1/24 192.168.10.254/24
คุณจะเห็นว่าเราท์เตอร์ B รู้วิธี "รับ" เครือข่าย 192.168.30.0/24 ว่าเราเตอร์ A ไม่รู้อะไรเลย
สมมติว่าพีซีที่มีที่อยู่ IP 192.168.20.13 เชื่อมต่อกับเครือข่ายที่เชื่อมต่อกับอินเตอร์เฟส Ethernet0 ของเราเตอร์ A จะส่งแพ็กเก็ตไปยังเราเตอร์ A เพื่อส่งมอบ แพ็กเก็ตสมมุติฐานของเราถูกกำหนดไว้สำหรับที่อยู่ IP 192.168.30.46 ซึ่งเป็นอุปกรณ์ที่เชื่อมต่อกับเครือข่ายที่เชื่อมต่อกับอินเตอร์เฟส Ethernet1 ของเราเตอร์ B
ด้วยตารางเส้นทางที่แสดงด้านบนไม่มีรายการในตารางเส้นทางของเราเตอร์ที่ตรงกับปลายทาง 192.168.30.46 ดังนั้นเราเตอร์ A จะส่งคืนแพ็กเก็ตไปยังพีซีที่ส่งด้วยข้อความ "ปลายทางเครือข่ายที่ไม่สามารถเข้าถึงได้"
ในการทำให้เราเตอร์ A "ทราบ" ถึงการมีอยู่ของเครือข่าย 192.168.30.0/24 เราเพิ่มรายการต่อไปนี้ไปยังตารางเส้นทางในเราเตอร์ A:
- รหัสเครือข่าย: 192.168.30.0 (11000000.10101000.00011110.00000000) - subnet mask / 24 - สามารถเข้าถึงได้ผ่าน 192.168.10.254
ด้วยวิธีนี้เราเตอร์ A มีรายการตารางเส้นทางที่ตรงกับปลายทาง 192.168.30.46 ของแพ็กเก็ตตัวอย่างของเรา รายการตารางเส้นทางนี้บอกว่า "ถ้าคุณได้รับแพ็กเก็ตที่ถูกผูกไว้สำหรับ 192.168.30.0/24 ให้ส่งไปที่ 192.168.10.254 เพราะเขารู้วิธีจัดการกับมัน" นี่เป็นการกระทำแบบ "ส่งพิซซ่าที่แผนกต้อนรับ" ที่คล้ายคลึงกันที่ฉันได้กล่าวถึงก่อนหน้านี้ - ส่งแพ็กเก็ตไปยังคนอื่นที่รู้วิธีเข้าใกล้ปลายทาง
การเพิ่มรายการในตารางเส้นทาง "ด้วยมือ" เรียกว่าการเพิ่ม "เส้นทางคงที่"
หาก Router B ต้องการส่งแพ็กเก็ตไปยังเครือข่ายย่อย 192.168.20.0 255.255.255.0 เครือข่ายมันจะต้องมีรายการในตารางเส้นทางของมันด้วย:
- รหัสเครือข่าย: 192.168.20.0 (11000000.10101000.00010100.00000000) - subnet mask / 24 - เข้าถึงได้ผ่าน: 192.168.10.1 (ที่อยู่ IP ของเราเตอร์ A ในเครือข่าย 192.168.10.0)
สิ่งนี้จะสร้างพา ธ สำหรับการจัดส่งระหว่างเครือข่าย 192.168.30.0/24 และเครือข่าย 192.168.20.0/24 ทั่วเครือข่าย 192.168.10.0/24 ระหว่างเราเตอร์เหล่านี้
คุณต้องการให้แน่ใจว่าเราเตอร์ทั้งสองด้านของ "เครือข่ายคั่นระหว่างหน้า" นั้นมีรายการตารางเส้นทางสำหรับเครือข่าย "ปลายสุด" ถ้าเราเตอร์ B ในตัวอย่างของเราไม่มีรายการตารางเส้นทางสำหรับเครือข่าย "ปลายสุด" 192.168.20.0/24 ต่อกับเราเตอร์แพ็กเก็ตสมมุติจากพีซีที่ 192.168.20.13 จะไปยังอุปกรณ์ปลายทางที่ 192.168.30.46 แต่การตอบกลับใด ๆ ที่ 192.168.30.46 พยายามส่งกลับจะถูกส่งกลับโดยเราเตอร์ B ว่า "เครือข่ายปลายทางไม่สามารถเข้าถึงได้" การสื่อสารทางเดียวโดยทั่วไปไม่พึงประสงค์ ตรวจสอบให้แน่ใจเสมอว่าคุณคิดถึงปริมาณข้อมูลที่ไหลในทั้งสองทิศทางเมื่อคุณคิดถึงการสื่อสารในเครือข่ายคอมพิวเตอร์
คุณสามารถได้รับไมล์สะสมจำนวนมากจากเส้นทางคงที่ โปรโตคอลการกำหนดเส้นทางแบบไดนามิกเช่น EIGRP, RIP และอื่น ๆ ไม่มีอะไรมากไปกว่าวิธีการที่เราเตอร์จะแลกเปลี่ยนข้อมูลเส้นทางระหว่างกันซึ่งในความเป็นจริงแล้วสามารถกำหนดค่าด้วยเส้นทางแบบคงที่ได้ ข้อดีอย่างหนึ่งของการใช้โปรโตคอลการเราต์แบบไดนามิกบนเส้นทางแบบสแตติกนั้นคือโปรโตคอลแบบไดนามิกเส้นทางสามารถเปลี่ยนตารางการเราต์แบบไดนามิกตามเงื่อนไขของเครือข่าย (การใช้แบนด์วิดท์, ส่วนต่อประสาน "กำลังลง" ฯลฯ ) และแบบไดนามิก โปรโตคอลการกำหนดเส้นทางอาจส่งผลให้เกิดการกำหนดค่าที่ "เส้นทางไปรอบ ๆ " ความล้มเหลวหรือคอขวดในโครงสร้างพื้นฐานเครือข่าย (โปรโตคอลแบบไดนามิกเส้นทางมีWAYนอกขอบเขตของคำตอบนี้แม้ว่า.)
คุณไม่สามารถไปจากที่นี่ได้
ในกรณีของเราท์เตอร์ตัวอย่าง A จะเกิดอะไรขึ้นเมื่อแพ็กเก็ตที่เชื่อมโยงกับ "172.16.31.92" เข้ามา
ดูที่ตารางเส้นทางเราเตอร์ไม่ว่าปลายทางหรือเส้นทางคงที่ตรงกับ 24 บิตแรกที่ 172.18.31.92 (ซึ่งคือ 10101100.00010000.00011111.01011100, BTW)
ดังที่เราทราบแล้ว Router A จะส่งคืนแพ็กเก็ตไปยังผู้ส่งผ่านข้อความ "ปลายทางของเครือข่ายที่ไม่สามารถเข้าถึงได้"
บอกว่ามีเราเตอร์อื่น (เราเตอร์ C) นั่งอยู่ตามที่อยู่ "192.168.20.254" เราเตอร์ C มีการเชื่อมต่อกับอินเทอร์เน็ต!
Interface Interface Interface
Ethernet1 Ethernet1 Ethernet1
192.168.20.254/24 192.168.10.1/24 192.168.30.254/24
__________ V __________ V __________ V
(( heap o )) | | V | | V | | V
(( internet )) ----| ROUTER C |------- /// -------| ROUTER A |------- /// -------| ROUTER B |----
(( w00t! )) ^ |__________| ^ |__________| ^ |__________|
^ ^ ^
Interface Interface Interface
Ethernet0 Ethernet0 Ethernet0
10.35.1.1/30 192.168.20.1/24 192.168.10.254/24
มันจะดีถ้าเราเตอร์ A สามารถกำหนดเส้นทางแพ็คเก็ตที่ไม่ตรงกับอินเทอร์เฟซท้องถิ่นใด ๆ จนถึงเราเตอร์ C ซึ่งเราเตอร์ C สามารถส่งพวกเขาไปยังอินเทอร์เน็ตได้ ป้อนเส้นทาง "เกตเวย์เริ่มต้น"
เพิ่มรายการที่ท้ายตารางเส้นทางของเราดังนี้:
- รหัสเครือข่าย: 0.0.0.0 (00000000.00000000.00000000.00000000) - subnet mask / 0 - เราเตอร์ปลายทาง: 192.168.20.254
เมื่อเราพยายามจับคู่ "172.16.31.92" กับแต่ละรายการในตารางเส้นทางเราจะสิ้นสุดการเข้าชมรายการใหม่นี้ ตอนแรกมันค่อนข้างน่างง เราต้องการจับคู่ที่อยู่ปลายทางเป็นศูนย์ด้วย ... รอ ... อะไรนะ จับคู่เป็นศูนย์บิต? ดังนั้นเราไม่ได้มองหาการแข่งขันเลย รายการตารางเส้นทางนี้พูดโดยทั่วไปว่า "ถ้าคุณมาที่นี่แทนที่จะยอมแพ้ให้ส่งแพ็กเก็ตไปยังเราเตอร์ที่ 192.168.20.254 แล้วปล่อยให้เขาจัดการ"
192.168.20.254 เป็นปลายทางที่เราไม่ทราบวิธีการที่จะส่งมอบให้แพ็คเก็ต เมื่อเผชิญหน้ากับแพ็กเก็ตที่ถูกผูกไว้สำหรับปลายทางที่เราไม่มีรายการตารางเส้นทางเฉพาะรายการ "เกตเวย์เริ่มต้น" นี้จะจับคู่เสมอ (เนื่องจากตรงกับศูนย์บิตของที่อยู่ปลายทาง) และทำให้เราเป็น "สุดท้าย" ที่เราสามารถ ส่งแพ็คเก็ตสำหรับการจัดส่ง บางครั้งคุณจะได้ยินเกตเวย์เริ่มต้นที่เรียกว่า "เกตเวย์ของวิธีสุดท้าย"
เพื่อให้เส้นทางเกตเวย์เริ่มต้นมีผลใช้งานนั้นจะต้องอ้างถึงเราเตอร์ที่สามารถเข้าถึงได้โดยใช้รายการอื่น ๆ ในตารางเส้นทาง หากคุณพยายามระบุเกตเวย์เริ่มต้นที่ 192.168.50.254 ในเราเตอร์ A ตัวอย่างเช่นการส่งไปที่เกตเวย์เริ่มต้นจะล้มเหลว 192.168.50.254 ไม่ใช่ที่อยู่ที่ Router A รู้วิธีส่งแพ็กเก็ตเพื่อใช้เส้นทางอื่น ๆ ในตารางเส้นทางของมันดังนั้นที่อยู่ดังกล่าวจะไม่ได้ผลในฐานะเกตเวย์เริ่มต้น สิ่งนี้สามารถกล่าวได้อย่างรัดกุม: เกตเวย์เริ่มต้นจะต้องตั้งค่าเป็นที่อยู่ที่สามารถเข้าถึงได้โดยใช้เส้นทางอื่นในตารางเส้นทาง
โดยทั่วไปเราเตอร์จริงจะเก็บเกตเวย์เริ่มต้นเป็นเส้นทางสุดท้ายในตารางเส้นทางของพวกเขาเพื่อให้ตรงกับแพ็กเก็ตหลังจากที่พวกเขาล้มเหลวในการจับคู่รายการอื่น ๆ ทั้งหมดในตาราง
การวางผังเมืองและการกำหนดเส้นทาง IP
การแบ่งเครือข่ายย่อย IP เป็นเครือข่ายย่อย IP ที่เล็กลงเป็นการวางผังเมือง ในการวางผังเมืองการแบ่งเขตจะใช้เพื่อปรับให้เข้ากับลักษณะทางธรรมชาติของภูมิประเทศ (แม่น้ำทะเลสาบ ฯลฯ ) เพื่อมีอิทธิพลต่อการไหลของการจราจรระหว่างส่วนต่าง ๆ ของเมืองและแยกการใช้ที่ดินประเภทต่างๆ (อุตสาหกรรมที่อยู่อาศัย ฯลฯ ) . IP subnetting นั้นเหมือนกันจริงๆ
มีสาเหตุหลักสามประการที่ทำให้คุณต้อง subnet เครือข่าย:
คุณอาจต้องการสื่อสารข้ามแตกต่างจากสื่อการสื่อสาร หากคุณมีการเชื่อมต่อ T1 WAN ระหว่างสองอาคารเราเตอร์ IP สามารถวางไว้ที่ส่วนปลายของการเชื่อมต่อเหล่านี้เพื่ออำนวยความสะดวกในการสื่อสารข้าม T1 เครือข่ายในปลายแต่ละด้าน (และอาจเป็นเครือข่าย "คั่นระหว่างหน้า" ใน T1 เอง) จะถูกกำหนดให้กับเครือข่ายย่อย IP ที่ไม่ซ้ำกันเพื่อให้เราเตอร์สามารถตัดสินใจเกี่ยวกับการรับส่งข้อมูลที่ควรจะส่งผ่านสาย T1
ในเครือข่ายอีเทอร์เน็ตคุณอาจใช้เครือข่ายย่อยเพื่อ จำกัด ปริมาณการออกอากาศในส่วนที่กำหนดของเครือข่าย โปรโตคอลชั้นแอปพลิเคชันใช้ความสามารถในการออกอากาศของ Ethernet เพื่อจุดประสงค์ที่มีประโยชน์มาก เมื่อคุณมีโฮสต์มากขึ้นเรื่อย ๆ ในเครือข่ายอีเธอร์เน็ตเดียวกันเปอร์เซ็นต์ของการรับส่งข้อมูลออกอากาศบนสาย (หรืออากาศในอีเธอร์เน็ตไร้สาย) สามารถเพิ่มขึ้นจนถึงจุดที่สร้างปัญหาในการส่งทราฟฟิกที่ไม่ออกอากาศ (ในอดีตการรับส่งข้อมูลออกอากาศอาจครอบงำ CPU ของโฮสต์โดยบังคับให้พวกเขาตรวจสอบแต่ละแพ็กเก็ตออกอากาศซึ่งมีโอกาสน้อยกว่าในปัจจุบัน) การรับส่งข้อมูลที่มากเกินไปบนสวิตช์อีเธอร์เน็ตยังสามารถมาในรูปแบบ เงื่อนไขนี้เกิดจากสวิตช์อีเทอร์เน็ตไม่สามารถติดตามทุกปลายทางบนเครือข่ายและเป็นสาเหตุที่เครือข่ายอีเทอร์เน็ตสวิตช์ไม่สามารถปรับให้มีจำนวนโฮสต์ไม่สิ้นสุด ผลของการท่วมเฟรมไปยังจุดหมายปลายทางที่ไม่รู้จักนั้นคล้ายคลึงกับผลกระทบของการรับส่งสัญญาณออกอากาศที่มากเกินไปสำหรับจุดประสงค์ของเครือข่ายย่อย
คุณอาจต้องการ "ตำรวจ" ประเภทของการจราจรที่ไหลระหว่างกลุ่มโฮสต์ที่แตกต่างกัน บางทีคุณอาจมีอุปกรณ์เซิร์ฟเวอร์การพิมพ์และคุณต้องการให้คอมพิวเตอร์เซิร์ฟเวอร์ที่รอคิวการพิมพ์ส่งงานไปให้พวกเขาเท่านั้น ด้วยการ จำกัด ปริมาณการใช้งานที่อนุญาตให้ส่งไปยังอุปกรณ์เซิร์ฟเวอร์การพิมพ์ผู้ใช้เครือข่ายย่อยไม่สามารถกำหนดค่าพีซีให้พูดคุยโดยตรงกับอุปกรณ์เซิร์ฟเวอร์การพิมพ์เพื่อเลี่ยงผ่านบัญชีการพิมพ์ คุณอาจวางอุปกรณ์เซิร์ฟเวอร์การพิมพ์ลงในเครือข่ายย่อยทั้งหมดด้วยตนเองและสร้างกฎในเราเตอร์หรือไฟร์วอลล์ที่เชื่อมต่อกับเครือข่ายย่อยนั้นเพื่อควบคุมรายการโฮสต์ที่ได้รับอนุญาตให้ส่งปริมาณข้อมูลไปยังอุปกรณ์เซิร์ฟเวอร์การพิมพ์ (โดยทั่วไปเราเตอร์และไฟร์วอลล์สามารถตัดสินใจเกี่ยวกับวิธีการส่งแพ็กเก็ตตามที่อยู่ต้นทางและปลายทางของแพ็กเก็ต ไฟร์วอลล์โดยทั่วไปแล้วจะเป็นเราเตอร์ย่อยที่มีบุคลิกครอบงำ พวกเขามีความกังวลอย่างมากเกี่ยวกับน้ำหนักบรรทุกของแพ็คเก็ตในขณะที่เราเตอร์มักจะไม่สนใจน้ำหนักบรรทุกและเพียงแค่ส่งแพ็คเก็ต)
ในการวางแผนเมืองคุณสามารถวางแผนว่าถนนตัดกันซึ่งกันและกันและสามารถใช้ถนนแบบเลี้ยวเดียวทางเดียวและทางตันเพื่อส่งผลต่อกระแสการจราจร คุณอาจต้องการให้ถนนสายหลักยาว 30 บล็อคโดยแต่ละบล็อกมีอาคารสูงถึง 99 อาคาร มันค่อนข้างง่ายที่จะวางแผนหมายเลขถนนของคุณเพื่อให้แต่ละบล็อกในถนนสายหลักมีช่วงของหมายเลขถนนที่เพิ่มขึ้น 100 สำหรับแต่ละบล็อก มันง่ายมากที่จะรู้ว่า "เลขเริ่มต้น" ในแต่ละบล็อคถัดไปควรเป็นอย่างไร
ในการวางแผนเครือข่ายย่อย IP คุณต้องคำนึงถึงการสร้างเครือข่ายย่อย (ถนน) จำนวนที่ถูกต้องด้วยจำนวนที่ถูกต้องของหมายเลขโฮสต์ที่มีอยู่ (หมายเลขอาคาร) และการใช้เราเตอร์เพื่อเชื่อมต่อเครือข่ายย่อยเข้าด้วยกัน กฎเกี่ยวกับที่อยู่ต้นทางและปลายทางที่อนุญาตที่ระบุในเราเตอร์สามารถควบคุมการไหลของการรับส่งข้อมูลเพิ่มเติมได้ ไฟร์วอลล์สามารถทำหน้าที่เหมือนตำรวจจราจรที่ถูกครอบงำ
สำหรับวัตถุประสงค์ของคำตอบนี้การสร้างเครือข่ายย่อยของเราเป็นเพียงข้อกังวลหลักของเรา แทนที่จะทำงานเป็นทศนิยมตามที่คุณต้องการกับการวางผังเมืองคุณทำงานเป็นเลขฐานสองเพื่ออธิบายขอบเขตของแต่ละเครือข่ายย่อย
ดำเนินการต่อใน: เครือข่ายย่อยของIPv4 ทำงานอย่างไร
(ใช่ ... เรามีขนาดสูงสุดของคำตอบ (30000 ตัวอักษร))