• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Résolu] Problème de détection des ports trunk avec des switch HP
#1
Bonjour,
pour faire remonter la liste du matériel connecté au réseau, nous avons une tâche avec deux jobs : une découverte réseau sur cinq plages IP puis un inventaire SNMP sur 17 piles de switch HP et Cisco (l'inventaire ne se fait pas sur les plages IP à cause d'un bug déjà largement signalé). La tâche se déroule bien et des informations remontent bien dans GLPI.

Chaque pile de switchs possède des ports trunk taggués pour pouvoir échanger des paquets avec les autres switchs sans tenir compte des VLAN. Sur les switchs Cisco, il n'y a globalement aucun problème : les ports connectés remontent en verts, ceux déconnectés en gris, ceux possédant plusieurs équipements (comme des hôtes à machines virtuelles) en bleu, dans des "hubs", et les ports trunk en orange, avec un autre switch de connecté en face. C'est sur les piles de switch HP que tout va mal : une fois l'inventaire terminé, les équipements connectés remontent n'importe comment. La grande majorité des ports sur lesquels sont connectés les équipements apparaissent bien en vert, mais sans rien de connecté en face. Quant aux ports marqués comme trunk, ils n'apparaissent pas en orange comme sur les Cisco mais en bleu et avec des hubs contenant aux alentours de 100 ports chacun (soit plus ou moins la totalité du matériel connecté). En cherchant une explication dans les fichiers de log de l'agent fusion inventory (/Var/log/fusioninventory.log), j'ai remarqué que les ports trunk n'étaient pas détectés comme tel (lorsque j'analyse le fichier XML renvoyé au plugin, je trouve une balise <trunk>0</trunk> dans ces ports précis, là où la valeur prise pour les ports trunk des switch Cisco est 1). Je suppose que le problème d'association de ports est lié à ce problème de détection des ports trunk.

Le protocole CDP est bien activé sur tous les switchs Cisco, tout comme le LLDP est activé sur les HP. Les switch se voient bien entre eux.

Par avance, merci.

Configuration
  • Agent d'inventaire : 2.3.16 sur un CentOS 6.6 32 bits
  • GLPI : 0.85.4 sur un XAMPP 1.7.4 sous Windows XP
  • Fusion Inventory for GLPI : 1.1

Petite mise à jour (15h10): après analyse du fonctionnement de l'agent fusion inventory, il semblerait que le souci vienne de la configuration des switch HP. En effet, en faisant un snmpwalk sur l'OID .1.0.8802.1.1.2.1.5.32962.1.2.1.1.1 (qui alimente la variable $vlanId dans lib/FusionInventory/Agent/Tools/Hardware.pm), il semblerait qu'aucun port ne se situe dans le vlan portant l'identifiant 0. Hors, c'est précisément cet identifiant qui est recherché par l'agent pour savoir si un port est de type trunk. Nous allons creuser de ce côté là et je posterais une autre mise à jour si cela règle le souci.
  Reply
#2
J'ai effectivement constaté le même problème chez moi.
J'ai sorti les switch pour lesquels j'ai du trunk en attendant...
Ph1 // Admin Systèmes & Réseaux
OS : Ubuntu 14.04
Authentification Kerberos // SSO Multi domaines AD
GLPI 9.2.3 // Fusion Inventory 9.2+2.0 (agent 2.4)
  Reply
#3
Bonjour Ph1,
après de nombreuses recherches, il semblerait que le problème provienne de la manière dont Fusion Inventory obtient la liste des ports trunk pour les switch n'étant ni de marque Cisco, ni de marque Juniper : il considère tout port dans le vlan 0 (c'est-à-dire sans vlan) comme étant un port trunk. Hors, cette vision est totalement erronée : un port ne servant pas à l'interconnexion peut très bien ne pas posséder de vlan, et inversement un port d'interconnexion peut très bien être tagué dans un VLAN, sans que cela ne pose aucun souci. J'ai donc modifié le code source de l'agent pour que le cas ne pose plus de souci dans les prochaines version.

À l'heure actuelle, pour corriger le problème, deux solutions s'offrent à vous : soit vous modifiez à la main la ligne 1503 du fichier /usr/share/fusioninventory/lib/FusionInventory/Agent/Tools/Hardware.pm pour changer la ligne comme il suit :
Code:
$results->{$interface_id} = $value == [L'ID DU VLAN DES PORTS TRUNK] ? 1 : 0;
soit vous compilez l'agent depuis mes sources (les modifications n'étant pas encore intégrées dans le dépôt officiel) : https://github.com/quent1-fr/fusioninven...ection.zip
  Reply
#4
Tu peux faire un pull-request histoire d'en discuter sur github et l'intégrer si c'est ok ?
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#5
C'est déjà fait : https://github.com/fusioninventory/fusio...nt/pull/30
  Reply
#6
Merci bcp pour tout ce boulot !
Code:
$results->{$interface_id} = $value == [L'ID DU VLAN DES PORTS TRUNK] ? 1 : 0;

Question, comment fais-je dans le cas où plusieurs vlans sont taggués sur mes ports trunk ?

Merci pour la réponse ^^.
Ph1 // Admin Systèmes & Réseaux
OS : Ubuntu 14.04
Authentification Kerberos // SSO Multi domaines AD
GLPI 9.2.3 // Fusion Inventory 9.2+2.0 (agent 2.4)
  Reply
#7
up !? :p
Ph1 // Admin Systèmes & Réseaux
OS : Ubuntu 14.04
Authentification Kerberos // SSO Multi domaines AD
GLPI 9.2.3 // Fusion Inventory 9.2+2.0 (agent 2.4)
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)