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