IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau Discussion :

Commande sous Linux (afin de vider le cache ARP)


Sujet :

Réseau

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Commande sous Linux (afin de vider le cache ARP)
    Bonjour à vous

    Voilà je cherchais une commande pour nettoyer un cache arp sous Linux, au gré de mes recherches j'ai trouvé celle ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for arptable in `arp | grep "eth1" | cut -d " " -f1`; do arp -d $arptable; done
    Etant néophyte sur Linux,j'aurais aimé comprendre en détail cette commande. Si d'aventure une âme charitable pouvait me l'expliquer, cela me permettrais de mieux la comprendre.

    Merci par avance

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Je me demande bien pourquoi tu veux vider ton cache arp, mais bon, c'est un autre debat. Donc voici l'explication :

    Citation Envoyé par Kartchak Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ for arptable in `arp | grep "eth1" | cut -d " " -f1`; do arp -d $arptable; done
    Pour chaque ligne de la commande
    arp | grep "eth1" | cut -d " " -f1
    Faire :
    arp -d "la ligne en question"
    FinPour

    arp -d : supprime la ligne qui suit le -d. http://man.developpez.com/man8/arp.8.php

    Donc, que fait la ligne en question ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      arp | grep "eth1" | cut -d " " -f1
    arp : affiche les entrees de la table arp (enfin je suppose que c'est le cas sur ton systeme, ce n'est pas le cas sur le mien).
    | grep "eth1" : ne garder que les lignes qui contiennent "eth1"
    | cut -d " " -f1 : couper sur le caractere espace (-d " "), et n'afficher que le premier champs.

    A faire pour mieux comprendre (tu ne crains rien a executer ces commandes) :
    arp
    arp | grep "eth1"
    arp | grep "eth1" | cut -d " " -f1

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    En fait ma démarche se fait dans le cadre d’exercice que j'ai à faire dans le cursus de ma formation.

    Je dois à un moment vider un cache ARP sous Linux, ne trouvant pas le moyen j'ai cherché et trouvé la commande citée plus haut. Mais je n'aime pas appliqué une commande sans en comprendre le fonctionnement d’où mon post.

    Tu as répondu à mes interrogations,merci à toi pour ton intervention.

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Citation Envoyé par Kartchak Voir le message
    En fait ma démarche se fait dans le cadre d’exercice
    Je comprends mieux. Non parce que diagnostiquer un probleme de cache ARP sans connaitre ces commandes, je trouvais ca bizarre

    Citation Envoyé par Kartchak Voir le message
    Mais je n'aime pas appliqué une commande sans en comprendre le fonctionnement d’où mon post.
    Bravo a toi, c'est un tres bon comportement (trop rare en fait, d'ou ma remarque).

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Re bonjour

    Ma question d'hier a été résolu, mais la réponse m'a apporté une nouvelle interrogation.

    Sur un système Linux il semble impossible d'effacer tout le cache ARP, je m'explique:

    - en utilisant la commande cité plus haut (j'ai juste modifié pour mon système "eth1 par eth0") ne s'efface dans le cache ARP que l'adresse mac et non l'adresse IP.

    -en utilisant sur un système Windows la commande arp -d , là je constate que tout est effacé.

    Est ce normal que sur un système Linux tout ne s'efface pas, ou bien faut il rajouter autre chose à la commande?



    Pour information, je ne me suis pas contenté d'utiliser que la commande plus haut,j'en ai utilisé pas moins de 5 autres trouvées au gré de mes recherches. Et toutes avec le même résultat dans lequel il n'y a que l'adresse mac qui s'efface. Voici ci dessous les différentes commandes utilisées:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    for arptable in `arp | grep "eth0" | cut -d " " -f1`; do arp -d $arptable; done
     
     
    for i in `arp -n | grep ^[0-9] | awk '{print $1}'`; do arp -d $i; done;
     
     
    for i in `awk -F ' ' '{ if ( $1 ~ /[0-9{1,3}].[0-9{1,3}].[0-9{1,3}].[0-9{1,3}]/ ) print $1 }' /proc/net/arp`; do arp -d $i; done
     
     
    ip neigh flush all
     
     
    ip neigh flush dev eth0
     
     
    ip -s -s neigh flush all


    Merci par avance pour vos réponses.


    Ps:Je suis désolé de mon manque de connaissance de l'univers Linux, et c'est grâce à des forums comme celui ci que mes connaissances se développent, merci à vous.

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 369
    Points
    50 369
    Par défaut
    Citation Envoyé par Kartchak Voir le message
    Est ce normal que sur un système Linux tout ne s'efface pas, ou bien faut il rajouter autre chose à la commande?
    Oui, les implémentations de la commande "arp" sont légèrement différentes entre Windows et Linux.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut,

    tu peux fournir le display arp -n ?

    Steph

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Voici l'arp -n avant la commande:

    root@ubuntu10:~# arp -n
    Address HWtype HWaddress Flags Mask Iface
    172.16.42.4 ether 48:5b:39:f0:6f: xx C eth0
    172.16.42.3 ether f4:6d:04:53:52: xx C eth0


    le voici après une des commandes pré-citées:

    root@ubuntu10:~# ip neigh flush all
    root@ubuntu10:~# arp -n
    Address HWtype HWaddress Flags Mask Iface
    172.16.42.4 ether 48:5b:39:f0:6f: xx C eth0
    172.16.42.3 (incomplete) eth0


    Sur windows:

    C:\Documents and Settings\tt11rena>arp -a

    Interface*: 172.16.42.4 --- 0x4
    Adresse Internet Adresse physique Type
    172.16.8.8 00-24-01-5e-69-xx dynamique
    172.16.8.99 5c-f3-fc-27-de-xx dynamique
    172.16.8.172 00-1a-64-c9-ce-xx dynamique
    172.16.8.201 00-0c-6e-f3-c2-xx dynamique
    172.16.42.172 00-14-c2-50-48-xx dynamique
    172.16.84.8 00-50-56-ae-4b-xx dynamique
    172.16.84.210 00-50-56-ae-5c-xx dynamique

    C:\Documents and Settings\tt11rena>arp -d

    C:\Documents and Settings\tt11rena>arp -a

    Interface*: 172.16.42.4 --- 0x4
    Adresse Internet Adresse physique Type
    172.16.8.99 5c-f3-fc-27-de-xx dynamique
    172.16.43.254 f0-7d-68-c4-ad-xx dynamique


    Voilà les informations, j'ai juste modifié les deux dernières données des adresses mac.

    Merci par avance.

  9. #9
    Invité
    Invité(e)
    Par défaut
    J'utilise également une distro Kubuntu, et la seule entrée qui reste résiliente dans le cache ARP est l'adresse IP de ma gateway.

    Je remplis le cache en émettant des ping sur le local broadcast :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    root@steph-ThinkPad-T400:~# ping -b 192.168.1.255
    WARNING: pinging broadcast address
    PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.
    64 bytes from 192.168.1.102: icmp_req=1 ttl=64 time=0.853 ms
    64 bytes from 192.168.1.100: icmp_req=1 ttl=64 time=0.869 ms (DUP!)
    64 bytes from 192.168.1.101: icmp_req=1 ttl=64 time=0.875 ms (DUP!)
    64 bytes from 192.168.1.102: icmp_req=2 ttl=64 time=0.284 ms
    64 bytes from 192.168.1.101: icmp_req=2 ttl=64 time=0.307 ms (DUP!)
    64 bytes from 192.168.1.100: icmp_req=2 ttl=64 time=0.313 ms (DUP!)
    64 bytes from 192.168.1.101: icmp_req=3 ttl=64 time=0.509 ms
    64 bytes from 192.168.1.102: icmp_req=3 ttl=64 time=0.526 ms (DUP!)
    64 bytes from 192.168.1.100: icmp_req=3 ttl=64 time=0.532 ms (DUP!)
    64 bytes from 192.168.1.102: icmp_req=4 ttl=64 time=0.496 ms
    64 bytes from 192.168.1.101: icmp_req=4 ttl=64 time=0.515 ms (DUP!)
    64 bytes from 192.168.1.100: icmp_req=4 ttl=64 time=0.521 ms (DUP!)
    64 bytes from 192.168.1.102: icmp_req=5 ttl=64 time=0.314 ms
    64 bytes from 192.168.1.101: icmp_req=5 ttl=64 time=0.330 ms (DUP!)
    64 bytes from 192.168.1.100: icmp_req=5 ttl=64 time=0.336 ms (DUP!)
    ^C
    --- 192.168.1.255 ping statistics ---
    5 packets transmitted, 5 received, +10 duplicates, 0% packet loss, time 3998ms
    rtt min/avg/max/mdev = 0.284/0.505/0.875/0.202 ms
    Puis j'affiche le cache ARP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    root@steph-ThinkPad-T400:~# arp -n
    Address                  HWtype  HWaddress           Flags Mask            Iface
    192.168.1.102            ether   08:00:37:8e:e7:ca   C                     eth0
    192.168.1.101            ether   08:00:37:8e:e8:0f   C                     eth0
    192.168.1.2              ether   00:0c:29:6b:2c:d7   C                     eth0
    192.168.1.100            ether   08:00:37:8e:e7:f3   C                     eth0
    D'ailleurs je constate qu'il y a pas grand monde à bosser sur ce réseau cet après-midi, je pourrais peut-être vendre ce display au boss du service

    Maintenant, je flushe le cache ARP et je l'affiche de nouveau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     root@steph-ThinkPad-T400:~# ip neigh flush all
     root@steph-ThinkPad-T400:~# arp -n
     Address                  HWtype  HWaddress           Flags Mask            Iface
     192.168.1.2                      (incomplete)                              eth0
    Cette adresse est ma gateway, l'entrée est incomplète car ma commande a effacé l'entrée, le kernel ne connait donc pas encore la MAC et surtout cette adresse est critique pour mon stack IP !

    On aura cette même entrée incomplète dans le cas où la gateway disparaitrait. La machine émet des ARP Requests en permanence mais ne reçoit pas de réponse.

    Dans le cas d'un flush de cache ARP, les entrées peuvent être incomplètes temporairement, le temps pour la machine de recevoir un ARP Reply ou un Gratuitous ARP.

    Steph

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour les réponses à vous deux.

    @Steph: tes réponses éclairent un peu plus ma lanterne. J'avoue que Linux est une découverte pour moi et que je nage un peu avec ce système. Et vu que je suis de ceux qui se posent de nouvelles questions à chaque nouvelles réponses; j'en ai pas fini ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution de commandes sous Linux
    Par Mr-Mobou dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 27/03/2008, 19h46
  2. commande sous linux
    Par looping dans le forum Firebird
    Réponses: 6
    Dernier message: 30/05/2007, 22h47
  3. Ligne de commande sous linux
    Par dondano dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 17/01/2007, 11h22
  4. [Système] Lancer l'invite de commande sous Linux ?
    Par haffouff dans le forum Langage
    Réponses: 3
    Dernier message: 19/05/2006, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo