Jump to content
Калькуляторы

Циски врут по snmp

В целях контроля за сетью сидит специально обученный человек, который в том числе следит за состоянием каналов в ядре. Для удобства хочется запилить ему интерфейс, куда выпадает все, что загружено/гадит ошибками итд. Но столкнулся со странной багой; в некоторых случах показатель bits/sec в cli и полученный через snmp различается. Частенько в разы. С некоторых узлов-портов снимается вообще отрицательные значения. Столкнулся на 3560G, 3560E, 7600 (sup 720), 6500 (sup720, sup32). Версии иоса тоже разные.

Для примера:

30 second input rate 5447876000 bits/sec, 775012 packets/sec

iso.3.6.1.4.1.9.2.2.1.1.6.6 = INTEGER: 1141369704

 

30 second input rate 2578727000 bits/sec, 305483 packets/sec

iso.3.6.1.4.1.9.2.2.1.1.6.10202 = INTEGER: -1679301296

 

Может там какой-нибудь хитрый алгоритм? Или я косячу с oid?

Share this post


Link to post
Share on other sites

точно 64 битные значения снимаются ? а то успевает пару раз провернуться 32 битный счетчик на полосе больше чем 200Мбит/с

Share this post


Link to post
Share on other sites

снимайте или первое или (лучше) второе

  # normal 32-bit counters
  'ifInOctets' => '1.3.6.1.2.1.2.2.1.10',
  'ifOutOctets' => '1.3.6.1.2.1.2.2.1.16',

  # SNMPv2 big counters
   'ifHCInOctets' => '1.3.6.1.2.1.31.1.1.1.6',
   'ifHCOutOctets' => '1.3.6.1.2.1.31.1.1.1.10',

 

И разницу считайте сами. надежнее будет

Share this post


Link to post
Share on other sites

точно 64 битные значения снимаются ? а то успевает пару раз провернуться 32 битный счетчик на полосе больше чем 200Мбит/с

А это и не счетчик. По описанию это тупо число, копия загрузки из cli.

снимайте или первое или (лучше) второе

 

# normal 32-bit counters

'ifInOctets' => '1.3.6.1.2.1.2.2.1.10',

'ifOutOctets' => '1.3.6.1.2.1.2.2.1.16',

 

# SNMPv2 big counters

'ifHCInOctets' => '1.3.6.1.2.1.31.1.1.1.6',

'ifHCOutOctets' => '1.3.6.1.2.1.31.1.1.1.10',

 

 

 

И разницу считайте сами. надежнее будет

Я так и делаю для свитчей и прочего. Для циски естественно желание использовать готовые значения.

Share this post


Link to post
Share on other sites

Ой, знаете сколько тама разного всякого в SNMP в разных версиях ИОСов бывает работает не так как в более других версиях... то у них интерфейс vlan1 выдает ifType.1 = INTEGER: ethernetCsmacd(6), а не 135, как хотелось бы, то в списке портов только гигабитные 4 (остальных 24 сотки типа вообще нету. Ну тоесть тупо ifDescr выдает 4 строки). Я понимаю, что версии иосов дремучие это все, но такое впечатление, что после компиляции даже включать не пробовали, не то, что тестировать. Потом народ им уже кейсов поназаводил.. Поправили.

Share this post


Link to post
Share on other sites

Пичалька) Придется видимо тоже кейс заводить. На последних версиях бага тоже наблюдается. Жаль только пофиксят фиг знает когда.

Share this post


Link to post
Share on other sites

Да. По ходу переменная в 32 бита и при запихивании в нее большого числа тупо уходит в минус.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this