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

от автора

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

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

В своей трудовой деятельности мне нередко приходилось сталкиваться с ситуацией когда необходимо первоначально настроить через консольный порт оборудование, эксплуатируемое на объекте, находящемся довольно далеко и при этом заранее сконфигурировать это самое оборудование нет возможности. И по мере того как данная ситуация стала возникать всё чаще и чаще я решил приложить некоторые усилия для того чтобы тратить время более эффективно. Ведь львиную часть времени занимает не сама настройка как таковая а временные затраты по доставке тела специалиста к консольному порту свича, роутера, шлюза, тостера и т.п. В интернете на глаза попалась статья по организации терминального сервера на базе 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 может использоваться оборудование любого другого производителя.

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


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

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

ссылка на оригинал статьи http://habrahabr.ru/post/192188/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *