Настройка SPAN-сессии на ASR-1002X. Генерация шаблонов конфигурации


Настройка локальной SPAN-сессии, с порта на порт.

monitor session 10 type erspan-source
description SPAN-source
source interface Gi0/0/1
destination
erspan-id 10
ip address 10.1.1.1
origin ip address 10.1.1.1
!
!
monitor session 20 type erspan-destination
description SPAN-fdest
destination interface Gi0/0/3 – 4
source
erspan-id 10
ip address 10.1.1.1

Для генерации конфига сделал простой скрипт на python и jinja. Ссылка на гит. Скрипт берёт данные из словаря и на основе шаблона генерирует конфигурацию.

Проверка:

show platform hardware qfp active feature erspan session 20

Автоматизация диагностики каналов связи

Хочу написать скрипт по проверке каналов связи. Опять же здесь логика, реализация позже.

Действия при проверке каналов:

  • Зайти на коммутатор
    • Скрипт для этого уже есть
  • Определить uplink
    • Если это резерв, то порт fa0/22.
    • На нём будет прописан определённый влан
  • Проверить статус порта (up/down, ошибки, скорость, дуплекс, наличие блокировок по errdisable)
  • Проверить состояние STP (блокировка в нужном влане)
  • Проверить mac-адрес на интерфейсе.
UPD. 07.05.2018. Здесь часть логики по определению аплинка и проверки статуса порта. Пока не написаны проверки.

Автоматизация подключения к недоступному оборудованию

Здесь опишу логику работы, скрипт напишу позже.

Особенность работы наших железок на объекте – маршрутизаторы и каналы резервируются, но OSPF между ними разорван. Поэтому когда отваливается один из каналов, доступ на маршрутизатор есть только с другого роутера. Хочу автоматизировать процесс подключения к таким устройствам, чтобы не ломиться сначала на рабочую железку.

Например, есть два лупбека. 192.168.10.10 и 192.168.10.11. Есть сетка для интерконнекта между маршрутизаторами, которая не роутится. Например 1912.168.20.0/30. Допустим, второй маршрутизатор не доступен. Последовательность действий:

  • Стучусь на первую железку
  • Ищу сабинтерфейс .11
  • Вытаскиваю сетку из интерфейса, сетка /30 настроена везде (типовая схема).
  • Считаю её.
  • Сравниваю адреса. Если адрес интерфейса равен первому адресу, значит надо зайти на второй адрес. Если равен второму, то на первый.
  • Зайти на адрес с локальными логином и паролем

Python-скрипт для автоматизации выключения Smart Install на оборудовании cisco

Недавно были проблемы из-за уязвимости в фиче vstack у коммутаторов Cisco. Ссылка на официальную страницу здесь. Написал небольшой скрипт, который заходит на оборудование Cisco с обнаруженной уязвимостью ( nmap -n -p T:4786 -Pn 192.168.100.0/24) и делает no vstack. Потом в лог выводится результат выполнения команды vstack. Возможные ошибки (нет ssh например) так же пишутся в лог. Для работы скрипта нужна библиотека netmiko, можно установить с помощью pip – pip install netmiko. Скрипт написан для python2. Ссылка здесь

В планах:

  • Так как таким образом vstack не отключается на старых версиях IOS (можно порт только заблокировать), хочу сделать проверку на выключение (парсить вывод)
  • Что-то ещё крутилось в голове, пока забыл. Потом добавлю может

Автоматизация управления сетью. Системный подход

С коллегами прослушали курс NPDESI который направлен на знакомство сетевых инженеров с автоматизацией и разработкой ПО. В очередной раз задавшись вопросом, как же получить большую кнопку с надписью сделать хорошо, получили ответ от инструктора:

  • Автоматизация ради автоматизации не имеет смысла. Это нулевой постулат.
  •  В первую очередь необходимо проанализировать бизнес-процессы и выяснить, какие из них можно и имеет смысл автоматизировать. Для системного подхода к управлению можно ознакомиться с ITIL, TAGAF, COBRA
  • Во-вторых мы должны определить, как управлять оборудованием. Какое оборудование есть, какие протоколы оно поддерживает (ssh, NETCONF, REST)
  • Прибыль, которую мы получим от автоматизации. Этот пункт скорее менеджерам, для меня его можно назвать скорее как профит, который я получу при избавлении от рутины – свободное время и т. д.

После анализа на основе выдвинутых требований можно приступить к разработке продукта.

P.S. Различные продукты для управления – всяческие контроллеры, ansible и прочее это всего лишь инструменты, и относиться к ним нужно соответственно.