web-dev-qa-db-fra.com

Comment identifier les nics connectés au même commutateur d'une boîte Linux?

La configuration initiale

En tant qu'administrateur Linux, vous avez installé une boîte de Linux fraîche avec 6 niques ETH0 à ETH5. L'interface ETH0 est correctement configurée et toutes les autres interfaces sont actuellement en hausse mais sans adresse IP. Les gars du réseau ont simplement joint à quatre câbles à cette boîte. Deux câbles LAN sont utilisés pour connecter la boîte au réseau de production et deux sont utilisés pour connecter la boîte à un réseau privé. Vous savez que si l'ETH0 est connecté au filet de production. Mais vous ne savez pas quel autre NIC est connecté au même commutateur qu'il existe différentes générations de serveur et/ou les gars de réseau utilisent les mauvais NICS pour leurs connexions.

Tâche à accomplir

Comme cette configuration est typique de votre infrastructure, vous souhaitez automatiser la configuration des interfaces de liaison. Maintenant, vous avez la tâche à détecter quels nics ne sont pas connectés du tout et quels NIC sont liés au même commutateur afin qu'ils puissent être liés. Vous n'avez que l'accès aux boîtes Linux et ne pouvez pas interroger les commutateurs.

Idées

La détection de l'état de la liaison est facile:

ethtool $device | grep 'Link detected' | cut -d ':' -f 2

Mais comment faire correspondre les périphériques connectés au même commutateur?

Dans HP-UX, il y a un outil à cet effet appelé Linkloop [1]. L'outil officiel Linux est manquant (il y a un ancien projet Sourceforce, cependant).

Des solutions possibles qui sont déjà venues à mon esprit sont les suivantes:

  1. Écoutez sur toutes les interfaces avec TCPDump. Craft et envoyer un paquet ICMP (diffusée). Les interfaces qui voient que le paquet doit être connecté au même commutateur. -> Besoin de suggestions d'outils simples pouvant être utilisés pour cela. Je voudrais utiliser des commandes de shell simples ou Python pour le script.

  2. Essayez de parler à une boîte externe via un protocole facile (http?) Et voir s'il y a une réponse. -> Erreur sujette et dépendante d'une boîte externe.

Avez-vous d'autres idées ou suggestions comment résoudre cette tâche?

Merci d'avance pour tous les commentaires!

[1] http://linux.die.net/man/1/linkloop

15
Reiner Rottmann

Si l'interrupteur communiquera avec vous à l'aide de LLDP, vous pourrez peut-être exécuter [~ # ~] lldp [~ # ~ ~] et trouver plus d'informations là-bas.

3
mcmeel

Si les interrupteurs sont des périphériques Cisco, vous pouvez peut-être obtenir des informations CDP, à condition qu'elles annonçaient/diffuser des informations CDP

par exemple outils CDP ou CDPR

3
mike brentlinger

Pourquoi ne pas simplement télécharger et construire l'outil linkloop? Ce n'est pas si vieux ...

Sinon, j'utiliserais simplement un outil qui diffusera sur la couche 2 et vérifiera que vous le recevez via TCPDump.

Envoi d'un paquet ICMP de diffusion est facile ping -b 192.168.1.255

1
user606723