web-dev-qa-db-fra.com

Ajouter des entrées ARP statiques lorsque le réseau est mis en place

J'ai des périphériques IP assez stupides sur un sous-réseau avec mon serveur Ubuntu, et le serveur reçoit les données en streaming de chaque périphérique. J'ai rencontré un problème en ce que lorsqu'une demande ARP est émise vers le périphérique alors qu'il transmet des données au serveur, la demande est ignorée, l'entrée du cache expire et le serveur cesse de recevoir le flux.

Donc, pour empêcher le serveur d’envoyer des requêtes ARP à ces périphériques, je voudrais ajouter une entrée ARP statique pour chacun, quelque chose comme:

arp -i eth2 -s ip.of.the.device mac:of:the:device

Mais ces entrées ARP "statiques" sont perdues si la mise en réseau est désactivée/activée ou si le serveur est redémarré. Où est le meilleur endroit pour ajouter automatiquement ces entrées, de préférence un endroit qui les rajoutera chaque fois que l'interface eth2 est affichée?

Je ne veux vraiment pas écrire un script qui surveille la sortie de arp et rajoute les entrées de cache si elles sont manquantes.


Modifier pour ajouter mon script final:

Créé le fichier

 /etc/network/if-up.d/add-my-static-arp

Avec le contenu:

#!/bin/sh

arp -i eth0 -s 192.168.0.4 00:50:cc:44:55:55
arp -i eth0 -s 192.168.0.5 00:50:cc:44:55:56
arp -i eth0 -s 192.168.0.6 00:50:cc:44:55:57

Et puis évidemment ajouter la permission pour permettre son exécution:

chmod +x /etc/network/if-up.d/add-my-static-arp

Et ces entrées arp seront ajoutées ou rajoutées manuellement chaque fois qu'une interface réseau est affichée.

5
jozzas

Jetez un coup d'œil aux scripts dans /etc/network/if-up.d. Celles-ci sont appelées à chaque fois qu'une interface passe à état actif. Vous pouvez créer un script avec les commandes nécessaires et le mettre là.

9
Mr Shunz
/etc/ethers

Ce fichier doit contenir:

mac    ip-address
2
crester