Можно ли настроить коммутатор Cisco под управлением IOS через SNMP? Я знаю, что есть способ инициировать копию TFTP через SNMP (док), а есть ли что-то вроде конфига уровня порта прямо из SNMP пишет?
В качестве альтернативы, есть ли способ инициировать передачу фрагмента конфигурации для применения вместо замены всей конфигурации?
Дайте мне знать, если вы хотите что-нибудь уточнить. Я стараюсь избегать использования Expect или чего-либо, что не похоже на доступ к API.
Чтобы ответить на мой собственный вопрос, не похоже, что Cisco обеспечивает высокую степень детализации конфигурации через SNMP (например, конфигурацию порта), но она предоставляет метод для инициации копии конфигурации FTP / TFTP / SCP на коммутатор. Эта копия может быть выполнена в текущей конфигурации, которая позволяет слияние. Это означает, что фрагмент конфигурации может быть записан в текстовый файл, а затем передан по протоколу TFTP на коммутатор, который будет сливаться с текущей конфигурацией, а не заменять ее. При копировании в начальную конфигурацию операция слияния не выполняется, поэтому она заменяет всю конфигурацию. Важное различие;)
Подробности здесь: http://www.cisco.com/en/US/tech/tk648/tk362/technologies_configuration_example09186a0080094aa6.shtml
Да, это возможно. Видеть это техническое примечание о настройке VLAN для примера.
Вы можете увидеть, какие MIB поддерживаются на вашем коммутаторе, выполнив команду show snmp mib
с включенного терминала.
Честно говоря, я не знаю ни одной причины, по которой вы не можете настроить IOS через SNMP ... однако я бы предложил НЕ Делать это. SNMP очень небезопасен. Если вы не беспокоитесь о безопасности, вы можете просто выгрузить изменения конфигурации в текстовый файл и слепо воспроизвести их в сеансе telnet ... чего я бы также рекомендовал не делать.
Я не видел никаких руководств по snmp, использующих snmpv3 и scp в качестве транспортного протокола. Для тех, кто хочет реализовать, вот что сработало для меня.
Как и в случае с другими руководствами по копированию конфигурации snmp, вам необходимо загрузить соответствующие MIBS и загрузить их в файл snmp.conf.
В этом посте будут конкретно рассмотрены команды snmpset для установки v3.
SNMP Environment:
Name : net-snmp
Version : 5.7.2
Release : 17.fc20
файл snmp conf в ~ / .snmp / snmp.conf
содержит
defSecurityName XXX <- replace with v3 username
defContext ""
defAuthType SHA
defPrivType AES
defSecurityLevel authPriv
defAuthPassphrase ***** <-replace with authentication pass
defPrivPassphrase ***** <-replace with encryption pass
defVersion 3
showMibErrors no
mibs ALL
Я бы проверил базовую функциональность snmpv3 с помощью snmpwalk чего-нибудь простого, например sysUpTime. Когда все в порядке, переходите к командам CONFIG-COPY snmp.
Это мой сценарий bash, который выполняет всю копию, запрашивая только один аргумент IP / Hostname устройства, для которого выполняется резервное копирование. Значение 2> / dev / null, показанное в сценарии или на клике ниже, перенаправляет STDERR на null, чтобы избежать ошибок синтаксического анализа модулей MIB.
#!/usr/bin/bash
DEVICE=$1
RANNUM=42
USER=******
PASS=******
SERVER=X.X.X.X
DATE=$(date +"%m_%d_%y")
snmpset $DEVICE ccCopyProtocol.$RANNUM i 4 ccCopySourceFileType.$RANNUM i 4 ccCopyDestFileType.$RANNUM i 1 ccCopyServerAddress.$RANNUM a "$SERVER" ccCopyFileName.$RANNUM s "$DEVICE.$DATE" ccCopyUserName.$RANNUM s $USER ccCopyUserPassword.$RANNUM s $PASS ccCopyEntryRowStatus.$RANNUM i 4 2>/dev/null
После запуска вы можете проверить состояние копии с помощью следующей команды.
[root@localhost hlsb]# snmpwalk sbs-tech-switch ciscoConfigCopyMIB 2>/dev/null
CISCO-CONFIG-COPY-MIB::ccCopyProtocol.42 = INTEGER: scp(4)
CISCO-CONFIG-COPY-MIB::ccCopySourceFileType.42 = INTEGER: runningConfig(4)
CISCO-CONFIG-COPY-MIB::ccCopyDestFileType.42 = INTEGER: networkFile(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddress.42 = IpAddress: 10.10.10.193
CISCO-CONFIG-COPY-MIB::ccCopyFileName.42 = STRING: sbs-tech-switch.07_09_14
CISCO-CONFIG-COPY-MIB::ccCopyUserName.42 = STRING: XXXX
CISCO-CONFIG-COPY-MIB::ccCopyUserPassword.42 = STRING: XXXX
CISCO-CONFIG-COPY-MIB::ccCopyNotificationOnCompletion.42 = INTEGER: false(2)
CISCO-CONFIG-COPY-MIB::ccCopyState.42 = INTEGER: successful(3)
CISCO-CONFIG-COPY-MIB::ccCopyTimeStarted.42 = Timeticks: (52270199) 6 days, 1:11:41.99
CISCO-CONFIG-COPY-MIB::ccCopyTimeCompleted.42 = Timeticks: (52270339) 6 days, 1:11:43.39
CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.42 = INTEGER: active(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddressType.42 = INTEGER: ipv4(1)
CISCO-CONFIG-COPY-MIB::ccCopyServerAddressRev1.42 = STRING: "10.10.10.193"
После успешного завершения копирования запись будет существовать в течение пяти минут, что позволяет больше не делать запросов с этим конкретным случайным числом. Чтобы послать другой запрос до пятиминутной очистки таблицы, отправьте snmpset "destroy" для очистки записи.
[root@localhost hlse]# snmpset sbs-tech-switch CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.42 i 6 2>/dev/null
CISCO-CONFIG-COPY-MIB::ccCopyEntryRowStatus.42 = INTEGER: destroy(6)
Надеюсь, это сэкономит время для тех, кто хочет реализовать более безопасную настройку копирования конфигурации snmp.