{{tag>Brouillon Réseau}} # Notes sur le protocole ARP Voir aussi : * arp-scan * arptables * ebtables * ''ip neigh'' ''/etc/rc.local'' ~~~bash #!/bin/sh -e arp -f /etc/ethers exit 0 ~~~ ''/etc/ethers'' ~~~ 20:aa:4b:22:8B:4f 192.168.2.1 00:20:ed:5d:73:0b 192.168.2.100 ~~~ Afficher la table ARP ~~~bash arp -an ip n ~~~ (''ndp -a'' pour IPv6 ?) ~~~bash cat /proc/net/arp ~~~ Autre moyen d'éviter une attaque MITM à son encontre par corruption du cache ARP. ~~~bash arp -s "$gatewayIp" "$gatewayMac" ~~~ Vider le cache ARP ~~~bash #ip neighbor flush dev bond0 ip -s -s neigh flush all ~~~ Effacer une entrée avec la commande arp ~~~bash arp -d 192.168.1.1 ~~~ Générer une adresse mac ~~~bash printf 'DE:AD:BE:EF:%02X:%02X\n' $((RANDOM%256)) $((RANDOM%256)) ~~~ 52:54:00 -------- ## Exemple de pb ~~~ # arping -I p1p2 -c 1 215.219.132.12 ARPING 215.219.132.12 from 215.219.132.91 p1p2 Unicast reply from 215.219.132.12 [4C:D9:8F:9A:06:74] 0.766ms Sent 1 probes (1 broadcast(s)) Received 1 response(s) ~~~ ~~~ # ping -I p1p2 215.219.132.12 PING 215.219.132.12 (215.219.132.12) from 215.219.132.91 p1p2: 56(84) bytes of data. ~~~ ~~~ # ip neigh | egrep 215.219.132.12 215.219.132.12 dev p1p2 FAILED ~~~ Clearing cache with ip ~~~ # ip -s -s n flush all 215.219.132.12 dev p1p2 used 13/75/12 probes 6 FAILED 172.19.1.254 dev nm-bond lladdr d0:d0:fd:8d:a4:43 ref 1 used 45/0/45 probes 4 REACHABLE *** Round 1, deleting 2 entries *** *** Flush is complete after 1 round *** ~~~ ~~~ # ping -I p1p2 215.219.132.12 PING 215.219.132.12 (215.219.132.12) from 215.219.132.91 p1p2: 56(84) bytes of data. ^C --- 215.219.132.12 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms # ip n 215.219.132.12 dev p1p2 INCOMPLETE 172.19.1.254 dev nm-bond lladdr d0:d0:fd:8d:a4:43 REACHABLE # ip n 215.219.132.12 dev p1p2 FAILED 172.19.1.254 dev nm-bond lladdr d0:d0:fd:8d:a4:43 REACHABLE ~~~ ## Pb doublon d'adresse IP Erreur, un autre hôte utilise déjà l'adresse 192.168.1.20 Mais rien n'y fait : ~~~bash iptables -I INPUT -i eth0 iptables -I FORWARD -i eth0 #iptables -I FORWARD -o eth0 iptables -I OUTPUT -o eth0 ip route del blackhole 192.168.1.20 ~~~ Il s'agit d'une erreur réel. Sur une VM de test je dois tester une procédure mais sur toutes les interfaces réseaux possible de l'hyperviseur mon adresse est déjà prise. Il est rare que l'on veux forcer ou ignorer un doublon d'adresse IP. Mais dans mon cas je suis sur un environement de laboratoire, et il est compliqué pour moi de changer d'adresse IP. Solution : ~~~bash ip link set arp off dev eth0 ~~~ Voir aussi ~~~bash echo 1 > /proc/sys/net/ipv4/conf/all/hidden ~~~ Autre solution : * Suprimer eth0 (mais comment ?) * le recréer avec la commande ''ip'' et faire un bgrige ou autre sur ''lo''