ฉันสับสนเล็กน้อยจาก 2 RFC ต่อไปนี้ที่เกี่ยวข้องกับ IPv6:
RFC 4862 ฯ :
กระบวนการกำหนดค่าอัตโนมัติที่ระบุในเอกสารนี้ใช้กับโฮสต์เท่านั้นและไม่ใช่เราเตอร์ เนื่องจากการกำหนดค่าโฮสต์อัตโนมัติใช้ข้อมูลที่โฆษณาโดยเราเตอร์เราเตอร์จะต้องได้รับการกำหนดค่าด้วยวิธีอื่น
RFC 7084 แสดงรายการหนึ่งในข้อกำหนดการกำหนดค่า WAN-Side สำหรับการกำหนดที่อยู่ดังนี้:
WAA-1: เราเตอร์ IPv6 CE ต้องรองรับการกำหนดค่าอัตโนมัติที่อยู่แบบไม่มีสถานะ (SLAAC) [RFC4862]
มีความขัดแย้งที่นี่?
เราเตอร์ควรสามารถกำหนดค่าที่อยู่ IPv6 สำหรับอินเตอร์เฟซ WAN ของตนโดยอัตโนมัติได้หรือไม่
ทำไม RFC 4862 ถึงพูด
เนื่องจากการกำหนดค่าโฮสต์อัตโนมัติใช้ข้อมูลที่โฆษณาโดยเราเตอร์เราเตอร์จะต้องได้รับการกำหนดค่าด้วยวิธีอื่น
หากฉันใช้เราเตอร์เพื่อเชื่อมต่อ LAN ของฉันกับ ISP ตัวอย่างเช่นไม่มีเราเตอร์ในเครือข่ายของ ISP ที่กำลังคุยกับเราเตอร์ของฉันหรือไม่
ฉันคิดว่ามันสมเหตุสมผลอย่างสมบูรณ์แบบที่จะมีเราเตอร์ (หรือมากกว่า) 2 ตัวถูกล่ามโซ่ไว้ด้วยกัน ในกรณีใดทำไมไม่ใช้ SLAAC ในอินเตอร์เฟส WAN ของเราเตอร์ตัวที่สอง
ปัญหาอาจเกิดจากความแตกต่างระหว่างโฮสต์และเราเตอร์ใช่ไหม จาก RFC 4862:
node - อุปกรณ์ที่ใช้ IP
เราเตอร์ - โหนดที่ส่งต่อแพ็กเก็ต IP ที่ไม่ได้ส่งไปยังตัวเองอย่างชัดเจน
โฮสต์ - โหนดใด ๆ ที่ไม่ใช่เราเตอร์
แต่โฮสต์ไม่ (เช่นเครื่องที่โฮสต์เซิร์ฟเวอร์หรือแอปพลิเคชัน) ไม่มีตารางเส้นทางและหน้าที่เป็นเราเตอร์หรือไม่ และเรากำลังผูกมัดเราเตอร์ 2 ตัวไว้ด้วยกันอีกครั้ง
แก้ไข : ข้อมูลเพิ่มเติมบางอย่างที่ฉันค้นพบในภายหลัง ...
เคอร์เนลจัดการกับ SLAAC และเป็นไปตาม RFC 4862 อย่างใกล้ชิด ไปจนถึงความแตกต่างระหว่างโฮสต์และเราเตอร์ ดูเอกสารประกอบเคอร์เนลบนip-sysctl :
- พฤติกรรมของ HOST ซึ่งหมายความว่าเราเตอร์จะทำการส่งคำขอร้องและโฆษณาของเราเตอร์จะใช้สำหรับการกำหนดค่าอัตโนมัติ
- เฉพาะในกรณีการส่งต่อถูกเปิดใช้งาน (
/proc/sys/net/ipv6/conf/all/forwarding
) อุปกรณ์ที่จะถือว่าเป็นROUTER ซึ่งหมายความว่าจะไม่มีการส่งคำเชิญของเราเตอร์และโฆษณาของเราเตอร์จะถูกละเว้น
ปรากฎว่าความแตกต่างนี้กลับไปก่อนแล้ว IPv6 ก่อน ดูพารามิเตอร์/proc/sys/net/ipv4/ip_forward
:
ตัวแปรนี้เป็นพิเศษการเปลี่ยนแปลงจะรีเซ็ตพารามิเตอร์การกำหนดค่าทั้งหมดเป็นสถานะเริ่มต้น ( RFC1122สำหรับโฮสต์, RFC1812สำหรับเราเตอร์)