Чи повинен запит ARP отримувати повторне надсилання, коли з'єднання розривається або лише після тайм-ауту кешу?


2

У мене виникає ситуація, коли IP-адреса переміщується з одного пристрою на інший, і не надсилається повідомлення про безоплатне ARP (Address Resolution Protocol) для оновлення членів цієї мережі.

У цій мережі є пристрій, який, мабуть, потребує довгого тайм-ауту кешу ARP до 20 хвилин, щоб знову почати спілкуватися. Інший пристрій надсилає свій запит ARP відразу після того, як він розпізнає розірване з'єднання, і тому він досить швидко доступний у мережі знову.

Мені цікаво, чи є якесь визначення, що пристрій повинен повторно надіслати запит ARP, якщо його цільова MAC-адреса або IP-зв’язок більше недоступні?

Це питання так чи інакше пов'язане з питанням " Як ARP обробляє переміщення IP-адреси на інший пристрій? ".

Відповіді:


2

Мені цікаво, чи є якесь визначення, що пристрій повинен повторно надіслати запит ARP, якщо його цільова MAC-адреса або IP-зв’язок більше недоступні?

Ні, немає. Не існує навіть вимоги, щоб хости мали записи в тайм-ауті таблиці ARP.

RFC 826, Протокол роздільної здатності адреси Ethernet - або - Перетворення мережевих протокольних адрес до 48.bit Ethernet адреси для передачі на апаратне забезпечення Ethernet обговорює проблеми, пов'язані з цим:

Можливо, бажано мати старіння та / або тайм-аути. Реалізація цих питань виходить за межі цього протоколу. Ось більш детальний опис (завдяки MOON @ SCRC @ MIT-MC).

Якщо хост рухається, будь-які з'єднання, ініційовані цим хостом, працюватимуть, припускаючи, що його власна таблиця роздільної здатності буде очищена під час переміщення. Однак з'єднання, ініційовані до нього іншими хостами, не матимуть жодних причин знати про відхилення старої адреси. Однак, 48.bit Ethernet адреси повинні бути унікальними та виправленими на весь час, тому вони не повинні змінюватися. Хост міг би "переміститися", якби ім'я хоста (та адреса в якомусь іншому протоколі) було присвоєно іншому фізичному пристрою. Крім того, як ми знаємо з досвіду, завжди існує небезпека неправильної передачі інформації про маршрутизацію через випадкові помилки обладнання або програмного забезпечення; не слід дозволяти зберігатися вічно. Можливо, якщо не вдалося ініціювати з'єднання, слід повідомити модуль Resolution Address, щоб видалити інформацію, виходячи з того, що хост недоступний, можливо, тому, що він не працює або старий переклад більше не діє. Або, можливо, отримання пакету від хоста повинно скинути тайм-аут у записі роздільної здатності адреси, який використовується для передачі пакетів цьому хосту; якщо пакети не приймаються від хоста протягом відповідного проміжку часу, запис роздільної здатності адреси буде забутий. Це може призвести до додаткового накладного сканування таблиці для кожного вхідного пакету. Можливо, хеш або індекс може зробити це швидше. Або, можливо, отримання пакету від хоста повинно скинути тайм-аут у записі роздільної здатності адреси, який використовується для передачі пакетів цьому хосту; якщо пакети не приймаються від хоста протягом відповідного проміжку часу, запис роздільної здатності адреси буде забутий. Це може призвести до додаткового накладного сканування таблиці для кожного вхідного пакету. Можливо, хеш або індекс може зробити це швидше. Або, можливо, отримання пакету від хоста повинно скинути тайм-аут у записі роздільної здатності адреси, який використовується для передачі пакетів цьому хосту; якщо пакети не приймаються від хоста протягом відповідного проміжку часу, запис роздільної здатності адреси буде забутий. Це може призвести до додаткового накладного сканування таблиці для кожного вхідного пакету. Можливо, хеш або індекс може зробити це швидше.

Запропонований алгоритм отримання пакетів роздільної здатності адреси намагається зменшити час, необхідний для відновлення, якщо хост дійсно переміщується. Нагадаємо, що якщо таблиця перекладу вже є, то апаратна адреса відправника замінює існуючий запис. Отже, на ідеальній Ethernet, де широкомовна запит досягає всіх станцій кабелю, кожна станція отримає нову апаратну адресу.

Іншою альтернативою є те, щоб демон демонстрував тайм-аути. Після відповідного часу демон демонструє видалення запису. Він спочатку надсилає (з невеликою кількістю повторних передач, якщо потрібно) пакет роздільної здатності адреси з опкодом ЗАПИТАННЯ безпосередньо на адресу Ethernet у таблиці. Якщо ЗАВДАННЯ не відображається за короткий проміжок часу, запис видаляється. Запит надсилається безпосередньо, щоб не турбувати кожну станцію в Ethernet. Просто забуття записів, ймовірно, призведе до забуття корисної інформації, яку необхідно відновити.

Оскільки хости не передають інформацію про когось, окрім себе, перезавантаження хоста призведе до оновлення таблиці відображення адрес. Погана інформація не може зберігатися назавжди, передаючи її з машини на машину; Єдина погана інформація, яка може існувати, - це машина, яка не знає, що якась інша машина змінила свою 48.bit адресу Ethernet. Можливо, вручну скинути (або очистити) таблицю відображення адрес буде достатньо.

Це питання, очевидно, потребує більше роздумів, якщо воно вважається важливим. Це викликано будь-яким протоколом, подібним до роздільної здатності адреси.


Це фактично означає, що я не можу подати скаргу у виробника пристрою, якщо пристрій не спілкується із пристроєм, що замінює, який має ту саму IP-адресу, що і старий.
Майкл Урай

На жаль, багато RFC залишають конкретні методи чи реалізації тільки виробникам ОС. Я б все-таки зацікавився виробником пристрою, оскільки ви - замовник, і це заподіює вам біль. Це має бути простою справою, щоб пристрій надсилав безплатний ARP, коли він потрапляє в мережу. Ви насправді не просите багато, на відміну від прохання підтримати новий протокол, який повинен бути розроблений з нуля.
Рон Моупін

Я фактично мав на увазі виробника пристрою, який не надсилає запит ARP на розірване з'єднання протягом 20 хвилин. Сам маршрутизатор працює в системі OpenWRT, і, ймовірно, можливо якесь хоч якесь можливе рішення для сценаріїв гарячої підключення ( forum.openwrt.org/viewtopic.php?id=69878 ), але це не допомагає, якщо пристрій розділено комутатором і система OpenWRT не розпізнає зміну з'єднання. Регулярне циклічне надсилання (наприклад, кожна хвилина) вирішило б це, але я б не називав це "приємним" рішенням.
Майкл Урай
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.