Hacker News new | ask | show | jobs
by aduitsis 1644 days ago
Thank you for the post! At some point years ago I started realising that most problems in SNMP are stemming from badly implemented SNMP agents. Those problems can be:

1. Returning values different than what the MIB says.

2. Missing values that are not optional in the MIB.

3. Broken getnext code that returns an incorrect oid, which could even lead to loops. Net-snmp will detect it, but proper snmpwalk gets broken.

4. Broken getbulk repeater code that can cause crashes if the repeater is too large.

5. OIDs that will crash/stall/slow the agent.

6. Implementations that cannot handle simultaneous requests. Admittedly this is notoriously difficult to achieve: most MIB implementation code is not reentrant for various reasons.

7. SNMP SET is very difficult to implement, cannot be meaningfully used for almost anything beyond extremely simple stuff.

8. UDP encapsulation can cause MTU/fragmentation issues that are a nightmare to debug. Net-snmp actually implemented transports such as TCP and it was very nice, but it never caught on in general.

Bonus, there is also the not related to implementation problem of:

9. The query semantics of SNMP are non-existent, and the indirection in the SMI is cumbersome, which means that as a client/manager you'll have to do all sorts of data wrangling to find what you need.