Як транслювати оновлення ARP всім сусідам в Linux?


21

Деякі клієнти в підмережі кешували IP зі старою MAC-адресою, я хочу, щоб вони оновили нове значення, здійснюючи трансляцію ARP, чи можливо це в Linux?

Відповіді:


27

Так, це називається "Непотрібний ARP" або "Безкоштовний ARP". Перегляньте сторінку аргування на наявність деталей, але синтаксис виглядає приблизно так:

arping -U 192.168.1.101

Якщо ви підробляєте адресу, вам може знадобитися запустити цю програму спочатку:

echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind

Нарешті, через свою здатність до підробки, надсилання непрошених пакетів ARP іноді вважається "ворожою" діяльністю, і може ігноруватися, або може призвести до блокування деякими сторонніми брандмауерами.


8
Під debian команда для мене була arping -S ip.to.update -i ethX destination.host. Приклад:arping -S 10.0.0.2 -i eth0 10.0.0.1
radicand

3
Я вважав за необхідне зробити арпінг до маршрутизатора, як описано вище в Linux, коли IP є псевдонімом на пристрої (тобто або вторинний NIC використовує IP, або якщо це псевдонім для існуючого NIS, який був налаштований за допомогою ifconfig ethx:xтипу псевдоніма). Якщо це первинне, це ніколи не здається необхідним.

8

Те, що ви шукаєте, називається " Безкоштовний ARP ", і це можна зробити за допомогою "arping". Якщо ваша IP-адреса 10.0.0.1 на eth0, ви використовуєте цю команду:

arping -A -I eth0 10.0.0.1

Ви можете переконатися, що ARP надсилається за допомогою "tcpdump" під час запуску "arping", і в цьому випадку я переглядаю "wlan0":

laptop:~$ sudo tcpdump -lni wlan0 arp    
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:14:11.219936 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28
12:14:12.220119 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28
12:14:13.220288 ARP, Reply 172.16.42.161 is-at a4:77:03:d2:9b:c4, length 28
^C
3 packets captured
3 packets received by filter
0 packets dropped by kernel
laptop:~$ 

-1

Це не обов'язково. Як і в: коли ви змінили IP-адресу, комп'ютер повинен був зробити це автоматично. Якщо клієнти жорстко кодуються, трансляція не змінить перекодування, що було кодовано.

Я займаюся ІТ вже близько 20 років, і за весь цей час у мене НІКОЛИ (!) Це не відбувалося без несправного обладнання.


Проблема полягає в тому, що я випадково призначаю нову машину із використовуваним IP, тому вони конфліктують з IP. Я не можу отримати доступ до старої машини за допомогою SSH. Тепер я віддалено вимикаю неправильну (нову) машину, але досі не можу отримати доступ до старої машини, я підозрюю, що маршрутизатор кеширував MAC-адресу у своїй таблиці ARP.
Говард

1
Це називається «» безоплатне ARP «» - див en.wikipedia.org/wiki / ...
Kimvais

Має працювати після закінчення терміну дії кеш-пам'яті. Ви також можете спробувати промити таблицю арп на машині, з якої ви намагаєтеся отримати доступ до старої машини
Kimvais

4
@TomTom - можливо, ви просто не працювали в правильному середовищі, щоб побачити це. Відправка непотрібних пакетів ARP - це звичайний спосіб швидкого перенаправлення трафіку на новий сервер у разі відмови. Для багатьох комутаторів високого класу та маршрутизаторів може знадобитися кілька хвилин, щоб визнати, що IP-адреса перейшла на інший фізичний порт в іншому випадку. Перемикачі Cisco для цього не відомі.
tylerl

4
@TomTom: Так, якщо ви не вдається через серцебиття / коросинхронію, що завгодно. Однак якщо ви вручну переміщуєте служби з однієї машини на іншу, особливо якщо ви перебуваєте на передачі Cisco, вручну надсилати безкоштовну ARP вкрай корисно. Я погоджуюся, що це не те, що ти часто робиш, але як хтось, хто також займається ІТ протягом 20 років, я опинився в ряді ситуацій, коли мені це потрібно було зробити.
Шон Рейфшнайдер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.