Re: [FRnOG] [MISC] ifAlias sur net-snmp (tentative de patch)
Le mardi 11 septembre 2018 à 19:03 +0200, Alarig Le Lay a écrit : > Hello, > > Pour commencer, je ne suis pas programmeur pour deux sous, tout ce > qui > suit est fait au pur feeling. > > net-snmp a la très fâcheuse tendance à ne pas remplir la table > ifAlias : > $ snmpwalk -v2c -c public judicael-ovpn2.grif ifAlias > IF-MIB::ifAlias.1 = STRING: > IF-MIB::ifAlias.2 = STRING: > IF-MIB::ifAlias.3 = STRING: > IF-MIB::ifAlias.4 = STRING: > IF-MIB::ifAlias.5 = STRING: > IF-MIB::ifAlias.6 = STRING: > > Quand bien même on a bien renseigné l’alias avec iproute2 : > # ip link show eth1 > 3: eth1: mtu 1500 qdisc noop state DOWN mode > DEFAULT group default qlen 1000 > link/ether 2a:6f:f1:84:22:11 brd ff:ff:ff:ff:ff:ff > alias Core: Interco VLAN 30 > > Aujourd’hui j’ai fini par me décider à enfin patcher ça. J’ai > commencé > par ré-écrire la fonction pour ifDescr (en copiant les autres > fonctions > et en faisant marcher mon cerveau) et là j’avais bien ce que je > voulais : > $ snmpwalk -On -v2c -c public judicael-ovpn2.grif ifDescr > .1.3.6.1.2.1.2.2.1.2.1 = STRING: lo > .1.3.6.1.2.1.2.2.1.2.2 = STRING: eth0 > .1.3.6.1.2.1.2.2.1.2.3 = STRING: Core: Interco VLAN 30 > .1.3.6.1.2.1.2.2.1.2.4 = STRING: eth2 > .1.3.6.1.2.1.2.2.1.2.5 = STRING: tun-tcp0 > .1.3.6.1.2.1.2.2.1.2.6 = STRING: tun-udp0 > > Mais ça se gâte quand je veux faire en sorte d’avoir ça sur ifAlias, > snmpd crashe : > # /usr/sbin/snmpd -f -p /var/run/snmpd.pid -I -smux > free(): invalid pointer > Aborted > > Voici les patches que j’ai réussi à pondre : > https://paste.swordarmor.fr/NvJc > Là dedans, _arch_interface_alias_get marche avec ifDescr si je la > renomme en _arch_interface_description_get et que je remplace > 'entry->alias' par 'entry->descr'. > > À mon avis, le crash est dû au bloc @@ -721,6 +725,17 @@ de > agent/mibgroup/if-mib/data_access/interface.c mais comme j’y pige pas > grand chose, je ne suis pas sûr de moi. > > Est-ce que quelqu’un aurait des pires, voire carrément la solution ? Tu devrais lancer snmpd avec valgrind ou gdb pour voir quel est le free qui déclenche ton erreur. --- Liste de diffusion du FRnOG http://www.frnog.org/
Re: [FRnOG] [MISC] ifAlias sur net-snmp (tentative de patch)
Le Tue, Sep 11, 2018 at 07:03:24PM +0200, Alarig Le Lay a écrit: > net-snmp a la très fâcheuse tendance à ne pas remplir la table ifAlias : https://docs.observium.org/device_linux/#using-ifalias-support Ca devrait faire ce que tu veux non ? En tout cas ici ça marche -- par contre ça n'utilise pas iproute2, ça parse /etc/network/interfaces . Mais tu devrais pouvoir t'en inspirer... ? Apparemment chez Cumu ils font la même en python: https://github.com/CumulusNetworks/cldemo-archive/blob/master/cldemo-wbench-librenms-base-puppet/debian/etc/puppet/modules/snmpd/files/snmpd.conf pass_persist .1.3.6.1.2.1.31.1.1.1.18 /usr/share/snmp/snmpifAlias_pp.py Arnaud. --- Liste de diffusion du FRnOG http://www.frnog.org/
[FRnOG] [MISC] ifAlias sur net-snmp (tentative de patch)
Hello, Pour commencer, je ne suis pas programmeur pour deux sous, tout ce qui suit est fait au pur feeling. net-snmp a la très fâcheuse tendance à ne pas remplir la table ifAlias : $ snmpwalk -v2c -c public judicael-ovpn2.grif ifAlias IF-MIB::ifAlias.1 = STRING: IF-MIB::ifAlias.2 = STRING: IF-MIB::ifAlias.3 = STRING: IF-MIB::ifAlias.4 = STRING: IF-MIB::ifAlias.5 = STRING: IF-MIB::ifAlias.6 = STRING: Quand bien même on a bien renseigné l’alias avec iproute2 : # ip link show eth1 3: eth1: mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000 link/ether 2a:6f:f1:84:22:11 brd ff:ff:ff:ff:ff:ff alias Core: Interco VLAN 30 Aujourd’hui j’ai fini par me décider à enfin patcher ça. J’ai commencé par ré-écrire la fonction pour ifDescr (en copiant les autres fonctions et en faisant marcher mon cerveau) et là j’avais bien ce que je voulais : $ snmpwalk -On -v2c -c public judicael-ovpn2.grif ifDescr .1.3.6.1.2.1.2.2.1.2.1 = STRING: lo .1.3.6.1.2.1.2.2.1.2.2 = STRING: eth0 .1.3.6.1.2.1.2.2.1.2.3 = STRING: Core: Interco VLAN 30 .1.3.6.1.2.1.2.2.1.2.4 = STRING: eth2 .1.3.6.1.2.1.2.2.1.2.5 = STRING: tun-tcp0 .1.3.6.1.2.1.2.2.1.2.6 = STRING: tun-udp0 Mais ça se gâte quand je veux faire en sorte d’avoir ça sur ifAlias, snmpd crashe : # /usr/sbin/snmpd -f -p /var/run/snmpd.pid -I -smux free(): invalid pointer Aborted Voici les patches que j’ai réussi à pondre : https://paste.swordarmor.fr/NvJc Là dedans, _arch_interface_alias_get marche avec ifDescr si je la renomme en _arch_interface_description_get et que je remplace 'entry->alias' par 'entry->descr'. À mon avis, le crash est dû au bloc @@ -721,6 +725,17 @@ de agent/mibgroup/if-mib/data_access/interface.c mais comme j’y pige pas grand chose, je ne suis pas sûr de moi. Est-ce que quelqu’un aurait des pires, voire carrément la solution ? Merci, -- Alarig --- Liste de diffusion du FRnOG http://www.frnog.org/