Netmiko redispatch with ssh bastion

Hello

In my network environment, to reach customer devices i need to go through a non-standard SSH proxy, where it’s not possible to do an SSH connection through the SSH connection to the proxy. I played with Netmiko last year but I didn’t know how to get through the ssh proxy such that i still could use Netmiko’s native set of methods once i connect to the final device. This turns out to be quite easy with the redispatch command.

In this script I can go through my devices and get the uptime from show version (words between „Uptime” up to „minutes”). This returns a list, so in order to create a nice output with the hostname and uptime, you need to insert the hostname at position 0 of the list (prepend).

from netmiko import ConnectHandler
import time
from netmiko import redispatch
import re

jumpserver={‚device_type’:’terminal_server’,’ip’:’11.1.1.1′,’username’:’username’,’password’:’cisco’,’port’:22,’global_delay_factor’:5,’session_log’: ‚output.txt’}

net_connect=ConnectHandler(**jumpserver)
net_connect.find_prompt()

net_connect.write_channel(„connect 172.16.0.1\n”)
time.sleep(2)
redispatch(net_connect, device_type=”cisco_ios”)
net_connect.enable
result = net_connect.send_command_timing(„show ver”)
endresult = re.findall(r’Uptime .*?minutes’, result)
endresult.insert(0,’DeviceR1′)
print(endresult)
net_connect.write_channel(„exit\n”)
time.sleep(1)

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s