И то и другое:
sudo ip -s -s neigh flush all
И:
sudo arp -d 192.168.0.102
Вместо того, чтобы очистить кэш arp, они, кажется, просто делают записи недействительными (они будут отображаться как incomplete
). Даже через несколько минут ARP-кеш выглядит так:
$ arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.103 (incomplete) eth0
192.168.0.1 ether DE:AD:BE:EF:DE:AD C eth0
(MAC-адрес шлюза обновлен - это нормально)
Как я могу действительно очистить кэш ARP, как в «удалить все записи из таблицы»? Я не хочу хранить неполные записи, я хочу, чтобы они были удалены. Это возможно?
РЕДАКТИРОВАТЬ
Это моя система:
» arp --version
net-tools 1.60
arp 1.88 (2001-04-04)
+I18N
AF: (inet) +UNIX +INET +INET6 +IPX +AX25 +NETROM +X25 +ATALK +ECONET +ROSE
HW: (ether) +ETHER +ARC +SLIP +PPP +TUNNEL -TR +AX25 +NETROM +X25 +FR +ROSE +ASH +SIT +FDDI +HIPPI +HDLC/LAPB +EUI64
» lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
» uname -a
Linux polyphemus.xxx-net 3.13.0-46-generic #77-Ubuntu SMP Mon Mar 2 18:23:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
wireshark
илиtcpdump
.Ответы:
Обязательно сделайте все сразу, чтобы не нарушить сетевое подключение, прежде чем вы сможете снова включить ARP.
источник
dev=eth2; ip link set arp off dev $dev; sleep 1; ip link set arp on dev $dev
.sleep
Не может быть необходимым.Ваше первое решение работает, просто требуется немного времени (5-10 секунд в моем тесте на Kali), чтобы перейти от "(неполного)" до отсутствия записей.
Предположительно, он находится в каком-то переходном состоянии на пути к удалению.
источник
В определенной системе
ip
команда недоступна.Так что это альтернатива
ip link set arp off dev eth0; ip link set arp on dev eth0
команды.Если вы хотите удалить все записи из таблицы в одной команде, используйте
for loop
как в следующем примере.ПЕРЕД
УДАЛЕНИЕ ARP С ARP -D КОМАНДА
ПОСЛЕ: MAC-АДРЕС УДАЛЕН ИЗ ВХОДОВ С НЕПРАВИЛЬНЫМ СООБЩЕНИЕМ
Это правда, удалив arp с
arp -d
командой, записи arp все еще остаются сincomplete
сообщением.Чтобы решить эту проблему, используйте
ifconfig ethx up/down
как этоПЕРЕД
ОТКЛЮЧИТЬ И ВКЛЮЧИТЬ ИНТЕРФЕЙСЫ ETH1 и ETH2 В ОДНОЙ КОМАНДЕ
ТАДААА ... ПРОБЛЕМА РЕШЕНА :)
источник
Ваше упомянутое решение является правильным и безопасным подходом для очистки таблицы ARP:
ip neigh flush all [dev <device>]
Если некоторые записи заменяются недействительными, это временно и является частью протокола ARP. Важным аспектом является то, что сопоставление исчезло, запись ARP, помеченная как неполная, не является записью IP-MAC в таблице.
Я только что попробовал это, и в моем случае это немедленно очистило таблицу и не оставило неполных записей.
источник