• GNS3 with Qemu or VirtualBox support
  • Qemu or VirtualBox
  • RouterOS ISO image - mikrotik-6.37.5.iso

Virtual Machine Prerequisites

  • i386 compatible architecture
  • minimum 32MB of RAM (maximum supported 2GB)
  • minimum Hard Disk space 64MB
  • Network cards supported by linux v3.3.5 kernel (PCI, PCI-X)

RouterOS x86 Installation

1. Download RouterOS for x86 Architecture

$ wget https://download2.mikrotik.com/routeros/6.37.5/mikrotik-6.37.5.iso

2. Create Qemu Virtual Disk and Start Virtual Machine

$ /usr/local/bin/qemu-img create -f qcow2 routeros-6.37.5.img 200M
$ /usr/local/bin/qemu-system-i386 -m 512 -enable-kvm -boot d -cdrom mikrotik-6.37.5.iso routeros-6.37.5.img

3. Install RouterOS

Use spacebar to select packages that are needed. Then press "i" to install RouterOS.

Picture 1 - RouterOS Installation

Once RouterOS is installed, you have 24 hours to enter a license key to activate RouterOS Qemu image. The timer stops if router is shutdowned. For this reason, we let GNS3 automatically create the copy of base Qemu image every time is a new RouterOS instance placed on the GNS3 desktop. These independent copy of the base image can be run for total 24 hours time period.

4. Start RouterOS Qemu Disk

After the disk is formatted and packages copied, start RouterOS instance with the command:

$ /usr/local/bin/qemu-system-i386 -m 512 -enable-kvm -boot c routeros-6.37.5.img -nographic -serial telnet::4444,server,nowait

You should be able to login to RouterOS with the telnet command:

$ telnet 127.0.0.1 4444

Username is admin without password set.

5. Connect Qemu image to GNS3

I assume that GNS3 is correctly installed and configured.

a) Start GNS3 and create a new GNS3 project

Picture 2 - Creating GNS3 New Project

b) Configure Qemu guest settings

Navigate to Edit -> Preferences -> Qemu -> Qemu Gues t and configure parameters as it is shown on the picture below.

Picture 3 - Qemu Guest Settings

RouterOS Configuration

1. Testing Topology

The topology consists of one RouterOS that connects two Microcore Qemu instances. As we want to test switching and VLANs, both Microcore instances are connected to RouterOS switvchport that are separated by VLANs - VLAN10 and VLAN20.

RouterOS"s interface Ethernet1 si connected to Cisco 3725 router emulated by Dynamips . The port will be configured as a trunk port on RouterOS side and as a routed port with two sub-interfaces on Cisco"s side.

Picture 4 - Testing Topology

2. Create Bridges for VLAN10 and VLAN20 and Assign Access Ports to Bridges

First, check available Ethernet interfaces.They are six Ethernet interfaces presented in RouterOS console in total.

Picture 5 - Router Ethernet Interfaces

We are going to create bridges br10 and br20 and assign interface Ethernet2 to the bridge br10 and Ethernet3 to br20.

> /interface bridge add name=br10
> /interface bridge add name=br20
> /interface bridge port add interface=ether2 bridge=br10
> /interface bridge port add interface=ether3 bridge=br20

3. Configure Trunk Port to allow VLAN 10 and VLAN 20 and create Switched Virtual Interfaces - SVI10 and SVI20

> /interface vlan add vlan-id=10 name=SVI10 interface=ether1 disabled=no
> /interface vlan add vlan-id=20 name=SVI20 interface=ether1 disabled=no

Note : the term SVI is used in a Cisco world, feel free to change it if you want.

4. Add SVI Ports to Bridges

> /interface bridge port add interface=SVI10 bridge=br10 disabled=no
> /interface bridge port add interface=SVI20 bridge=br20 disabled=no

Picture 6 - Bridge Ports Configuration

5. Assign IP address to SVI Ports

This configuration ensures that intervlan routing betwwen VLAN 10 and VLAN20 can be done by RouterOS.

> /ip address add interface=SVI10 address=192.168.10.254/24 disabled=no
> /ip address add interface=SVI20 address=192.168.20.254/24 disabled=no

At this point you should be able to make successful ping between PC1 and PC2.

6. Set password and hostname

> /password new-password=admin
> /system identity set name=RouterOS-I

7. Static routing configuration

> /ip route add dst-address=10.10.10.10/32 gateway=192.168.10.253

Picture 7 - Routing Table

End hosts PC1 and PC2 Configuration

End hosts are represent by Microcore Linux 3.8.2 installed on Qemu virtual disks. Ethernet interfaces configuration is stored in the file /opt/bootlocal.sh that is started during the boot of Microcore. To save configuration changes, the script /usr/bin/filetool.sh must be called with parameter -b.

PC1
tc@box:~$ sudo su
root@tc:# echo "ifconfig eth0 192.168.10.1 netmask 255.255.255.0 up" >> /opt/bootlocal.sh
root@tc:# echo "hostname PC2" >> /opt/bootlocal.sh
root@tc:# echo "route add default gw 192.168.10.254" >> /opt/bootlocal.sh

root@tc:~# /opt/bootlocal.sh
root@PC1:~# /usr/bin/filetool.sh -b

PC2
tc@box:~$ sudo su
root@tc:# echo "ifconfig eth0 192.168.20.1 netmask 255.255.255.0 up" >> /opt/bootlocal.sh
root@tc:# echo "hostname PC2" >> /opt/bootlocal.sh
root@tc:# echo "route add default gw 192.168.20.254" >> /opt/bootlocal.sh

root@tc:~# /opt/bootlocal.sh
root@PC2:~# /usr/bin/filetool.sh -b

Cisco 3725 Configuration

1. Router-on-the-stick Configuration

3725#conf t
3725(config)#interface fastEthernet 0/0
3725(config-if)#no shut
3725(config-if)#exit

3725(config)#interface FastEthernet 0/0.10
3725(config-subif)#encapsulation dot1Q 10
3725(config-subif)#ip address 192.168.10.253 255.255.255.0

3725(config-subif)#int fa0/0.20
3725(config-subif)#encapsulation dot1Q 20
3725(config-subif)#ip address 192.168.20.253 255.255.255.0
3725(config-subif)#no shutdown

2. Loopback configuration

725(config)#interface loopback 0
3725(config-if)#ip address 10.10.10.10 255.255.255.255
3725(config-if)#no shutdown

Testing Connectivity

1. Check if RouterOS does Packet Switching Between VLAN10 and VLAN20 Subnets

Issue the command ping on PC1 to test connectivity between PC1 and PC2.

Picture 8 - RouterOS InterVlan Routing

2. Check if VLAN Tagged Traffic is Transferred via Trunk Port

Ping from PC1 to Cisco 3725 router"s IP address 192.168.10.253

Picture 9 - Ping from PC1 to Cisco 3725

Picture 10 - Captured Traffic on Cisco 3725 Interface FastEthernet0/0

RouterOS Basic Commands
http://rbmikrotik.blogspot.sk/2011/07/mikrotik-router-os-basic-commands.html

RouterOS x86 Features
http://wiki.mikrotik.com/wiki/Manual:RouterOS_features
http://download2.mikrotik.com/what_is_routeros.pdf

RouterOs Switching

Доброго времени суток, Хабр!

Все уже видели, и с успехом пользуются таким эмулятором как GNS3, который представляет большие возможности новичкам, желающим разобраться с тем или иным оборудованием, но не имеющих физического доступа к нему. Либо попробовать реализовать какую - то боевую схему, отладить, проверить, а тогда отправлять ее в продакшн.

Последнее время на Хабре появляются интересные статьи по работе с оборудованием Mikrotik. Не все можно попробовать на реальном железе, поэтому у меня возник вопрос - а можно ли эмулировать и его. Как оказалось сам Mikrotik не отстает в этом вопросе, и предлагает нам попробовать…



Для эмуляции сети нам предлагают -
Для симуляции аппаратного обеспечения -
И образ RouterOS для x86 систем -

1. Для начала нам необходимо подготовить образ виртуального жесткого диска, в который в последствии мы установим RouterOS. Для этого необходимо использовать утилиту qemu-img

Qemu-img create [-f format] filename

Нам будет достаточно создать простой образ в формате qcow2 размером в 1G
Qcow2 - это формат дискового образа программы QEMU. Название является аббревиатурой названия формата Copy-On-Write (копирование при записи).

Для этого выполним команду

Qemu-img.exe create -f qcow2 mikrotik.img 1G

* образ создается в текущей папке. Для удобства, после установки ОС, его необходимо перенести в папку с проектом GNS3, либо в любое другое удобное для вас место

Qemu

Опций у утилиты много, нам понадобиться:
-boot
Boot on floppy (a), hard disk (c), CD-ROM (d), or Etherboot (n). Hard disk boot is the default.
-cdrom file
Use file as CD-ROM image (you cannot use -hdc and and -cdrom at the same time). You can use the host CD-ROM by using /dev/cdrom as filename.

Qemu.exe mikrotik.img -boot d -cdrom /mikrotik.iso

Запустится интерфейс qemu, и если все выполнено успешно мы увидим приглашение для выбора необходимых компонентов. Нажимаем “i” для инсталляции.

3. Теперь нам необходимо добавить наше новое устройство в сам GNS3
Идем в Edit -> Symbol Manager
Добавляем иконку роутера, добавляем ей название Mikrotik (Name), и выбираем тип Quemu guest. Не забываем нажать Apply чтобы сохранить изменения.

4. Также нам необходимо подключить наш образ жесткого диска.
Идем в Edit -> Preferences -> Qemu
Выбираем имя, путь к образу, объем памяти, количество и тип сетевого интерфейса.
Нажимаем Save.

На этом все. Наш «стенд» готов к бою.

Удачного изучения!

11 октября 2016 в 17:03

Установка Mikrotik Cloud Hosted Router на VPS хостинг Digital Ocean

  • Виртуализация ,
  • Облачные вычисления ,
  • Системное администрирование ,
  • Хостинг
  • Tutorial
… или другой Linux-хостинг.
Сразу оговорюсь, что поскольку мне в процессе всех экспериментов уже поднадоело сносить и заново настраивать дроплет в DO, пример я буду выполнять в VMware ESXi, но на конечный результат это влиять не будет, команды все будут те же самые, в принципе, это применимо к любому облачному VPS хостингу, где у нас есть доступ по SSH.
За основу взят доклад Дмитрия Пичулина на прошедшем 30 сентября MUM в Москве. В отличии от доклада Дмитрия, в данной статье не будет рассматриваться вопросы выбора хостинга и цен на него (в стремлении намутить облачный роутер подешевле), настройки полученного устройства. Рассмотрена будет лишь техническая сторона вопроса и решены пара проблем.

Кто-то скажет 128 МБ на роутере хватит всем. Но меня эта ситуация в корне не устраивала, поэтому я принялся её устранять. Всем известно, что RouterOS основана на Linux, но от Linux"а там мало что осталось, поэтому после установки системы, её штатными средствами переразметить диск уже нельзя. Нельзя и загрузиться с какого-нибудь LiveCD и переразметить в нём (ну по крайней мере у DO нельзя). Попытки тыкаться fdisk"ом и parted"ом после заливки образа на диск, но до перезагрузки так же не привели к какому-либо положительному результату (эффекта либо не было вообще, либо я получал не загружающуюся систему).

Нормальные герои всегда идут в обход.

Итак для того чтобы получить RouterOS, установленную на Digital Ocean, в которой доступно 20 ГБ дискового пространства (ну или сколько там у Вас по тарифу) нам потребуется:

  • Собственно, сам droplet с установленным Linux дистрибутивом (в данном случае дистрибутив будет Ubuntu Server 16.04 x64, а вместо droplet"а будет виртуальная машина в ESXi, но ещё раз повторюсь, что роли это не сыграет), к которому у нас есть доступ по SSH.
  • Установленный на компьютере или сервере гипервизор (изначально я делал в VirtualBox, сейчас буду делать опять же в ESXi, на конечный результат это не влияет).
  • LiveCD вашего любимого Linux-дистрибутива (желательно, чтобы там был GUI, так будет удобнее).
Как вы видете, список не очень большой, каких-то особых требований к его пунктам нет, решение я старался сделать максимально универсальным и простым, чтобы можно было всё соорудить буквально на коленке из того, что есть.

Начнём с дроплета.

Нам нужно выяснить, какого объёма нам нужен диск в виртуальной машине, поэтому:

Fdisk -l /dev/sda Диск /dev/sda: 16 GiB, 17179869184 байтов, 33554432 секторов Единицы измерения: секторов из 1 * 512 = 512 байтов Размер сектора (логический/физический): 512 байт / 512 байт I/O size (minimum/optimal): 512 bytes / 512 bytes Тип метки диска: dos Идентификатор диска: 0x7b5dbf9c Устр-во Загрузочный Start Конец Секторы Size Id Тип /dev/sda1 * 2048 31457279 31455232 15G 83 Linux /dev/sda2 31459326 33552383 2093058 1022M 5 Расширенный /dev/sda5 31459328 33552383 2093056 1022M 82 Linux своп / Solaris
Как мы видим, у нас диск 17179869184 байт, запомним это значение.

Подготовка промежуточной машины

В гипервизоре создаём новую виртуальную машину. Её параметры особого значения не имеют, но можно, к примеру сделать их близкими к характеристикам дроплета. Размер диска лучше сделать с небольшим запасом, на всякий случай (почему-то 20ГБ в DO оказались меньше 20ГБ в VirtualBox). Настраиваем загрузку виртуальной машины с LiveCD.

Включаем её и после загрузки скачиваем любым удобным способом последнюю версию CHR, которую можно найти по ссылке :

Нам нужен образ Raw disk image (к примеру chr-6.37.1.img.zip). Распаковываем архив:

Unzip chr-6.37.1.img.zip Archive: chr-6.37.1.img.zip inflating: chr-6.37.1.img
И заливаем образ на жёсткий диск с помощью dd (Дмитрий тут использовал утилиту pv, но я, если честно не вижу в этом смысла, т.к. образ маленький и разворачивается довольно быстро):

Dd if=chr-6.37.1.img.zip of=/dev/sda 262144+0 records in 262144+0 records out 134217728 bytes (134 MB, 128 MiB) copied, 5.64304 s, 23.8 MB/s
вместо sda нужно указать ваш диск, его имя может отличаться.

Расширяем файловую систему RouterOS

Любители всё делать в консоли могут делать там, мне показалось быстрее и проще сделать всё в GParted.

Запускаем GParted, выбираем диск, на который установили RouterOS и с помощью функции Resize/Move увеличиваем размер второго раздела. Обратите внимание, что размер раздела за вычетом размера первого раздела не должен превышать размер диска Вашего дроплета, который мы посмотрели в самом начале (т.е. первый раздел у нас 32 МиБ, значит второй должен быть не более 17179869184 байт / 1048576 = 16384 МиБ и - 32, т.е. 16352 МиБ)

Не забываем применить изменения разметки диска.

Создаём новый образ и жмём его с помощью gzip:

dd if=/dev/sda bs=8196 count 17000 | gzip -9cf > chr.img.gz 17000+0 records in 17000+0 records out 139332000 bytes (139 MB, 133 MiB) copied, 3.30824 s, 42.1 MB/s
Значение 17000 мы получаем путём приведения размера образа при его развёртывании на диск. Там было 128 МиБ, т.е. 128 * 1024 = 131072 КиБ разделим размер на размер блока и округлим 131072 / 8 = 16384 ≈ 17000 блоков.

Заливаем полученный образ на дроплет и устанавливаем его

scp chr.img.gz user@host:~/
Где user - имя пользователя на вашем дроплете, а host - его адрес. Копирование будет выполняться в домашний каталог пользователя.

Принимаем сертификат ssh сервера, и вводим пароль, когда нас об этом попросят. После окончания копирования, эта виртуальная машина нам больше не понадобится.

Переходим на наш дроплет. Можно подключиться к нему по ssh или зайти через консоль. Убедимся, что наш образ скопировался, желающие могут проверить контрольные суммы. Переведём файловую систему в режим read-only и развернём образ на диск через gzip и dd:

Echo u > /proc/sysrq-trigger && gunzip -c chr.img.gz | dd of=/dev/vda

В этой статье я хотел бы познакомить читателей с отличным (на мой взгляд) роутером фирмы MikroTik . Если кто-то еще не знаком с продуктами этой фирмы, то настоятельно рекомендую! Очень функциональные и в то же время бюджетные устройства. Как мне кажется, это идеально решения для малого и среднего бизнеса.

И самое приятное, их маршрутизатор можно попробовать в VirtualBox, а соответственно использовать в своих сетевых топологиях в GNS3.

Скачиваем CD Image и создаем новую виртуальную машину:


256Мб вполне достаточно для маршрутизатора




Включаете необходимое кол-во адаптеров

Отмечаете все необходимые функции

И начинается установка


По окончанию видим следующее

Теперь необходимо настроить ip адрес:
Можно воспользоваться скриптом setup
> setup
Setup uses Safe Mode. It means that all changes that are made during setup are
reverted in case of error, or if
Ctrl-C is used to abort setup. To keep changes exit setup using the "x" key.


Choose options by pressing one of the letters in the left column, before dash.
Pressing "x" will exit current
menu, pressing Enter key will select the entry that is marked by an "*". You can
abort setup at any time by
pressing Ctrl-C.
Entries marked by "+" are already configured.
Entries marked by "-" cannot be used yet.
Entries marked by "X" cannot be used without installing additional packages.
r - reset all router configuration
+ l - load interface driver
+ a - configure ip address and gateway
d - setup dhcp client
* s - setup dhcp server
p - setup pppoe client
t - setup pptp client
x - exit menu
your choice :

Где в принципе все интуитивно понятно.

Второй способ это вбить настройки руками:
> interface print
Flags: D - dynamic, X - disabled, R - running, S - slave
# NAME TYPE MTU
0 R ether1 ether 1500
1 R ether2 ether 1500

> interface enable 0
> ip address add address=192.168.56.2/24 interface=ether1

На этом можно ограничиться и зайти на вебинтерфейс маршрутизатора