Поиск по этому блогу

27.01.2011

Переименование политик и классов

Про переименование политик я читал уже давно и вот решил поэкспериментировать еще и с классами. Попутно будут отслеживаться индексы объектов cbQos, которые будут опрашиваться скриптом по snmp.



Имеется некоторая тестовая политика:
router#sh policy-map NAME1
Policy Map NAME1
Class TEST1
police cir 10000000 bc 312500
conform-action transmit
exceed-action drop
Опрос скриптом показал, что ей индекс не присваивается до тех пор, пока она не будет прописана на интерфейсе:
router(config)#interface GigabitEthernet0/0.100
router(config-subif)#service-policy output NAME1
router(config-subif)#exit
Вывод скрипта:
[root@mg ~/bin]# ./cbqos4.py -c public -d 10.10.10.10
cbQosPolicyIndex.cbQosObjectsIndex Policy Name. Take QosObjectsIndex index as -k argument
1170.1170 NAME1
[root@mg ~/bin]# ./cbqos4.py -c public -d 10.10.10.10 -k 1170
cbQosPolicyIndex.cbQosObjectsIndex Description
1170.9984706 matchStatement named:Match dscp af41 (34)
1170.1170 policymap named:NAME1
1170.9895827 police
1170.7082977 classmap named:class-default match:matchAny
1170.15757298 matchStatement named:Match any
1170.9263201 classmap named:TEST1 match:matchAll
Индекс политики - 1170, а индекс класса - 9263201. Теперь переименование:
router(config)#class-map TEST1
router(config-cmap)#rename TEST2
Вывод скрипта показывает, что изменился индекс класса, а так же изменились индексы, для которых класс являлся родительским:
[root@mg ~/bin]# ./cbqos4.py -c public -d 10.10.10.10 -k 1170
cbQosPolicyIndex.cbQosObjectsIndex Description
1170.1170 policymap named:NAME1
1170.467026 matchStatement named:Match dscp af41 (34)
1170.9263217 classmap named:TEST2 match:matchAll
1170.10313619 police
1170.15757298 matchStatement named:Match any
1170.7082977 classmap named:class-default match:matchAny
Далее переименовывается политика:
router(config)#policy-map NAME1
router(config-pmap)#rename NAME2
Вывод скрипта показывает, что изменений не произошло:
[root@mg ~/bin]# ./cbqos4.py -c public -d 10.10.10.10
cbQosPolicyIndex.cbQosObjectsIndex Policy Name. Take QosObjectsIndex index as -k argument
1170.1170 NAME2
[root@mg ~/bin]# ./cbqos4.py -c public -d 10.10.10.10 -k 1170
cbQosPolicyIndex.cbQosObjectsIndex Description
1170.1170 policymap named:NAME2
1170.467026 matchStatement named:Match dscp af41 (34)
1170.9263217 classmap named:TEST2 match:matchAll
1170.10313619 police
1170.15757298 matchStatement named:Match any
1170.7082977 classmap named:class-default match:matchAny

Отмечу, что переименование происходит легко, но может отразиться на мониторинге, так как переименованный класс меняет свои индекс. А вообще, для мониторинга параметров следует сохранять в nvram не только индексы интерфейсов, но и индексы cbqos:
snmp-server ifindex persist
snmp mib persist cbqos