วิธีที่ง่ายที่สุดในการเข้าใจความแตกต่างระหว่างทั้งสองคือผ่านตัวอย่างที่แสดงลักษณะลำดับชั้นของคำนำหน้า
ลำดับชั้นตัวอย่าง
ผู้ให้บริการอินเทอร์เน็ตได้รับการจัดสรรคำนำหน้าจากRIR (Regional Internet Registry) 2001:db8::/32
ซึ่งในตัวอย่างนี้เราจะถือว่าเป็น คำนำหน้านี้แตกต่างจากรหัสที่ส่งมอบให้กับลูกค้าในแง่ที่ว่า ISP จะต้องประกาศผ่าน BGP ไปยัง ISP อื่นที่ให้บริการด้วย
ISP กำลังจะจัดสรรคำนำหน้าให้กับลูกค้า ก่อนอื่นพวกเขา2001:db8:0:1::/64
จะกำหนดให้กับลิงก์ที่เชื่อมต่อเราเตอร์ ISP กับเราเตอร์CPE (อุปกรณ์ลูกค้าในสถานที่) นี่คือคำนำหน้าลิงก์เนื่องจากถูกกำหนดให้กับลิงก์ ในฐานะที่เป็นข้อเสนอแนะทั่วไปคำนำหน้าการเชื่อมโยงใน IPv6 /64
ที่ควรจะเป็น
เราเตอร์ ISP จะส่งโฆษณาเราเตอร์ประกาศคำนำหน้านี้และ CPE จะใช้ SLAAC ที่จะสร้างที่อยู่สำหรับชี้อินเตอร์เฟซภายนอกที่มีต่อเราเตอร์ ISP /64
ภายใน สมมติว่าอินเทอร์เฟซภายนอกมีที่อยู่ IP 2001:db8:0:1:42:ff:fe00:42/64
(ในสัญลักษณ์/64
นี้รวมอยู่เพื่อเตือนเราว่าความยาวของคำนำหน้าลิงก์คืออะไร แต่ฉันทำได้เหมือนกัน)
คำนำหน้าลิงค์นี้เพียงพอสำหรับเราเตอร์ CPE ในการสื่อสารกับส่วนอื่น ๆ ของโลก แต่มันก็ไม่ได้ช่วยเราเตอร์ CPE เพื่อรองรับไคลเอนต์ใด ๆ บน LAN ที่เชื่อมต่อกับอินเตอร์เฟสภายในของมัน CPE เราเตอร์ต้องการคำนำหน้าสำหรับ LAN ซึ่งจะถูกส่งผ่านเราเตอร์ CPE นี้ด้วยเหตุนี้นี้เรียกว่าคำนำหน้าเส้นทาง
คำนำหน้าเส้นทางสามารถกำหนดค่าแบบคงที่หรือผ่าน DHCPv6 รายละเอียดที่แน่นอนของวิธีที่เราเตอร์ CPE เจรจาความยาวของคำนำหน้ากับเซิร์ฟเวอร์ DHCPv6 ที่ ISP ให้ไว้นั้นอยู่นอกขอบเขตของคำตอบนี้ การค้นหาการมอบหมายคำนำหน้าสามารถบอกคุณเพิ่มเติมเกี่ยวกับเรื่องนี้ 2001:db8:1::/48
สมมติว่าปลายคำนำหน้าเส้นทางขึ้นเป็น เมื่อวันที่ ISP เราเตอร์รายการตารางเส้นทางจะถูกสร้างขึ้นแสดงให้เห็นว่าจะต้องมีการส่งผ่านประตู2001:db8:1::/48
2001:db8:0:1:42:ff:fe00:42
รายการตารางเส้นทางนี้เป็นคุณสมบัติการกำหนดของคำนำหน้าเส้นทาง
CPE เราเตอร์อาจมี LAN ภายในหลายตัวจาก/48
นั้นสามารถจัดสรร/64
คำนำหน้าลิงก์ให้กับ LAN ภายในแต่ละเครื่อง หากเราถือว่าหนึ่งใน LAN ได้รับการกำหนดให้2001:db8:1:1::/64
เป็นลิงก์นำหน้าโหนดในลิงค์นี้อาจได้รับที่อยู่2001:db8:1:1::42:ff:fe00:43
ผ่าน SLAAC โหนดนั้นอาจเป็นเราเตอร์ไร้สายซึ่งต้องมีคำนำหน้าสำหรับอินเทอร์เฟซแบบไร้สาย CPE สามารถกำหนด2001:db8:1:100::/60
เป็นคำนำหน้าเส้นทางสำหรับเราเตอร์ไร้สายและเราเตอร์ไร้สายสามารถกำหนดให้2001:db8:1:100::/64
เป็นส่วนนำหน้าลิงก์สำหรับอินเตอร์เฟสไร้สาย
ตอนนี้ในการตั้งค่าสิ่งที่เรามีคือลำดับชั้นของคำนำหน้า ต่อไปนี้คือทั้งหมดซ้อนกันภายใต้:
2001:db8::/32
BGP ประกาศคำนำหน้า
2001:db8:1::/48
คำนำหน้าเส้นทาง
2001:db8:1:100::/60
คำนำหน้าเส้นทาง
2001:db8:1:100::/64
คำนำหน้าลิงค์
จัดการกับแพ็คเก็ตจริงอย่างไร
เมื่อเราเตอร์ ISP ได้รับแพ็คเก็ตสำหรับ2001:db8:0:1::/64
ซึ่งเป็นคำนำหน้าการเชื่อมโยงจะดำเนินการค้นพบเพื่อนบ้านที่จะหาที่อยู่ MAC /64
ของโฮสต์ภายใน
วิธีนี้เราเตอร์ ISP จะต้องมีรายการแคชเพื่อนบ้านแยกต่างหากสำหรับทุกที่อยู่ IP ภายในคำนำหน้าลิงก์
เมื่อเราเตอร์ ISP ได้รับแพ็คเก็ตสำหรับ2001:db8:1::/48
ซึ่งเป็นคำนำหน้าเส้นทางจะดำเนินการค้นพบเพื่อนบ้านที่จะหาที่อยู่ MAC 2001:db8:0:1:42:ff:fe00:42
ของประตู
วิธีนี้เราเตอร์ ISP ต้องการเพียงรายการ Neighbor Cache สำหรับเกตเวย์เพื่อกำหนดเส้นทางแพ็กเก็ตไปยังที่อยู่ IP ใด ๆ ภายในคำนำหน้าเส้นทาง คุณสมบัตินี้มีความสำคัญต่อความสามารถในการขยายอินเทอร์เน็ต
หลีกเลี่ยงคำนำหน้าที่ขาดเส้นทาง
บางครั้งลูกค้าพบว่าตัวเองติดอยู่กับ ISP ที่จะให้คำนำหน้าลิงก์และไม่มีคำนำหน้าเส้นทาง ในสถานการณ์ดังกล่าวลูกค้าสามารถติดตั้ง daemon ที่ตอบสนองต่อการค้นหาเพื่อนบ้านสำหรับที่อยู่ IP ทั้งหมดภายในช่วงย่อยเฉพาะของคำนำหน้าลิงก์ สิ่งนี้จะมีเอฟเฟกต์คล้ายกับการกำหนดค่าคำนำหน้านั้นเป็นคำนำหน้าเส้นทาง แต่มีข้อเสียหลายประการ:
- โดยทั่วไปคำนำหน้าที่กำหนดเส้นทางโดยทั่วไปควรจะสั้นกว่า
/64
แต่ daemon ที่ตอบสนองต่อคำขอค้นหาเพื่อนบ้านสามารถสร้างคำนำหน้า "เส้นทาง" ที่ยาวกว่า/64
เท่านั้น
- มันเพิ่มเวลาแฝงเล็กน้อยเนื่องจากการไปกลับพิเศษทุกครั้งที่ที่อยู่ IP ไม่ได้อยู่ในแคชเพื่อนบ้านของเราเตอร์ ISP
- มันเพิ่มภาระให้กับเราเตอร์ ISP เนื่องจากต้องการการค้นพบเพื่อนบ้านบ่อยขึ้น มีความเป็นไปได้ค่อนข้างมากที่เราเตอร์ ISP สามารถส่งต่อแพ็กเก็ตไปยังคำนำหน้าปลายทางที่เป็นที่รู้จักกันแล้วอย่างหมดจดในฮาร์ดแวร์ แต่การค้นหาเพื่อนบ้านจะดำเนินการในซอฟต์แวร์
- มันเพิ่มปริมาณการใช้หน่วยความจำบนเราเตอร์ ISP หาก ISP จัดสรรส่วนนำหน้าที่กำหนดเส้นทางให้กับลูกค้าแต่ละรายพวกเขาสามารถหนีไปได้โดยง่ายด้วยการมีรายการแคชเพื่อนบ้านเพียงรายการเดียวต่อลูกค้า แต่ด้วยการตอบกลับเพื่อนบ้านสิ่งนี้สามารถเปลี่ยนเป็นรายการนับพันต่อลูกค้า
ค่าใช้จ่ายในการประมวลผลบนเราเตอร์ ISP อาจเป็นปัญหาที่สำคัญ เราเตอร์บางคนได้รับไม่ดีดังนั้นในการจัดการน้ำท่วมของแพ็คเก็ตที่ต้องค้นพบเพื่อนบ้านว่ามันกลายเป็นโจมตี DoS ที่เกิดขึ้นจริงและการใช้คำนำหน้าการเชื่อมโยงอีกต่อไป (ใน/120
- 127
ช่วง) ได้ถูกนำมาใช้เป็นวิธีแก้ปัญหาสำหรับการโจมตี DoS ดังกล่าว
แม้ว่าเราเตอร์จะไม่เสี่ยงต่อการโจมตี DoS หน่วยความจำที่จำเป็นสำหรับรายการแคชเพื่อนบ้านเมื่อใช้วิธีแก้ปัญหาตามที่อธิบายไว้ข้างต้นนั้นมีราคาแพงกว่าสำหรับ ISP มากกว่าที่อยู่ IP สำหรับคำนำหน้าเส้นทางที่กำหนดดังนั้นจึงมีเหตุผลเล็กน้อย สำหรับ ISP ที่จะปฏิเสธการส่งคำนำหน้าเส้นทาง
กรณีพิเศษเกี่ยวกับลิงก์แบบจุดต่อจุด
ลิงก์แบบจุดต่อจุด (เช่น 6in4 tunnels และ PPP links) ไม่จำเป็นต้องค้นหาเพื่อนบ้าน มีเพียงทิศทางเดียวในการส่งแพ็กเก็ตบนลิงก์ดังกล่าวและไม่จำเป็นต้องค้นหาที่อยู่ฮาร์ดแวร์ก่อนที่จะส่งแพ็กเก็ต
ซึ่งหมายความว่าค่าใช้จ่ายในการค้นพบเพื่อนบ้านไม่ได้เป็นปัญหาในลิงก์ดังกล่าว ดังนั้นการมีจุดปลายจุดเชื่อมโยงหนึ่งจุดจึงใช้ที่อยู่จำนวนมากไม่ใช่ปัญหาตราบใดที่จุดปลายมีข้อตกลงว่าใครใช้ที่อยู่ใด การขาดการค้นพบเพื่อนบ้านหมายความว่าไม่มีการตรวจจับที่อยู่ที่ซ้ำกันดังนั้นทั้งสองปลายทางควรลองใช้ที่อยู่เดียวกันซึ่งจะไม่ทำงานตามที่คาดไว้ (เว้นแต่ว่าคุณคาดหวังว่ามันจะทำงานเป็นที่อยู่ใด ๆ )
มีข้อแม้หนึ่งข้อที่ควรจดจำเกี่ยวกับการเชื่อมโยงแบบจุดต่อจุด ปลายทางแต่ละอันจะสมมติว่าที่อยู่ทั้งหมดในลิงก์ที่ไม่ได้กำหนดนั้นถูกกำหนดให้กับปลายทางอื่น ซึ่งหมายความว่าที่อยู่ที่ไม่ได้ใช้บนลิงก์แบบจุดต่อจุดมีแนวโน้มที่จะทริกเกอร์การวนรอบเส้นทาง (และกรณีอื่น ๆ ของการกำหนดเส้นทางลูป) สามารถหลีกเลี่ยงได้โดยจุดปลายไม่เคยส่งแพ็กเก็ตกลับไปยังโหนดที่ได้รับโดยตรง ดังนั้นแพ็กเก็ตที่ได้รับจากลิงก์จุดต่อจุดจะต้องไม่ถูกส่งกลับไปยังจุดเชื่อมโยงแบบจุดต่อจุดเดียวกันตราบใดที่หนึ่งปลายทางได้รับสิทธิ์นี้เส้นทางการวนรอบจะใช้งานไม่ได้ ในฐานะที่เป็นโหนดด้านข้างบนอีเธอร์เน็ตมันถูกต้องที่จะรับแพ็คเก็ตและส่งต่อมันกลับไปยังลิงค์เดียวกัน แต่มันเป็นความคิดที่ดีที่จะหลีกเลี่ยงถ้ามันจะถูกส่งต่อกลับไปยังที่อยู่ MAC เดียวกัน
เนื่องจากที่อยู่ส่วนใหญ่บนลิงก์แบบจุดต่อจุดจะถูกส่งต่อไปที่ปลายอีกด้านหนึ่งของลิงค์โดยไม่จำเป็นต้องหาการค้นพบจากเพื่อนบ้านเลยมันดูคล้ายกับคำนำหน้าที่กำหนดเส้นทาง ตัวอย่างเช่นถ้า ISP กำหนด 2001: db8: 42 :: / 64 ให้กับลิงก์แบบจุดต่อจุดโดยที่ปลายทางถูกกำหนดที่อยู่ 2001: db8: 42 :: 1 และ 2001: db8: 42 :: 2 จากนั้นแพ็กเก็ตไปยังที่อยู่ส่วนใหญ่ ในปี 2001: db8: 42 :: / 64 จะถูกส่งต่อจาก ISP ไปยังลูกค้าด้วยวิธีเดียวกับที่พวกเขาทำหากนี่เป็นคำนำหน้าเส้นทางโดยใช้ 2001: db8: 42 :: 2 เป็นเกตเวย์
ซึ่งหมายความว่าสามารถแฮ็กข้อมูลได้ ใน CPE เป็นไปได้ที่จะกำหนดค่า 2001: db8: 42 :: / 64 จริง ๆ เป็นคำนำหน้าลิงก์บน LAN เพื่อให้ CPE ทราบว่าทั้งสองลิงก์เชื่อมโยงปลายทางใดอยู่การกำหนดค่าจริงบนจุดต่อจุดเชื่อมโยงไปยัง ISP จะต้องเปลี่ยนเป็น 2001: db8: 42 :: / 126 ทั้งหมดนี้จะทำงานด้วยข้อยกเว้นเล็กน้อยหนึ่งโฮสต์บน LAN ไม่สามารถสื่อสารกับสี่ที่อยู่ IP ในปี 2001: db8: 42 :: / 126 เนื่องจากพวกเขาอาจไม่จำเป็นต้องสื่อสารกับสิ่งเหล่านี้อยู่ดีนี่เป็นปัญหาใหญ่ อย่างไรก็ตามไม่แนะนำให้ใช้แฮ็คนี้การกำหนดค่าที่เหมาะสมคือการขอคำนำหน้าเส้นทางจาก ISP
การแฮ็กเพื่อบันทึกที่อยู่อีกอย่างหนึ่งคือการจัดสรรที่อยู่ส่วนกลางสำหรับคำนำหน้าเส้นทางและใช้ที่อยู่ RFC 4193 สำหรับการเชื่อมโยงแบบจุดต่อจุด อย่างไรก็ตามนี่เป็นแฮ็คที่โง่เพราะมันยังแนะนำข้อบกพร่องบางอย่างเพื่อแก้ไขปัญหาที่ไม่มีอยู่จริง
นอกจากนี้ยังเป็นไปได้ที่จะไม่กำหนดคำนำหน้าใด ๆ ให้กับลิงก์แบบจุดต่อจุด ตราบใดที่ปลายทางแต่ละจุดมีอินเทอร์เฟซอื่นซึ่งมีที่อยู่ส่วนกลางพวกเขาสามารถใช้ที่อยู่ที่กำหนดให้กับอินเทอร์เฟซอื่นเมื่อทำการสื่อสารบนลิงก์แบบจุดต่อจุด ฉันไม่ทราบถึงข้อเสียใด ๆ จากวิธีการนี้ดังนั้นหากคุณพบว่าวิธีการเชื่อมโยงแบบจุดต่อจุดทำให้การกำหนดค่าเครือข่ายของคุณง่ายต่อการใช้งาน แต่ไม่ได้ใช้เป็นมาตรการในการบันทึกที่อยู่
ใช้กรณีสำหรับคำนำหน้าเส้นทาง
- การจัดเส้นทางตามลำดับชั้นในตัวอย่างแรกของฉันคือสิ่งที่คำนำหน้าเส้นทางถูกออกแบบมาเพื่อ
- VPN / tunnelsเพิ่มอีกเลเยอร์ในลำดับชั้นของเราเตอร์ที่ต้องการคำนำหน้า แม้ว่าพวกเขาจะเป็นเสมือนจริงมากกว่าฮาร์ดแวร์จริงพวกเขาจะไม่แตกต่างกันในแง่ของการกำหนดที่อยู่และต้องการคำนำหน้าเส้นทางเหมือนการเชื่อมโยงทางกายภาพจะ
- กำหนดที่อยู่จำนวนมากที่จะเป็นเจ้าภาพ มีกรณีการใช้งานสำหรับการกำหนดที่อยู่จำนวนมากให้กับโฮสต์เดียว สำหรับที่อยู่ไม่กี่แห่งพวกเขาสามารถกำหนดและจัดการกับการค้นหาเพื่อนบ้านสำหรับแต่ละรายการและรายการแคชได้มากเท่าที่มีที่อยู่ แต่ถ้าต้องการที่อยู่นับพันรายการจำเป็นต้องมีคำนำหน้าเส้นทางที่ดีกว่า
ตัวอย่างที่มีรายละเอียดเพิ่มเติมของประเด็นสุดท้ายจะเป็นตัวเรียกคืน DNS เนื่องจากฉันไม่เห็นว่า DNSSEC ได้รับแรงฉุดมากมายจนกระทั่งหลังจากที่เราต่อสู้กับ IPv4 เสร็จแล้วจึงจำเป็นต้องมีมาตรการอื่น ๆ สำหรับการวางยาพิษ DNS ความพยายามได้ถูกนำไปใช้ในการรับข่าวสารมากที่สุดเท่าที่จะทำได้ ID และหมายเลขพอร์ตสามารถเก็บได้สูงสุด 32 บิตของเอนโทรปีส่วนอีกสองสามบิตสามารถเก็บไว้ในคำขอได้หากตัวพิมพ์ใหญ่และตัวพิมพ์เล็กผสมกันในชื่อโดเมนที่จะแก้ไข คุณจะไม่ค่อยได้รับรวมมากกว่า 48 บิตด้วยวิธีนี้ การกำหนดตัวเรียก/64
ใช้ DNS แบบเต็มจะทำให้เอนโทรปีเพิ่มขึ้น 64 บิตในครั้งเดียวซึ่งมากกว่าความพยายามอื่น ๆ ทั้งหมดที่รวมเข้าด้วยกัน