État des lieux
Sous FreeBSD nous avons le choix entre deux implémentations SNMP : bsnmp et
le classique net-snmp. Le premier a des soucis sur les modèles de CPU et ne
remonte pas les IPv6 des interfaces, alors que le second ne remonte pas la
description des interfaces.
En clair, on a le choix entre la peste et le choléra.
Façon propre de résoudre le souci
Une bonne chose aurait été de patcher le code de net-snmp pour remonter les descriptions comme il faut. Mais, je ne sais pas programmer, surtout pas en C, et je n’ai pas le temps (ni vraiment l’envie) d’apprendre.
Façon pragmatique de résoudre le souci
Donc, j’ai choisi de faire autrement : laisser net-snmp sur le port standard, et proxéiser la table ifAlias vers bsnmp.
Configuration de bsnmp
Commençons par configurer correctement notre bsnmp, cela se passe dans
/etc/snmpd.config
.
read := "public" # communauté publique en lecture
begemotSnmpdPortStatus.127.0.0.1.1161 = 1 # écoute sur localhost:1161
Maintenant, nous pouvons bien récupérer notre description depuis bsnmp :
root@budic:~ # snmpwalk -v2c -c public localhost:1161 ifAlias.6
IF-MIB::ifAlias.6 = STRING: Transit: Quantic
Configuration de net-snmp
Maintenant, il faut dire à net-snmp d’aller interroger bsnmp pour la table
ifAlias. Pour cela, nous utilisons la directive proxy
:
proxy -v 2c -c public localhost:1161 .1.3.6.1.2.1.31.1.1.1.18
Et maintenant, .1.3.6.1.2.1.31.1.1.1.18 (soit ifAlias) est redirigé vers
bsnmp, et nous pouvons le vérifier :
alarig@conan ~ $ snmpwalk -v2c -c public budic.grif ifAlias.6
IF-MIB::ifAlias.6 = STRING: Transit: Quantic
alarig@conan ~ $ snmpwalk -On -v2c -c public budic.grif ifAlias.6
.1.3.6.1.2.1.31.1.1.1.18.6 = STRING: Transit: Quantic