PySNMP запрашивает список выбора интерфейсов

Я хочу получить всю информацию о выбранном списке интерфейсов. В настоящее время у меня есть переменная oid_base

oid_base = ['1.3.6.1.2.1.2.2.1.1.', 
            '1.3.6.1.2.1.2.2.1.2.', 
            '1.3.6.1.2.1.2.2.1.3.', 
            ...,
            '1.3.6.1.2.1.2.2.1.22.']

и список интерфейсов (я хочу запросить около 20 из сотен)

interfaces = ['35', '37', '94']

Чтобы получить нужные мне данные, я перебираю интерфейсы и создаю oid_args для каждого интерфейса, который я передаю в cmdgen.getCmd по отдельности:

for interface in snmpif.interfaces():
  oid_args = [str(b + interface) for b in oid_base]
  ei, es, ein, var_binds = cmd_gen.getCmd(sec_obj, trans, *oid_args)
  # Handle errors and output of `var_binds`

Есть ли способ массового запроса всех интерфейсов и получения таблицы.

Я пробовал играть с cmdgen.bulkCmd, но не могу понять, как выбирать интерфейсы.


person John Oxley    schedule 15.04.2014    source источник
comment
Вы хотите получить информацию обо всех интерфейсах в виде большого списка, а затем выбрать только те, которые вам нужны?   -  person Konstantin    schedule 16.04.2014
comment
Я хочу получить информацию только об интерфейсах, которые мне нужны. Рассматриваемый маршрутизатор имеет более тысячи интерфейсов.   -  person John Oxley    schedule 17.04.2014


Ответы (1)


Предполагая, что вы пытаетесь оптимизировать количество соединений SNMP, вы можете использовать getBulk(), но для пулов смежных интерфейсов. Например, если вам нужно запросить интерфейсы 2,3,4, вы можете сделать getBulk() для интерфейса 1, если для параметров maxRepetitions и maxRows установлено значение 3 (количество интерфейсов для запроса).

Эти «изолированные» интерфейсы можно запрашивать по отдельности, помещая их в начало oid_args и соответствующим образом устанавливая параметр nonRepeaters в getBulk.

Независимо от типа SNMP-запроса, вы можете вставить в запрос столько OID, сколько SNMP-пакет может вместить, не обязательно только те, которые принадлежат одному интерфейсу.

person Pooh    schedule 21.04.2014