เราเตอร์ควรใช้ SLAAC สำหรับการกำหนดที่อยู่ IPv6 หรือไม่


11

ฉันสับสนเล็กน้อยจาก 2 RFC ต่อไปนี้ที่เกี่ยวข้องกับ IPv6:

  • RFC 4862 (การกำหนดค่าที่อยู่อัตโนมัติแบบไร้สาย IPv6)
  • RFC 7084 (ข้อกำหนดเราเตอร์ IPv6 CE)

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สำหรับเราเตอร์)

คำตอบ:


7

ใน RFC 7084 จะระบุด้วย:

W-1: เมื่อเราเตอร์เชื่อมต่อกับลิงค์เชื่อมต่อ WAN นั้นจะต้องทำหน้าที่เป็นโฮสต์ IPv6 เพื่อวัตถุประสงค์ของการไร้ที่อยู่ [RFC4862] หรือไร้รัฐ [RFC3315] การกำหนดที่อยู่อินเตอร์เฟซ

ดังนั้นโดยสังเขปใช่ - เราเตอร์ควรสามารถกำหนดค่าที่อยู่ IPv6 สำหรับอินเตอร์เฟซ WAN ได้โดยอัตโนมัติ

ในความเป็นจริงแล้ว ISP ส่วนใหญ่ใช้ DHCPv6 และ DHCPv6-PD ( RFC3633 ) สำหรับการจัดสรรที่อยู่ปลายน้ำพร้อมกับการมอบหมายคำนำหน้า

สิ่งนี้ทำให้มั่นใจได้ว่าเราเตอร์ของคุณไม่เพียง แต่จะได้รับที่อยู่ในมันเป็นอินเตอร์เฟซ WAN แต่มันก็ยังได้รับคำนำหน้ามันสามารถใช้กับมันเป็นอินเตอร์เฟซ LAN ภายในเช่นกัน


6

RFC 4862 อธิบายถึงเราเตอร์ภายในการควบคุมดูแลระบบเดียว RFC 7084 อธิบายถึงวิธีที่เราเตอร์ลูกค้าควรปฏิบัติตนอย่างไร สิ่งนี้ทำให้ ISP มีอิสระในการสนับสนุน IPv6 กับลูกค้า

สำหรับเราเตอร์ PE เราเตอร์ CE เป็นโฮสต์ จากมุมมองของ LAN (โดเมนเลเยอร์ 2 รวมถึงลิงก์จาก PE ไปยัง CE) เราเตอร์เป็นเพียงโฮสต์อื่นในเครือข่าย ในกรณีส่วนใหญ่ที่อยู่ลิงก์ WAN จะถูกกำหนดแบบคงที่ผ่าน DHCP หรือผ่าน PPP ไม่ใช่การใช้ SLAAC

ฉันคิดว่าคุณพลาดส่วนหนึ่งใน RFC 7084 ที่นำหน้าสิ่งที่คุณยกมา:

ข้อกำหนดด้าน WAN:

W-1: เมื่อเราเตอร์เชื่อมต่อกับลิงค์เชื่อมต่อ WAN นั้นจะต้องทำหน้าที่เป็นโฮสต์ IPv6 เพื่อวัตถุประสงค์ของการไร้ที่อยู่ [ RFC4862 ] หรือไร้รัฐ [ RFC3315 ] การกำหนดที่อยู่อินเตอร์เฟซ


1
ผู้ให้บริการอินเทอร์เน็ตหลายรายใช้การเชื่อมต่อระหว่างกันของ WAN โดยไม่ต้องระบุหมายเลข (เฉพาะลิงค์ท้องถิ่น) สิ่งที่เกิดขึ้นบนลิงค์ WAN คือเราเตอร์ ISP ที่ส่งแพ็คเก็ตไปที่ CPE และ CPE กำลังส่งแพ็กเก็ตไปยังเกตเวย์เริ่มต้น ทั้งสองมักจะใช้ที่อยู่ link-local อยู่แล้ว
Sander Steffann

5

เหตุใด RFC 4862 จึงพูดว่า "เนื่องจากการกำหนดค่าอัตโนมัติของโฮสต์ใช้ข้อมูลที่โฆษณาโดยเราเตอร์เราเตอร์จะต้องได้รับการกำหนดค่าด้วยวิธีอื่น"

คนที่เขียนเอกสารนั้น (และเป็นบรรพบุรุษของ RFC 2462) เกือบจะมองโลกทัศน์ว่ามีอุปกรณ์สองประเภท "โฮสต์" ที่มีจำนวนมากและเป็นภาระในการจัดการและ "เราเตอร์" ที่จัดการโดยผู้ดูแลระบบเครือข่ายที่มีความสามารถ

ในช่วงต้นปี 2000 เรามีการเชื่อมต่อ DSL / เคเบิลที่เพิ่มขึ้นตลอดเวลาและจำนวนผู้ใช้ที่มีคอมพิวเตอร์มากกว่าหนึ่งเครื่องที่บ้านซึ่งสามารถใช้การเชื่อมต่ออินเทอร์เน็ตเพิ่มขึ้น เนื่องจากผู้ให้บริการอินเทอร์เน็ตหลายรายจะให้ที่อยู่ IP เดียวแก่ลูกค้า (อย่างน้อยโดยไม่คิดค่าใช้จ่ายเพิ่มเติม) เราเห็นการใช้ "เราเตอร์ที่บ้าน" เพิ่มขึ้นอย่างมากกับ NAT เพื่อซ่อนคอมพิวเตอร์หลายเครื่องที่อยู่หลังการเชื่อมต่อ NAT อนุญาตให้ "เราเตอร์ในบ้าน" เพื่อซ่อนมันเป็นธรรมชาติที่แท้จริงจาก ISP เท่าที่ ISP มีความกังวลว่า "เราเตอร์ในบ้าน" ก็เหมือนกับโฮสต์

การใช้งานดังกล่าวเป็นเพียงแค่ "ยอมรับ" โดย ISP ในตอนแรก แต่ในที่สุดพวกเขาก็ตัดสินใจว่ามันไม่ได้เลวร้ายอะไรเลยและเริ่มให้ / ขาย "เราเตอร์ในบ้าน" กับลูกค้าของพวกเขา เป็นผลให้เราสิ้นสุดด้วยอุปกรณ์เหล่านี้จำนวนมากนั่งในบ้านและธุรกิจขนาดเล็ก

เมื่อไม่นานมานี้ IETF ได้เริ่มสำรวจว่า "เราเตอร์ในบ้าน" และผู้ให้บริการอินเทอร์เน็ตที่ให้บริการควรปฏิบัติตนอย่างไรในบริบทของ IPv6 คำตอบก็คืออินเตอร์เฟซ "ฝั่ง WAN" ควรสร้างความเหมือนโฮสต์ในขณะที่อินเทอร์เฟซ "ด้าน LAN" ควรทำตัวเหมือนเราเตอร์ปกติ เนื่องจากไม่มี NAT จึงมีความต้องการรายละเอียดเพิ่มเติมบางอย่างเพื่อจัดการกับการจัดหาที่อยู่สำหรับฝั่ง LAN


เกี่ยวกับเคอร์เนลลินุกซ์มันทำโดยค่าเริ่มต้นละเว้น RAs เมื่อเปิดใช้งานการกำหนดเส้นทาง แต่พฤติกรรมนี้สามารถแทนที่ถ้าจำเป็น


คุณล้มเหลวในการพูดถึงวิธีการแทนที่ ฉันมีสิ่งต่อไปนี้ในไฟล์ / etc / network / interfaces sysctl -w net.ipv6.conf.eth0.accept_ra = 2 ซึ่งฉันเชื่อว่าเป็นการตั้งค่าให้เปิดใช้งาน RA
tgunr

อ๋อ, 0 ถูกปิดใช้งาน, 1 เป็นโหมดปกติ (เปิดใช้งานสำหรับโฮสต์ แต่ไม่ใช่เราเตอร์) และ 2 คือเปิดใช้งานแรง
ปีเตอร์กรีน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.