Чому для отримання MAC-адреси вам потрібен пошук сусідів IPv6?


12

Я розробник програмного забезпечення і щойно отримав безкоштовну книгу про IPv6 на Techdays, яку я читаю для розваги. Вони подарували його, тому що це трохи стара книга (W2008), тож, можливо, для інших / новіших ОС усе інакше, але я не розумію необхідності, щоб Neighbor Discovery отримала MAC-адресу.

Згідно з книгою, кожен вузол автоматично отримує локальну IP-адресу Link, яка будується з MAC-адреси, вставляючи FF-FEміж 3-м та 4-м байтами та перегортаючи біт U / L, так що локальний IP-зв’язок для a вузол з MAC-адресою 00-AA-00-3F-2A-1Cстає FE80::2AA:FF:FE:3F:2A1C.

Щоб визначити MAC-адресу рівня посилання, на локальну IP-адресу посилається повідомлення про сусіди, яке відповідає на повідомлення, що містить його MAC-адресу ... Але відправник це вже знає, оскільки MAC закодований у посиланні- локальна IP-адреса. Тож це звучить як надсилання листівки комусь із запитом їх адреси.

Відповіді:


20

Кожен вузол автоматично генерує локальну адресу, але:

  • Ця адреса може не генеруватися у форматі EUI-64, визначеному в RFC 2464 . Адреси IPv6 можуть бути також криптографічно генерованими адресами ( RFC 3972 ), тимчасовими адресами конфіденційності ( RFC 4941 ), або в сучасних операційних системах, стабільними адресами конфіденційності ( RFC 7217 ).

  • Адреса, схожа на те, що має ідентифікатор інтерфейсу EUI-64, може насправді не відповідати вказаній MAC-адресі через явну конфігурацію адміністратором.

Оскільки ви не можете просто "перетворити адресу назад" в MAC-адресу, ви повинні надіслати сусіда, щоб визначити MAC-адресу.

Є й інші причини, через які необхідні сусіди прохання. Деякі з них:

  • Виявлення дублюючої адреси ( RFC 4862 ). Можливо, якийсь інший хост може (правда чи неправильно) вказав адресу, яку хост хотів використовувати.
  • Виявлення сусіда недосяжності. Відсутність відповіді на сусідські клопотання є одним із показників того, що сусід недоступний.

Книги все добре і добре, але дуже застарілі книги можуть бути не настільки корисними. Навіть IPv6 зазнав значних змін за останні десять років. Найкращим джерелом істини є відповідні RFC, як оригінальні, так і будь-які, позначені як оновлені або застарілі. RFC задані досить детально, щоб можна було записати відповідні реалізації. Ви можете дізнатися всі деталі відкриття сусіда, прочитавши RFC 4861 .


Дякую за виправлення; якщо не використовується формат EUI-64, дійсно потрібно виявити MAC інакше. Але насправді я не розумію, що стосується конфіденційності у форматі EUI-64 для локальних адрес посилань, оскільки локальна адреса посилання прив’язана до посилання, і на цьому посиланні MAC-адреса повинна бути (і може бути ) відомий у будь-якому випадку (від Neighbor Solicitation) для Ethernet-зв’язку, тому для злих намірів MAC-адресу можна зберегти на стабільній адресі конфіденційності на локальному посиланні, чи не так?
Едвін

@Edwin, SLAAC спочатку використовувався для всіх IPv6-адресацій, а не лише для локальних адрес, щоб хост міг відстежувати. SLAAC - це лише один метод присвоєння локальних адрес зв'язку. Вони також можуть бути призначені вручну, і це не дасть вам MAC-адресу в локальній адресі посилання. Я знаю деяких людей, які хочуть вручну призначити всі адреси, включаючи локальне посилання. Мабуть, багато роботи мало, що не приносить користі, але це робить їх щасливими, і всі IID-адреси всіх адрес в інтерфейсі однакові, в тому порядку, який вони віддають перевагу.
Рон Моупін

@Edwin І, кожен хост дійсно буде підтримувати кеш призначення (див. RFC 4861), аналогічний таблиці ARP IPv4, який підтримує хост.
Майкл Хемптон

CGA могла бути простішою та безпечнішою, якби адреси були вдвічі більшими. Половина специфікації є обхідною, оскільки в ідентифікаторі інтерфейсу є лише 64 біти, де в ідеалі хотілося б близько 162 біт. Варто пам’ятати щоразу, коли виникає думка, що 128 біт занадто багато.
kasperd

Що ви вважаєте нестандартним щодо цього документа Microsoft? Для мене це виглядає так, що це просто підсумовує RFC, з якими ви пов’язані.
kasperd

9

Отже, ви або неправильно зрозуміли, або були дезінформовані з кількох речей.

Використовуючи SLAAC, хост може побудувати власну IPv6-адресування, використовуючи свою MAC-адресу, але багато людей думали, що це небезпечно, надаючи занадто багато інформації та дозволяючи відстежувати певного хоста. На основі цього були розроблені розширення конфіденційності та випадкова адресація, і вони використовуються ОС для забезпечення конфіденційності / безпеки. Це означає, що хост може створити власну адресацію, не спираючись на свою MAC-адресу.

Коли хосту потрібно виявити MAC-адресу сусіда в IPv4, він використовує ARP. ARP транслює запит, але IPv6 не має трансляції. Натомість кожен хост повинен приєднатися до групи багатоадресної передачі потрібного вузла. Ця група заснована на останніх 24 бітах своєї адреси IPv6. Оскільки інтерфейси IPv6 можуть мати будь-яку кількість IPv6-адрес, хост може приєднатися до декількох груп багатоадресних запитів. Хост IPv6, який шукає MAC-адресу іншого хоста, надішле запит на багатоадресну передачу в групу багатоадресної передачі потрібного вузла цільової адреси IPv6.

Це забезпечує перевагу перед IPv4 ARP. Оскільки ARP використовує трансляцію для запитів, він перериває кожен хост на домені широкомовного рівня 2. Оскільки група багатоадресних оголошень Solicited Node використовує останні 24 біти цільової адреси IPv6, запит ND для багатоадресної передачі, ймовірно, лише перерве цільовий хост або, можливо, один або два інших хости на широкомовному домені рівня 2.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.