ทำไมคุณต้องมี IPv6 Neighbor Solicitation เพื่อรับที่อยู่ MAC


12

ฉันเป็นนักพัฒนาซอฟต์แวร์และเพิ่งได้รับหนังสือฟรีเกี่ยวกับ IPv6 ที่ Techdays ซึ่งฉันกำลังอ่านเพื่อความสนุกสนาน พวกเขาแจกมันเพราะมันเป็นหนังสือเล่มเก่า (W2008) ดังนั้นบางทีสิ่งต่าง ๆ สำหรับ OS อื่น ๆ / ใหม่กว่า แต่ฉันไม่เข้าใจความจำเป็นที่ Neighbor Discovery จะได้รับที่อยู่ MAC

ตามหนังสือทุกโหนดจะได้รับ Link-local IP-address โดยอัตโนมัติซึ่งสร้างจาก MAC-address โดยการแทรกFF-FEระหว่าง 3 และ 4 ไบต์และพลิกบิต U / L เพื่อให้ Link-local IP สำหรับ โหนดที่มีที่อยู่ MAC ของจะกลายเป็น00-AA-00-3F-2A-1CFE80::2AA:FF:FE:3F:2A1C

ในการกำหนดที่อยู่ MAC ของเลเยอร์ลิงก์ข้อความชวนชวนเพื่อนบ้านจะถูกส่งไปยังที่อยู่ IP ของลิงก์ท้องถิ่นซึ่งตอบกลับด้วยข้อความที่มีที่อยู่ MAC ของมัน ... แต่ผู้ส่งรู้อยู่แล้วว่าเพราะ MAC ถูกเข้ารหัสในลิงค์ - ที่อยู่ IP ท้องถิ่น ดังนั้นดูเหมือนว่าจะส่งไปรษณียบัตรให้ใครบางคนที่ขอที่อยู่ของพวกเขา

คำตอบ:


20

ทุกโหนดจะสร้างที่อยู่ link-local โดยอัตโนมัติ แต่:

  • ที่อยู่นั้นอาจจะไม่ได้สร้างขึ้นด้วยรูปแบบ EUI-64 ที่ระบุไว้ในRFC 2464 ที่อยู่ IPv6 อาจเป็นที่อยู่ที่สร้างแบบเข้ารหัส ( RFC 3972 ), ที่อยู่ความเป็นส่วนตัวชั่วคราว ( RFC 4941 ) หรือในระบบปฏิบัติการที่ทันสมัย, ที่อยู่ส่วนตัวที่มีเสถียรภาพ ( RFC 7217 )

  • ที่อยู่ที่ดูเหมือนว่ามี ID อินเตอร์เฟส EUI-64 อาจไม่ตรงกับที่อยู่ MAC ที่ระบุเนื่องจากผู้ดูแลระบบกำหนดค่าอย่างชัดเจน

เนื่องจากคุณไม่สามารถเพียงแค่ "แปลงที่อยู่กลับ" เป็นที่อยู่ MAC คุณต้องส่งการเชิญชวนเพื่อนบ้านเพื่อระบุที่อยู่ MAC

มีเหตุผลอื่น ๆ ว่าทำไมการชักชวนเพื่อนบ้านจึงมีความจำเป็นเช่นกัน บางส่วนของเหล่านี้คือ:

  • การตรวจหาที่อยู่ที่ซ้ำกัน ( RFC 4862 ) อาจเป็นไปได้ว่าบางโฮสต์อื่นอาจมี (ถูกหรือผิด) อ้างสิทธิ์ที่อยู่ที่โฮสต์ต้องการใช้
  • การตรวจจับที่ไม่สามารถเข้าถึงเพื่อนบ้านได้ การขาดการตอบสนองต่อการชักชวนเพื่อนบ้านเป็นหนึ่งในตัวบ่งชี้ว่าเพื่อนบ้านไม่สามารถเข้าถึงได้

หนังสือทั้งหมดดีและดี แต่หนังสือที่ล้าสมัยอาจไม่มีประโยชน์ แม้แต่ IPv6 ก็มีการแก้ไขที่สำคัญในสิบปีที่ผ่านมา แหล่งที่มาของความจริงที่ดีที่สุดคือ RFC ที่เกี่ยวข้องทั้งที่เป็นต้นฉบับและสิ่งที่ถูกทำเครื่องหมายว่ามีการอัปเดตหรือล้าสมัย RFC ถูกระบุในรายละเอียดที่เพียงพอเพื่อให้สามารถนำไปปฏิบัติได้ คุณสามารถเรียนรู้รายละเอียดทั้งหมดของการค้นพบเพื่อนบ้านโดยการอ่านRFC 4861


ขอบคุณสำหรับการแก้ไข; หากไม่ได้ใช้รูปแบบ EUI-64 คุณไม่จำเป็นต้องค้นหา MAC เป็นอย่างอื่น แต่ที่จริงแล้วฉันไม่เข้าใจข้อกังวลด้านความเป็นส่วนตัวของรูปแบบ EUI-64 สำหรับที่อยู่ link-local เนื่องจากที่อยู่ link-local ถูกกำหนดขอบเขตไว้ที่ลิงก์และบนลิงก์นั้นที่อยู่ MAC จะต้องเป็น (และอาจเป็น ) รู้จักกันแล้ว (โดย Neighbor Solicitation) สำหรับการสื่อสารผ่านอีเธอร์เน็ตดังนั้นสำหรับความตั้งใจที่ชั่วร้ายที่อยู่ MAC สามารถบันทึกไว้ตามที่อยู่ส่วนบุคคลที่มีเสถียรภาพบนลิงก์ท้องถิ่นใช่หรือไม่?
Edwin

@Edwin เดิมที SLAAC ใช้สำหรับการกำหนดที่อยู่ IPv6 ทั้งหมดไม่ใช่แค่ที่อยู่ Link-Local เพื่อให้สามารถติดตามโฮสต์ได้ SLAAC เป็นวิธีเดียวเท่านั้นในการกำหนดที่อยู่ Link-Local พวกเขายังสามารถกำหนดด้วยตนเองและที่จะไม่ให้ที่อยู่ MAC ในที่อยู่ Link-Local ฉันรู้ว่าบางคนที่ต้องการกำหนดที่อยู่ทั้งหมดด้วยตนเองรวมถึง Link Local ดูเหมือนว่าจะมีงานจำนวนมากที่ไม่ได้กำไร แต่ก็ทำให้พวกเขามีความสุขและ IID ทั้งหมดของที่อยู่ทั้งหมดบนอินเทอร์เฟซเหมือนกันตามลำดับที่พวกเขาต้องการ
Ron Maupin

@Edwin และแต่ละโฮสต์จะรักษาแคชปลายทาง (ดู RFC 4861) ซึ่งคล้ายกับตาราง IPv4 ARP ที่โฮสต์ดูแล
Michael Hampton

CGA นั้นง่ายกว่าและปลอดภัยกว่าหากที่อยู่มีขนาดใหญ่เป็นสองเท่า ข้อมูลจำเพาะครึ่งหนึ่งเป็นวิธีการแก้ปัญหาเฉพาะการมี 64 บิตในตัวระบุส่วนต่อประสานที่พวกเขาต้องการได้อย่างสมบูรณ์ประมาณ 162 บิต เป็นสิ่งที่ควรจดจำเมื่อใดก็ตามที่ความคิดที่ว่า 128 บิตขึ้นมามากเกินไป
kasperd

คุณคิดว่าเอกสารใดที่ไม่เป็นมาตรฐานเกี่ยวกับเอกสาร Microsoft สำหรับฉันดูเหมือนว่ามันจะสรุป RFC ที่คุณเชื่อมโยงไว้
kasperd

9

ดังนั้นคุณอาจเข้าใจผิดหรือเข้าใจผิดในบางเรื่อง

การใช้ SLAAC โฮสต์สามารถสร้างที่อยู่ IPv6 ของตนเองโดยใช้ที่อยู่ MAC ของตน แต่หลายคนคิดว่าสิ่งนี้เป็นอันตรายให้ข้อมูลมากเกินไปและอนุญาตให้มีการติดตามโฮสต์เฉพาะ จากนั้นส่วนขยายความเป็นส่วนตัวและการสุ่มที่อยู่ได้รับการพัฒนาและพวกเขาจะใช้โดยระบบปฏิบัติการเพื่อให้ความเป็นส่วนตัว / ความปลอดภัย นั่นหมายความว่าโฮสต์สามารถสร้างที่อยู่ของตัวเองไม่ได้ขึ้นอยู่กับที่อยู่ MAC ของมัน

เมื่อโฮสต์ต้องการค้นหาที่อยู่ MAC ของเพื่อนบ้านใน IPv4 จะใช้ ARP ARP กระจายการร้องขอ แต่ IPv6 ไม่มีการออกอากาศ แต่โฮสต์ทุกตัวจะต้องเข้าร่วมกลุ่มมัลติคาสต์ Solicited กลุ่มนี้ขึ้นอยู่กับ 24 บิตสุดท้ายของที่อยู่ IPv6 เนื่องจากอินเตอร์เฟส IPv6 สามารถมีที่อยู่ IPv6 ได้จำนวนเท่าใดโฮสต์จึงอาจเข้าร่วมกลุ่มมัลติคาสต์โหนดที่ร้องขอ โฮสต์ IPv6 กำลังมองหาที่อยู่ MAC ของโฮสต์อื่นจะส่งการร้องขอมัลติคาสต์ไปยังกลุ่มมัลติคาสต์โหนด Solicited ของที่อยู่ IPv6 เป้าหมาย

นี่เป็นข้อได้เปรียบเหนือกว่า IPv4 ARP เนื่องจาก ARP ใช้การออกอากาศสำหรับการร้องขอมันขัดจังหวะทุกโฮสต์บนโดเมนการออกอากาศเลเยอร์ 2 เนื่องจากกลุ่มมัลติคาสต์ Solicited ใช้ 24 บิตสุดท้ายของที่อยู่ IPv6 เป้าหมายการร้องขอมัลติคาสต์ ND อาจจะขัดจังหวะโฮสต์เป้าหมายเท่านั้นหรืออาจโฮสต์หนึ่งหรือสองโฮสต์บนโดเมนบรอดคาสต์เลเยอร์ 2

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