O que são índices SNMP?

3

Estou tentando descobrir o que se entende por índices SNMP. Eu li a seguinte declaração no wiki:

Index assignments for an SNMP device instance may change from poll to poll mostly as a result of changes initiated by the system admin

Meu entendimento é que o administrador do sistema está usando para pesquisar dispositivos SNMP e seu programa exibe os dispositivos SNMP com alguns números de série (que chamamos de índices). Então, cada vez que ele pesquisa os dispositivos SNMP, o programa mostra esses dispositivos com índices diferentes.

O meu entendimento está correto? O que exatamente queremos dizer com índices SNMP e o que isso significa nesse contexto?

    
por Mugen 18.01.2011 / 11:19

2 respostas

1

Encontrei as seguintes informações aqui .

The module snmp_index implements an Abstract Data Type (ADT) for an SNMP index structure for SNMP tables. It is implemented as an ets table of the ordered_set data-type, which means that all operations are O(log n). In the table, the key is an ASN.1 OBJECT IDENTIFIER.

This index is used to separate the implementation of the SNMP ordering from the actual implementation of the table. The SNMP ordering, that is implementation of GET NEXT, is implemented in this module.

For example, suppose there is an SNMP table, which is best implemented in Erlang as one process per SNMP table row. Suppose further that the INDEX in the SNMP table is an OCTET STRING. The index structure would be created as follows:

  snmp_index:new(string)

For each new process we create, we insert an item in an snmp_index structure:

  new_process(Name, SnmpIndex) ->
    Pid = start_process(),
    NewSnmpIndex = 
      snmp_index:insert(SnmpIndex, Name, Pid),
    <...>

With this structure, we can now map an OBJECT IDENTIFIER in e.g. a GET NEXT request, to the correct process:

  get_next_pid(Oid, SnmpIndex) ->
    {ok, {_, Pid}} = snmp_index:get_next(SnmpIndex, Oid),
    Pid.

Em conclusão com as informações que conheço e com as informações fornecidas na citação anterior, acredito que os índices SNMP não devem ser alterados devido ao fato de que eles iriam frustrar o propósito de um índice (corrija-me se estiver errado).

UPDATE: Do jeito que eu vejo, um índice SNMP é semelhante a um índice de banco de dados, mas indexa dispositivos de rede para referência. A única vez que esse índice deve mudar é quando o hardware é removido ou adicionado. Você não desejaria que os índices do banco de dados fossem alterados em um registro existente, pois isso poderia causar duplicatas ou outros problemas. Talvez alguém possa esclarecer essa questão com outra resposta ou comentário. Eu sei muito sobre redes, mas eu nunca ouvi falar de mudanças de SNMP. Eu pesquisei isso por cerca de uma hora e não encontrei nada muito útil além da página da Web já mencionada e da página Wiki .

    
por 18.01.2011 / 14:50
1
So each time he polls the SNMP devices the program shows those devices with different indices.

Isso não é realmente o caso, os índices são usados para obter informações sobre novos dispositivos à medida que são inseridos (pense em hotplugging RAID / RAM / CPU / Virtual Interfaces ...), assim você pode rastrear um dispositivo assim que o próximo polling depois que foi inserido. Eles NÃO deveriam (como nos RFCs) mudar, mas eu não sei o que é realmente padronizado.

    
por 18.01.2011 / 12:11