Многие облачные провайдеры не позволяют загружать ISO-файлы и не предоставляют никакой возможности для установки ОС отличных от тех что предусмотрены самим облаком.
В этой статье я расскажу вам как избежать данное ограничение и как просто в 5 шагов можно установить Mikrotik Cloud Hosted Router на любой облачной виртуалке.
Как правильно заметили в комментариях, на данный момент CHR не поддерживает SATA и SCSI-диски, но с VIRTIO и IDE работает без проблем. Другими словами, диск вашей виртуальной машины должен определяться как/dev/vda
или/dev/hda
, но никак не/dev/sda
.
- Создаем новую виртуалку (Ubuntu или Debian особо не имеет значения)
- Загружаемся, и монтируем tmpfs в
/tmp
mount -t tmpfs tmpfs /tmp/
- Теперь переходим по ссылке и скачиваем "Cloud Hosted Router" raw-образ.
cd /tmp
wget https://download2.mikrotik.com/routeros/6.39.3/chr-6.39.3.img.zip
- Следующим шагом извлечем образ и запишем его на диск виртуальной машины:
unzip chr-6.39.3.img.zip
dd if=chr-6.39.3.img of=/dev/vda bs=4M
sync
- Теперь нам нужно инициализировать жесткую перезагрузку:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
После перезагрузки Mikrotik RouterOS подготовит жесткий диск автоматически и вы увидите приглашение для входа.
Англоязычная версия статьи
bravosierrasierra
а для чего его нужно ставить в облако? Облака и так умеют и в маршрутизацию и в фильтрацию. А ещё там линукс со всеми его LARTC
kvaps Автор
Я рассказал как, но зачем — это уже другой вопрос :)
В основном этот гайд пригодится тем кто имел дело и привык работать с RouterOS.
Ну например если у вас вся инфраструктура построенна на микротиках, вы наверняка захотите иметь единый и стандартизированный интерфейс на всех устройвах, ну или если вы просто захотите сделать выходной узел для вашего домашнего mikrotik-роутера.
Так же RouterOS из коробки поддерживает кучу полезных функций и единый интерфейс к ним, которые сразу же можно использовать не углубляясь в тонкости настройки аналогичных демонов под linux.
Mystray
Затем же, зачем продают Juniper vSRX и vMX, и Cisco CSR 1000v и ISRv, и HPE VSR, и еще множество, множество других: перенос всей инфраструктуры в «облака», включая привычное сетевое окружение.
Практически любой сетевой вендор сейчас предоставляет свои решения в виртуализированном виде (при чем, во многих случаях, НЕ дешевле аналогичного по х-кам железного устройства).
К примеру, те же корпоративные VPN, завязанные на внутренние каталоги юзеров. Далеко не всегда эту часть взять и перенести на то, что предоставляется провайдером облака.
chelaxe
Как вариант, у меня стоит для The Dude. Лицензию L4 получил на последнем MUM в Екатеринбурге. Образ прикрутил в LVM под Centos 7 для QEMU
Chugumoto
эм… это точно? про L4
https://wiki.mikrotik.com/wiki/Manual:CHR#CHR_Licencing
тут вот пишут, что CHR совсем по другому лицензируются…
madghost
лицензии обратно совместимы
License L4/P1 License L5/P10 License L6/PU
и продают их так же
Chugumoto
хм… не знал…
лицензии просто до этого юзал только что с железом шли…
а тут фряшная с ограничением в 1 мегабит… как-то совсем мало… ну хоть бы 10 сделали чтоли :)
POPSuL
У меня вот есть два CHR в Германии и Японии, через них я маршрутизирую свой домашний трафик по нужным мне правилам (например, до Кореи у меня трафик по умолчанию бегает через Америку, а до Японии — напрямую, поэтому я завернул трафик в Корею через CHR который в Японии).
Я конечно понимаю что все можно сделать на какой-нибудь чистой убунте/дебиане/центоси, но лично мне привычнее и удобнее поднять EoIP туннели парой кликов, ну и просто отсутствие зоопарка разных осей на маршрутизаторах (дома у меня Mikrotik).
Я не говорю что все должны так делать, это может быть очень не правильно и за это может быть мне стоит оторвать руки =)
dimsoft
С одной стороны баян страшный, но мысль про tmpfs здравая
С другой стороны, например я перед ребутом, но после раскатки образа еще и прописываю внутрь скрипт, который меняет пароль администратора и прописывает правильные IP адреса и шлюзы, иначе можно потом и не подключиться, а не все облака дают доступ к консоли
dimsoft
например так (примем что сеть это eth0)
mount -o loop,offset=33554944 chr.img /mnt && \
ADDRESS=
ip addr show eth0 | grep global | cut -d' ' -f 6 | head -n 1
&& \GATEWAY=
ip route list | grep default | cut -d' ' -f 3
&& \echo "/ip address add address=$ADDRESS interface=[/interface ethernet find where name=ether1]
/ip route add gateway=$GATEWAY
/ip service disable telnet
/user set 0 name=root password=пароль
" > /mnt/rw/autorun.scr && \
umount /mnt
krokokot
При всем уважении к топикстартеру — не «на любой облачной виртуалке». CHR не умеет грузиться с дисков, представленных в виртуальной машине через виртуальный контролер scsi или sata. Только ide. Причем именно грузиться, работать после загрузки, например, со вторым диском — может. Пруф: «SCSI controller Hyper-V and ESX is usable just for secondary disks, system image must be used with IDE controller!», источник. А т.к. многие провайдеры vps по умолчанию предоставляют виртуалки именно с контроллерами scsi — на таких виртуалках после вышеописанных процедур вы увидите в консоли сообщение о начале загрузки RouterOS, а затем ошибку «Disk not found!». Ну или ничего не увидите — как [не]повезет. :) Лечение — просим техподдержку изменить виртуальный контроллер на ide. Или делаем это сами, если интерфейс управления виртуалкой это позволяет. Информация актуальна для релизов CHR до 6.41.1. Позднее — не проверял.
kvaps Автор
Важное замечание, сейчас проверил: SATA и правда не поддерживается.
Но совершенно точно работает с VIRTIO и IDE.