Установка MikroTik RouterOS (CHR) в виртуальную машину Proxmox

Специально для установки на виртуальные машины компания MikroTik предлагает версию RouterOS, которая называется Cloud Hosted Router (CHR). Версия RouterOS CHR скомпилирована для x64 архитектуры и оптимизирована для работы в качестве виртуальной машину. Виртуальные машины с Cloud Hosted Router можно использовать для изучения возможностей MikroTik, в лабораторных или homelab сценариях, так и в качестве полноценного облачного корпоративного маршрутизатора для управления сетевым трафиком, построения туннелей, межсетевого экранирования и много другого.

В этой статье мы покажем, как развернуть виртуальную машину с MikroTik Cloud Hosted Router на гипервизоре Proxmox. Затем мы выполним базовую настройку MikroTik в виртуальной машине и покажем, как использовать эту ВМ в качестве пограничного маршрутизатора роутера (шлюза) между небольшой локальной сетью и интернетом.

Создаем виртуальную машину MikroTik CHR на Promox

В зависимости от используемого гипервизора, нужно скачать готовый образ виртуального диска с установленным Mikrotik CHR с официальной страницы загрузки https://mikrotik.com/download/chr.

Есть готовые образы дисков для VMware (.vmdk), Hyper-V (.vhdx) и других популярных платформ. В этом примере мы будет разворачивать виртуальный роутер MikroTik на гипервизоре Proxmox, поэтому нужно скачать готовый виртуальный диск в формате RAW (как правило, лучше использовать Stable/Long-term версии CHR). Размер образа немного менее 50 Мб.

Скачать образ с виртуальной машиной MikroTik RouterOS Cloud Hosted Router

Теперь нужно создать новую виртуальную машину для RouterOS. Подключаемся к веб интерфейсу гипервизора Proxmox и создаем ВМ со следующими настройками:

  • CPU: минимум 1 vCPU (оптимально 2ядра)
  • RAM: не менее 256 Мб (но для комфортной работы лучше как минимум 512 Мб)
  • Сетевой адаптер: VirtIO (paravirtualized)
  • Тип гостевой ОС: Linux версии 6.x — 2.6 Kernel
  • BIOS: Default (SeaBIOS)
  • QEMU Agent: включить
  • Контроллер: VirtIO SCSI Single
  • Диск: 1 ГБ, формат QCOW2
  • Тип CPU: host

Виртуальная машина с Cloud Hosted Router в Proxmox

После создания ВМ, добавьте в оборудовании COM port (serial0 socker), он нужен для подключения к консоли MikroTik. Запомните ID виртуальной машины (в нашем примере 110), оно понадобится далее:

Копируем скачанный RAW образ CHR на хост Proxmox:

cp .\chr-7.21.5.img.zip root@192.168.158.101:/tmp/

или качаем напрямую через wget:

wget https://download2.mikrotik.com/routeros/7.21.5/chr-7.21.5.img.zip

Распаковываем файл:

cd /tmp

unzip chr-7.21.5.img.zip

Вывести список доступных хранилищ в Proxmox:

pvesm status

Импортировать диск в созданную виртуальную машину (по ее ID и укажите имя хранилища). При импорте он автоматически сконвертируется из RAW в QCOW2.

qm importdisk 110 /tmp/chr-7.21.5.img datastore2 --format qcow2

Увеличить размер диска со 128 Мб до 1 Гб:

qemu-img resize vm-110-disk-1.qcow2 1024M

Импорт виртуального диска MikroTik в Proxmox

Новый Unused диск появится в оборудовании ВМ. Добавьте его. Созданный ранее пустой 1 Гб диск можно удалить.

Добавить диск

Выберите новый диск в качестве первичного загрузочного устройства в разделе Options-> Boot Order.

Порядок загрузочных устройств в виртуальной машине

Добавьте два сетевых интерфейса к ВМ. Первый интерфейс должен быть подключен к бриджу, созданному на WAN интерфейсе (к провайдеру), а второй – на LAN интерфейсе, который смотрит внутрь вашей сети (про сетевую конфигурацию подробнее немного ниже).

Запустите виртуальную машину с MikroTik RouterOS. Имя пользователя по умолчанию admin, пароль пустой (при первом входе обязательно задайте пароль). При запуске RouterOS автоматически расширит файловую систему на весь доступный объём виртуального диска.

Первый запуск виртуальной машины MikroTik RouterOS

Базовая настройка виртуального MikroTik CHR в качестве шлюза

Далее мы рассмотрим, как создать типовую конфигурацию, когда виртуальная машины с MikroTik на гипервизоре будет выступать в качестве основного шлюза для маршрутизации трафика между локальной сетью (LAN) и интернетом (WAN). Виртуальныйроутер MikroTik CHR будет использоваться клиентами в локальной сети в качестве DHCP сервера, DNS сервера, пересылающего запросы наружу, и межсетевого экрана.

В этом примере у меня имеется сервер Proxmox с двумя физическими сетевыми картами. Один сетевой интерфейс подключен во внешнюю сеть (WAN), а второй во внутреннюю LAN.

Для этого на стороне Proxmox я создал два виртуальных моста:

  • vmbr0_WAN – привязан к физическому сетевому интерфейсу Proxmox с доступом в Интернет (IP и шлюз не заданы)
  • vmbr1_LAN – привязан к второму интерфейсу сервера Proxmox (здесь же назначен внутренний IP адрес для управления Proxmox). В локальной сети используется сеть 192.168.10.0/24

Два сетевых интерфейса на гипервизоре Proxmox

В настройка виртуальной машины CHR добавляем два сетевых адаптера:

  • net0 – подключен через мост vmbr0_WAN (к провайдеру)
  • net1 – подключен через мост vmbr1_LAN (смотрит в локальную сеть)

Сетевые интерфейсы для виртуального роутера MikroTik

Теперь можно подключиться к консоли CHR через Proxmox VNC или по MAC-адресу через приложение Winbox (если ваш компьютер, с которого вы выполняете настройку, находится в LAN сети). Я буду выполнять конфигурацию RouterOS через CLI.

WinBox умеет обнаруживать роутеры MikroTik в сети и подключаться к ним по MAC адресам еще до того, как вы назначите IP адреса на интерфейсы.

WinBox подключение к виртуальному роутеру MikroTik

Выводим список сетевых интерфейсов:

/interface print

Переименовываем интерфейсы MikroTik, чтобы их было проще идентифицировать и не путаться:

/int set ether1 name=WAN

/int set ether2 name=LAN

Переименовать интерфейсы в MikroTik

Задаем IP адреса интерфейсов:

Если хотите вручную:настроить публичный IP роутена, выделенный провайдером:

/ip address add address=xx.xx.xx.xx/29 interface=WAN

/ip dhcp-client remove [find interface=WAN]

Если нужно получить внешний IP автоматически от DHCP:

/ip dhcp-client add interface=WAN disabled=no

Теперь задайте адрес роутера для LAN:

/ip ad ad ad=192.168.10.1/24 in=LAN

Проверяем назначенные IP:

/ip ad pr

Настройка ШЗ адресов сетевых интерфейсов MikroTik

Добавляем маршрут по умолчанию к вашему провайдеру, чтобы чтобы CHR знал, куда маршрутизировать внешний трафик:

/ip route add dst-address=0.0.0.0/0 gateway=yy.yy.yy.yy routing-table=main

Проверяем таблицу маршрутизации:

/ip route

Включаем DHCP сервер для раздачи IP адресов устройствам в LAN:

# Создаем пул IP-адресов
/ip pool add name=INT_LAN_192.168.10.0 ranges=192.168.10.20-192.168.10.254
# Включаем DHCP-сервер на LAN-интерфейсе
/ip dhcp-server add address-pool=INT_LAN_192.168.10.0 disabled=no interface=LAN name=DHCP_LAN
# Сетевые сетевые настройки для клиентов (шлюз и DNS)
/ip dhcp-server network add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1

Добавляем внешние DNS, через которые будет выполняться разрешение имен и разрешите запросы к нему из локальной сети:

/ip dns set servers=77.88.8.1,8.8.8.8 allow-remote-requests=yes

Чтобы устройства из LAN-интерфейса могли выходить в интернет через один WAN-адрес, нужно включить NAT (маскарад):

/ip firewall nat add action=masquerade chain=srcnat out-interface=WAN

Следующий этап – настройка файервола. В отличии от домашних роутеров MikroTik, в виртуальной машине CHR файевол по умолчанию не содержит никаких правил. Разрешен любой входящий и проходящий трафик (политика Accept).

Ниже показан пример стандартных правил для MikroTik для реализации классической конфигурации: доступ из LAN наружу разрешен, любой доступ снаружи (через WAN) блокируется .

# Разрешаем уже установленные соединения
/ip firewall filter add action=accept chain=input connection-state=established,related comment="Accept established,related"
/ip firewall filter add action=accept chain=forward connection-state=established,related comment="Accept established,related"
# Отклоняем недействительные (invalid) пакеты
/ip firewall filter add action=drop chain=input connection-state=invalid comment="Drop invalid"
/ip firewall filter add action=drop chain=forward connection-state=invalid comment="Drop invalid"
# Разрешаем доступ к роутеру и транзит трафика из LAN
/ip firewall filter add action=accept chain=input in-interface=LAN comment="Accept LAN to Router"
/ip firewall filter add action=accept chain=forward in-interface=LAN comment="Accept LAN to Internet"
# Блокируем подключение к самому роутеру снаружи (WAN)
/ip firewall filter add action=drop chain=input in-interface=WAN comment="Drop all other from WAN"
# Запрет использования роутера как транзитного узла из WAN:
/ip firewall filter add action=drop chain=forward in-interface=WAN connection-nat-state=!dstnat comment="Drop all forward from WAN except port forwarding"

Если количество сетевых интерфейсов/VLAN на вашем виртуальном роутере со временем будет увеличиваться, лучше добавить итоговое правило, которое будет откронять любой другой трафик:

/ip firewall filter add action=drop chain=input comment="Drop all other input"
/ip firewall filter add action=drop chain=forward comment="Drop all other forward"

Ну и для примера я добавил простое правила порт форвардинга одного порта (в этом примере порт RDP 3389) на компьютер во внутренний сети:

/ip firewall nat add chain=dstnat dst-port=3389 protocol=tcp in-interface=WAN action=dst-nat to-addresses=192.168.10.254 to-ports=3389 comment="RDP to Srv1"

После окончания базовой настройки MikroTik, обновите ОС до последней версии RouterOS. Проще всего через интерфейс WinBox: System -> Package -> Check For Updates -> Download and Install.

Обновление версии облачного роутера MikroTik RouterOS

Осталось настроить в Proxmox автоматической запуск машины с виртуальным роутером MikroTik и (опционально) порядок запуска ВМ.

Лицензирование MikroTik Cloud Hosted Router

Доступно несколько типов лицензий виртуального роутера MikroTik CHR, отличающихся стоимостью и ограничениями на максимальную скорость сетевого интерфейса:

ЛицензияЦенаОграничение скоростиОсобености
Free tier Бесплатно 1 Мбит/с на интерфейс
P1 $45 1 Гбит/с на интерфейсДоступен 60-дневный триал период без покупки лицензии (после окончания триала пропадает возможность обновления RouterOS)
P10 $95 10 Гбит/с на интерфейс
P-Unlimited $250 Без ограничений

Лицензия приобретается в аккаунте на account.mikrotik.com и привязывается к System ID инстанса CHR а не физического сервера.

Для управления лицензией СРК перейдите в System -> Licenses.

лицензии MikroTik CHR облачный роутер


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)