Эксперименты с контейнерами в RouterOS

В рамках данного эксперимента я попробую развернуть в RouterOS контейнеры с различными сервисами и дать оценку, насколько это удобно и эффективно. Может ли роутер Mikrotik стать альтернативой, скажем, SBC (Single Board Computer). И есть ли перспективы у “умных роутеров”.

В качестве подопытного кролика я возьму Mikrotik RB4011iGS+5HacQ2HnD-IN, который на момент теста стоил $250. Его ключевые характеристики - https://i.mt.lv/cdn/product_files/RB4011-IN_240134.pdf. Это CPU AL21400 4 ядра ARM Cortex-A15 1.4GHz, 1GB RAM, 512MB NAND, 10x 1Gbit Ethernet, 1x SFP+. К сожалению, возможностей для расширения практически не предусмотрено. Есть только внутренняя карта Mini PCIe, использовать которую в целом проблематично.

В штатном состоянии достаточно много свободных ресурсов (/system resource print)

Установка containers

Контейнер Traefik

Для начала я решил провести эксперимент с достаточно практичной задачей. Организовать обратный прокси для внутренних сервисов. Для этого я решил использовать Traefik, который уже успешно применял до этого и в части поддержики Let’s Encrypt он мне показался намного проще, чем nginx.

Настройка сети

Настройка Traefik

global:
  checkNewVersion: true
  sendAnonymousUsage: false

entryPoints:
  http:
    address: ":80"

providers:
  file:
    filename: "/etc/traefik/config.yml"
    watch: true
http:
  routers:
    my-test:
      entryPoints:
      - http
      service: my-test
      rule: "Host(`test.local`)"
  services:
    my-test:
      loadBalancer:
        servers:
        - url: "http://192.168.1.14:8073"

По итогам мы получаем следующее состояние доступных ресурсов (/system resource print)

Эксперимент с Caddy

До этого я никогда им не пользовался, но кажущая простота настройки подкупила. Настройка осуществляется аналогичным образом за исключением конфигурационного файла vi /etc/caddy/Caddyfile:

{
    local_certs
}

test.local {
  reverse_proxy http://192.168.1.4:8073 
}

Если заменить local_certs на email "my-mail@domain.com" и поставить публичный домен, то Caddy самостоятельно сгенерирует сертификаты для домена используя Let’s Encrypt.

Предварительные итоги