2016-01-11 4 views
1

У меня есть файл pcap, содержащий 4 пакета ловушек SNMP. Когда я переигрывать пакеты через pysnmp, он выдает ошибку какpysnmp throwing UnknownCommunityName error

DBG: StatusInformation: {'errorIndication': <pysnmp.proto.errind.UnknownCommunityName instance at 0x2023248>} 

Я сконфигурированный PySNMP принимать пакеты, имеющие имя сообщества, как «общественность».

config.addV1System(snmpEngine, 'agent', 'public') 

Когда я вижу пакет в WireShark, он показывает название сообщества, как общественности, но отладка через PySNMP я обнаружил, что имя сообщества в OctetString (эквивалентно общественности в ASCII). Что мне теперь делать?

p.s. Snfptrapd от Unix работает правильно в данном файле pcap.

Pysnmp Версия: 4.3.1
Pyasn1 версия: 0.1.9

Редактировать Вот полный StackTrace в режиме отладки

2016-01-12_04:45:45.42174 2016-01-12 04:45:45,421 pysnmp: handle_read: transportAddress ('192.168.2.17', 162) -> ('0.0.0.0', 162) incomingMessage (70 octets) 
2016-01-12_04:45:45.42179 00000: 30 82 00 42 02 01 00 04 07 70 75 62 6C 69 63 00 
2016-01-12_04:45:45.42179 00016: A4 34 06 08 2B 06 01 04 01 90 7A 01 40 04 0A 62 
2016-01-12_04:45:45.42180 00032: 21 64 02 01 03 02 01 00 43 04 54 10 5A 06 30 16 
2016-01-12_04:45:45.42180 00048: 30 82 00 12 06 0D 2B 06 01 04 01 90 7A 01 02 01 
2016-01-12_04:45:45.42181 00064: 01 01 02 02 01 02 
2016-01-12_04:45:45.42182 DEBUG: handle_read: transportAddress ('192.168.2.17', 162) -> ('0.0.0.0', 162) incomingMessage (70 octets) 
2016-01-12_04:45:45.42182 00000: 30 82 00 42 02 01 00 04 07 70 75 62 6C 69 63 00 
2016-01-12_04:45:45.42183 00016: A4 34 06 08 2B 06 01 04 01 90 7A 01 40 04 0A 62 
2016-01-12_04:45:45.42183 00032: 21 64 02 01 03 02 01 00 43 04 54 10 5A 06 30 16 
2016-01-12_04:45:45.42183 00048: 30 82 00 12 06 0D 2B 06 01 04 01 90 7A 01 02 01 
2016-01-12_04:45:45.42184 00064: 01 01 02 02 01 02 
2016-01-12_04:45:45.42369 2016-01-12 04:45:45,423 pysnmp: receiveMessage: msgVersion 0, msg decoded 
2016-01-12_04:45:45.42381 DEBUG: receiveMessage: msgVersion 0, msg decoded 
2016-01-12_04:45:45.42587 2016-01-12 04:45:45,425 pysnmp: prepareDataElements: Message: 
2016-01-12_04:45:45.42598 version='version-1' 
2016-01-12_04:45:45.42606 community=0x7075626c696300 
2016-01-12_04:45:45.42614 data=PDUs: 
2016-01-12_04:45:45.42621 trap=TrapPDU: 
2016-01-12_04:45:45.42628 enterprise=1.3.6.1.4.1.2170.1 
2016-01-12_04:45:45.42636 agent-addr=NetworkAddress: 
2016-01-12_04:45:45.42643  internet=10.98.33.100 
2016-01-12_04:45:45.42650 
2016-01-12_04:45:45.42657 generic-trap='linkUp' 
2016-01-12_04:45:45.42664 specific-trap=0 
2016-01-12_04:45:45.42673 time-stamp=1410357766 
2016-01-12_04:45:45.42683 variable-bindings=VarBindList: 
2016-01-12_04:45:45.42685  VarBind: 
2016-01-12_04:45:45.42685  name=1.3.6.1.4.1.2170.1.2.1.1.1.2 
2016-01-12_04:45:45.42686  value=ObjectSyntax: 
2016-01-12_04:45:45.42686  simple=SimpleSyntax: 
2016-01-12_04:45:45.42686  number=2 
2016-01-12_04:45:45.42687 
2016-01-12_04:45:45.42687 
2016-01-12_04:45:45.42688 
2016-01-12_04:45:45.42688 
2016-01-12_04:45:45.42689 
2016-01-12_04:45:45.42697 
2016-01-12_04:45:45.42697 DEBUG: prepareDataElements: Message: 
2016-01-12_04:45:45.42698 version='version-1' 
2016-01-12_04:45:45.42698 community=0x7075626c696300 
2016-01-12_04:45:45.42699 data=PDUs: 
2016-01-12_04:45:45.42699 trap=TrapPDU: 
2016-01-12_04:45:45.42699 enterprise=1.3.6.1.4.1.2170.1 
2016-01-12_04:45:45.42700 agent-addr=NetworkAddress: 
2016-01-12_04:45:45.42700  internet=10.98.33.100 
2016-01-12_04:45:45.42701 
2016-01-12_04:45:45.42701 generic-trap='linkUp' 
2016-01-12_04:45:45.42701 specific-trap=0 
2016-01-12_04:45:45.42702 time-stamp=1410357766 
2016-01-12_04:45:45.42702 variable-bindings=VarBindList: 
2016-01-12_04:45:45.42703  VarBind: 
2016-01-12_04:45:45.42703  name=1.3.6.1.4.1.2170.1.2.1.1.1.2 
2016-01-12_04:45:45.42710  value=ObjectSyntax: 
2016-01-12_04:45:45.42720  simple=SimpleSyntax: 
2016-01-12_04:45:45.42720  number=2 
2016-01-12_04:45:45.42721 
2016-01-12_04:45:45.42721 
2016-01-12_04:45:45.42721 
2016-01-12_04:45:45.42722 
2016-01-12_04:45:45.42722 
2016-01-12_04:45:45.42723 
2016-01-12_04:45:45.42724 2016-01-12 04:45:45,426 pysnmp: StatusInformation: {'errorIndication': <pysnmp.proto.errind.UnknownCommunityName instance at 0x2ce9680>} 
2016-01-12_04:45:45.42731 DEBUG: StatusInformation: {'errorIndication': <pysnmp.proto.errind.UnknownCommunityName instance at 0x2ce9680>} 
2016-01-12_04:45:45.42734 2016-01-12 04:45:45,426 pysnmp: StatusInformation: {'errorIndication': <pysnmp.proto.errind.UnknownCommunityName instance at 0x2ce9680>} 
2016-01-12_04:45:45.42735 DEBUG: StatusInformation: {'errorIndication': <pysnmp.proto.errind.UnknownCommunityName instance at 0x2ce9680>} 

Проблема существует только один агент. Ловушка, поступающая из всех других агентов, обрабатывается нормально.

+0

объект OctetString вы наблюдаете должны работать. Убедитесь, что вы используете последнюю версию pysnmp. Я подозреваю, что это имеет какое-то отношение к «транспортным тэгам». Вывод отладки может помочь решить эту проблему. –

+0

@llya Etingof Я обновил свой вопрос с просмотром журнала. Можете ли вы сказать что-нибудь о проблеме, увидев журнал отладки? –

+0

Я также обновил pysnmp до последней стабильной версии. –

ответ

2

По-видимому, когда вы строите PDU из сбрасываемого (?) Пакета, вы включаете в себя привязку нулевого значения к SNMP-сообществу.

>>> from pysnmp.proto.rfc1902 import * 
>>> OctetString(hexValue='7075626c696300').asOctets() 
'public\x00' 

Если это то, что вы хотите, обязательно настройте pysnmp соответственно.

config.addV1System(snmpEngine, 'agent', 'public\x00') 

или

config.addV1System(snmpEngine, 'agent', OctetString(hexValue='7075626c696300')) 
+0

Отличный !! Агент сам отправляет ловушку с строкой сообщества с нулевым уровнем обучения. Ты спас мой день :) –