Парсинг вывода sh int gi0/1 status с помощью TextFSM

Вывод команды:

cgs2520-1#sh int fa0/22 status

Port Name Status Vlan Duplex Speed Type
Fa0/22 AP connected 350 a-full a-100 10/100BaseTX

Задача – распарсить вывод и получить значения следующих полей – статус, скорость, дуплекс, имя и влан.

Результат TextFSM выводит в списке списков. Чтобы сделать из списка списков список:

flat_list = [item for sublist in result for item in sublist]

Собрать в словарь два списка одинаковой длины:

sw=dict(zip(header,flat_list))

Варианты шаблонов для TextFSM здесь

Скрипт здесь. Заходит на железку, смотрит статус интерфейса (переменная задана в скрипте). Вывод записывается в файл, который идентичен ip-адресу железки. Далее вывод парсится по шаблону TextFSM (descr.template). Выводятся порт и дескрипшен.

Cisco CGS2520 поддержка NETCONF

2520 с IOS Cisco IOS Software, CGS2520 Software (CGS2520-LANBASEK9-M), Version 15.2(4)EA5, RELEASE SOFTWARE (fc1) поддерживает netconf. Вроде как..

cgs2520-1#sh netconf schema
New Name Space ‘urn:ietf:params:xml:ns:netconf:base:1.0’
<VirtualRootTag> [0, 1] required
<rpc-reply> [0, 1] required
………………………………………………………………………….

Netconf включается так:

cgs2520-1(config)#netconf ssh

Подключиться к подсистеме netconf можно следующим образом:

ssh -2 -s tar@172.16.1.1 netconf

Что нужно сделать:

  • Разобраться с подключением.
  • Что можно делать (функционал)

Реализация netconf-клиента под python: ncclient

pip install ncclient

 

from ncclient import manager

cisco=manager.connect(host=’ip’, port=’22’, username=’admin’, password=’pass’, allow_agent=False, , look_for_keys=False)

cisco.get()

Выдаёт весь конфиг.

Взаимодействие с Cisco ASR1002x по API

Есть у нас парочка ASR1002x. В дальнейшем их будет ещё, правда не так много. Хочу здесь составить план или черновик, как с ними можно взаимодействовать и что можно автоматизировать. Какие для этого понадобятся инструменты и как это можно реализовать на практике.

Поддерживает REST API, но. Для этого надо скачать модуль поддержки REST. REST API Support for IOS XE – по факту виртуалка, которая устанавливается на ASR. Для того что бы скачать его, нужен сервисный контракт. Печалька..

Настройка 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