FRR's SNMP support is incompatible with the legacy Quagga SNMP implementation provided by 1.2.0: Instead of using the SMUX peer functionality of SNMPd, FRR uses the SNMP agent architecture.
It looks like the following changes are required:
- Adding "-M SNMP" to the relevant lines in /etc/frr/daemons.conf for zebra, bgpd, ospfd, ospf6d, ripd:
vtysh_enable=yes zebra_options=" -s 90000000 --daemon -A 127.0.0.1 -M snmp -n" bgpd_options=" --daemon -A 127.0.0.1 -M snmp" ospfd_options=" --daemon -A 127.0.0.1 -M snmp" ospf6d_options=" --daemon -A ::1 -M snmp" ripd_options=" --daemon -A 127.0.0.1 -M snmp" ripngd_options=" --daemon -A ::1" isisd_options=" --daemon -A 127.0.0.1" pimd_options=" --daemon -A 127.0.0.1" ldpd_options=" --daemon -A 127.0.0.1" nhrpd_options=" --daemon -A 127.0.0.1" eigrpd_options=" --daemon -A 127.0.0.1" babeld_options=" --daemon -A 127.0.0.1" sharpd_options=" --daemon -A 127.0.0.1" pbrd_options=" --daemon -A 127.0.0.1" staticd_options=" --daemon -A 127.0.0.1" bfdd_options=" --daemon -A 127.0.0.1" watchfrr_enable=yes watchfrr_options=(-d -r /usr/lib/frr/frrbBrestartbB%s -s /usr/lib/frr/frrbBstartbB%s -k /usr/lib/frr/frrbBstopbB%s -b bB) valgrind_enable=no valgrind=/usr/bin/valgrind
- Add 'agentx' to the FRR config files for the above daemons.
- Comment out the following lines from /etc/snmp/snmpd.conf:
smuxpeer .1.3.6.1.4.1.3317.1.2.2 smuxpeer .1.3.6.1.4.1.3317.1.2.3 smuxpeer .1.3.6.1.4.1.3317.1.2.5 smuxpeer .1.3.6.1.4.1.3317.1.2.8 smuxpeer .1.3.6.1.4.1.3317.1.2.9
- Additionally, the agentx socket needs to be writable by the frr user:
agentXPerms 0777 0777
Obviously the above configuration will be destroyed during configuration and/or upgrades.