Obie:
sudo ip -s -s neigh flush all
I:
sudo arp -d 192.168.0.102
Zamiast wyczyścić pamięć podręczną arp wydają się one po prostu unieważniać wpisy (pojawią się jako incomplete
). Nawet po kilku minutach pamięć podręczna ARP wygląda następująco:
$ 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 bramy został odświeżony - to dobrze)
Jak mogę naprawdę wyczyścić pamięć podręczną ARP, np. „Usuń wszystkie wpisy z tabeli”? I nie chcą zachować niekompletne dane, chcę je usunąć. czy to możliwe?
EDYTOWAĆ
To jest mój system:
» 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
lubtcpdump
.Odpowiedzi:
Zrób to wszystko naraz, aby nie przerywać łączności sieciowej, zanim nie będziesz mógł ponownie włączyć ARP.
źródło
dev=eth2; ip link set arp off dev $dev; sleep 1; ip link set arp on dev $dev
.sleep
Może nie być konieczne.Twoje pierwsze rozwiązanie działa, zajmuje tylko trochę czasu (5-10 sekund w moim teście na Kali), aby przejść z „(niekompletne)” do braku wpisów.
Przypuszczalnie jest w stanie przejściowym na drodze do usunięcia.
źródło
W niektórych systemach
ip
polecenie jest niedostępne.To jest alternatywa dla
ip link set arp off dev eth0; ip link set arp on dev eth0
polecenia.Jeśli chcesz usunąć wszystkie wpisy z tabeli za pomocą jednego polecenia, skorzystaj
for loop
z następującego przykładu.PRZED
USUWANIE ARP ZA POMOCĄ ARP -D
PO: ADRES MAC USUNIĘTY Z WEJŚĆ Z NIEKOMPLETNYM KOMUNIKATEM
To prawda, usuwając arp za pomocą
arp -d
polecenia, wpisy arp nadal są wyświetlane zincomplete
komunikatem.Aby rozwiązać ten problem, użyj
ifconfig ethx up/down
tego w ten sposóbPRZED
WYŁĄCZ i WŁĄCZ INTERFEJSY ETH1 i ETH2 W JEDNYM POLECENIU
TADAAA ... PROBLEM ROZWIĄZANY :)
źródło
Wspomniane rozwiązanie to prawidłowe i bezpieczne podejście do spłukiwania tabeli ARP:
ip neigh flush all [dev <device>]
Jeśli niektóre wpisy zostaną zmienione na nieprawidłowe, będzie to tymczasowe i będzie częścią protokołu ARP. Ważnym aspektem jest to, że mapowanie zniknęło, wpis ARP oznaczony jako niekompletny nie jest wpisem IP-MAC w tabeli.
Właśnie próbowałem tego i w moim przypadku natychmiast wyczyściło tabelę i nie pozostawiło niekompletnych wpisów.
źródło