Pull to refresh

Raspisco — удалённый доступ к Cisco через Raspberry Pi

Configuring Linux *Cisco *


В работе ( инженера | системного администратора | просто хорошего парня) иногда начинает казаться что время тратится неэффективно, задачи которые решаются, решаются неоптимальным образом, вот тогда может понадобиться Расписко


Давным−давно, в далекой, далекой галактике…


В своей трудовой деятельности мне нередко приходилось сталкиваться с ситуацией когда необходимо первоначально настроить через консольный порт оборудование, эксплуатируемое на объекте, находящемся довольно далеко и при этом заранее сконфигурировать это самое оборудование нет возможности. И по мере того как данная ситуация стала возникать всё чаще и чаще я решил приложить некоторые усилия для того чтобы тратить время более эффективно. Ведь львиную часть времени занимает не сама настройка как таковая а временные затраты по доставке тела специалиста к консольному порту свича, роутера, шлюза, тостера и т.п. В интернете на глаза попалась статья по организации терминального сервера на базе Raspberry Pi. Таким образом, после нескольких часов редактирования конфигурационных файлов появилась Расписко — основанная на базе Raspberry Pi мобильная система удалённого доступа через пакетную сеть мобильного оператора (например, 3G) к оборудованию Cisco. В данной статье приводится краткое описание и примеры использования.

Список оборудования:

— Raspberry Pi

— Блок питания 5V/1A

— SD карта 4 Gb

— Huawei E1550 3G modem 12d1:1446 (before usb_modeswitch) 12d1:1001 (after usb_modeswitch)

— USB to RS232 Serial Port Adapter

— Cisco Console Cable DB9 Female to RJ45 Male



1. Подготовка Raspberry Pi


Устанавливаем образ операционной системы на карту памяти Raspberry Pi. В инструкции мы используем дистрибутив Raspbian Wheezy, но нижесказанное справедливо также и для других подобных образов ОС. Для этого скачиваем со страницы www.raspberrypi.org/downloads образ 2013-02-09-wheezy-raspbian.zip, распаковываем архив и устанавливаем на SD карту при помощи утилиты sourceforge.net/projects/win32diskimager (подойдёт карта на 4 Gb)
Для начальной конфигурации Raspberry Pi запускаем из командной строки raspi-config и выставляем необходимые параметры, например расширяем объём памяти, занимаемой корневой файловой системой.

2. Подготовка Raspberry Pi, часть вторая


Обновляем программное обеспечение, устанавливаем недостающее ПО:
apt-get update
apt-get upgrade
apt-get install usb-modeswitch (необходимо для переключения 3G модема в основной режим работы )


3. Автоматическое подключение к интернету


Для работы через 3G сеть необходимо установить пакет ppp:
apt-get install ppp

Удобно использовать универсальный скрипт подключения к интернет через 3G — sakis3g и обёртку для него umtskeeper:
wget "http://www.sakis3g.org/versions/latest/armv4t/sakis3g.gz"
gunzip sakis3g.gz
chmod +x sakis3g

Запускаем мастер автоматического подключения:
./sakis3g --interactive

Если удалось установить соединение, то для автоматического запуска соединения с мобильной пакетной сетью необходимо в файл /etc/rc.local добавить следующие строки:

/home/pi/umtskeeper/umtskeeper --sakisoperators «USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='12d1:1001' APN='internet.mts.ru' CUSTOM_APN='internet.mts.ru' SIM_PIN='1234' APN_USER='mts' APN_PASS='mts'» --sakisswitches "--sudo --console" --devicename 'Huawei' --log --silent --monthstart 8 --nat 'no' &

4. Прикладное ПО


Устанавливаем прочее необходимое программное обеспечение:

apt-get install openvpn ckermit

В моём случае так как оператор мобильной связи не предоставляет «белого» IP адреса по умолчанию, а платить дополнительно за услугу «Реальный IP» не хотелось я пользуюсь
своим openvpn сервером. Расписывать здесь подробно не вижу смысла, в интернете много пошаговых инструкций по настройке Openvpn.
Копируем конфигурационный файл openvpn клиента в /etc/openvpn и добавляем в конец файла /etc/rc.local строки:
sleep 100
/etc/init.d/openvpn start


Также, исключительно для удобства, можно настроить СМС оповещение, после успешного подключения Raspisco к VPN серверу на телефон приходит SMS с IP адресом к которому я позже подключаюсь по Telnet/SSH. Можно использовать email2sms шлюз, Google Календарь, Mail Agent SMS или ещё с десяток альтернативных вариантов.

Подключаться непосредственно к Cisco будем через kermit:

Добавляем в конфигурационный файл kermrc примерно следующие заклинания:
root@Raspisco:~# cat .kermrc
set flow control none
set carrier-watch off
set speed 9600
set reliable
set flow none
set prefixing all
set file type bin
set handshake none
connect


5. Как это всё работает


В полевых условиях алгоритм следующий:
После подачи электропитания Raspisco загружается, устанавливается соединение с интернетом, затем соединение с openvpn сервером, инженер получает sms с IP адресом, подключается по SSH к Raspberry PI, запускает kermit, осуществляет первоначальное конфигурирование оборудования.

Естественно, вместо Cisco может использоваться оборудование любого другого производителя.

Будем считать что время было потрачено не зря

Теперь за пивом пойти за сто вёрст поехать может даже менеджер по клинингу.


Ниже фотоотчёт.







Tags:
Hubs:
Total votes 28: ↑26 and ↓2 +24
Views 27K
Comments 29
Comments Comments 29