вторник, 10 марта 2009 г.

Скрипты на языке expect для работы с натом на Cisco 1760 через telnet

Итак необходимо было автоматизировать создание/удаление пробросок на Cisco 1760
Вот скрипты для этого.

Создание проброски скрипт принимает в коммандной строке 4 переменных.

Скрипт rmrl1760add
Предназначен для добавления проброски на циску
Синтаксис - rmrl1760 arg1 arg2 arg3 arg4
arg1 - Внутренний ip для проброски
arg2 - Внутренний порт для проброски
arg3 - Внешний ip на циске
arg4 - Внешний порт на циске


#!/usr/local/bin/expect
#first arg ip where we mapped
set destservip [lindex $argv 0]
#second arg lport on what we mapped
set lport [lindex $argv 1]
#third arg ext ip on cisco1760
set extip [lindex $argv 2]
#fourth arg ext port on cisco1760
set eport [lindex $argv 3]

spawn telnet 192.168.8.21
expect "Username:"
send "username\r"
expect "Password:"
send "password\r"
send "en\r"
send "secondpassword\r"
#send $command
send "\r"
send "configure terminal\r"
send "no ip nat inside source static tcp $destservip $lport $extip $eport extendable\r"
send "exit\r"
#send "copy running-config startup-config\r"
send "\r"
send "exit\r"


Скрипт rmrl1760del
Предназначен для удаления проброски с циски
Синтаксис - rmrl1760 arg1 arg2 arg3 arg4
arg1 - Внутренний ip для проброски
arg2 - Внутренний порт для проброски
arg3 - Внешний ip на циске
arg4 - Внешний порт на циске


#!/usr/local/bin/expect
#first arg ip where we mapped
set destservip [lindex $argv 0]
#second arg lport on what we mapped
set lport [lindex $argv 1]
#third arg ext ip on cisco1760
set extip [lindex $argv 2]
#fourth arg ext port on cisco1760
set eport [lindex $argv 3]

spawn telnet 192.168.8.21
expect "Username:"
send "username\r"
expect "Password:"
send "password\r"
send "en\r"
send "secondpassword\r"
send "\r"
send "configure terminal\r"
send "no ip nat inside source static tcp $destservip $lport $extip $eport extendable\r"
send "exit\r"
#send "copy running-config startup-config\r"
send "\r"
send "exit\r"

Комментариев нет: