Теперь, когда RouterOS v7.1rc3 поддерживает запуск контейнеров, я выделил время и создал Docker-образ для запуска RIPE Atlas Software Probe на моем роутере MikroTik. Образ основан на официальном коде от RIPE NCC, с небольшими доработками для работы под Alpine Linux. Alpine основан на musl, а не на glibc, из-за чего образ получается намного компактнее и быстрее в контейнерах. Сейчас я запускаю его на своем hAP ac³ — работает отлично.
Использовать этот образ очень просто:
# Создать интерфейс veth
/interface/veth/add address=172.16.0.1/24 gateway=172.16.0.254 name=veth1
# Создать мостовой интерфейс
/interface/bridge/add admin-mac=00:53:FF:1A:2B:3C auto-mac=no mtu=1500 name=bridge-docker
# Добавить IPv4 на мост
/ip/address/add address=172.16.0.254/24 interface=bridge-docker
# Добавить veth к мосту
/interface/bridge/port/add bridge=bridge-docker ingress-filtering=no interface=veth1
# Добавить мост в LAN (чтобы обеспечить NAT)
/interface/list/member/add interface=bridge-docker list=LAN
# Создать монтирования для /var/atlas-probe/etc и /var/atlas-probe/status
/container/mounts/add dst=/var/atlas-probe/etc name=atlas-probe-etc src=atlas-probe-etc
/container/mounts/add dst=/var/atlas-probe/status name=atlas-probe-status src=atlas-probe-status
# Создать контейнер
/container/add dns=172.16.0.254 hostname=ripe-atlas interface=veth1 mounts=atlas-probe-etc,atlas-probe-status root-dir=ripe-atlas start-on-boot=yes remote-image=ctassisf/ripe-atlas-alpine:latest
# Запустить контейнер
/container/start number=0
# Проверить, что контейнер в статусе running
/container/print
Используйте публичный SSH-ключ probe_key.pub, сохранённый в памяти роутера, чтобы зарегистрировать свой probe здесь:
И потом дайте знать, получилось ли у вас.
Это пока ещё проект в разработке. Возможно, где-то есть шероховатости. Меня также интересует настройка IPv6 — либо нативно, либо через NAT, но пока не удалось заставить это работать.
Вы можете посмотреть мою probe в работе здесь.
Также прикладываю скриншоты, показывающие, как мой hAP ac³ справляется с нагрузкой (она вообще не чувствуется, хех).
Проект доступен на GitHub и Docker Hub.
Больше информации — в документации MikroTik.
Использовать этот образ очень просто:
# Создать интерфейс veth
/interface/veth/add address=172.16.0.1/24 gateway=172.16.0.254 name=veth1
# Создать мостовой интерфейс
/interface/bridge/add admin-mac=00:53:FF:1A:2B:3C auto-mac=no mtu=1500 name=bridge-docker
# Добавить IPv4 на мост
/ip/address/add address=172.16.0.254/24 interface=bridge-docker
# Добавить veth к мосту
/interface/bridge/port/add bridge=bridge-docker ingress-filtering=no interface=veth1
# Добавить мост в LAN (чтобы обеспечить NAT)
/interface/list/member/add interface=bridge-docker list=LAN
# Создать монтирования для /var/atlas-probe/etc и /var/atlas-probe/status
/container/mounts/add dst=/var/atlas-probe/etc name=atlas-probe-etc src=atlas-probe-etc
/container/mounts/add dst=/var/atlas-probe/status name=atlas-probe-status src=atlas-probe-status
# Создать контейнер
/container/add dns=172.16.0.254 hostname=ripe-atlas interface=veth1 mounts=atlas-probe-etc,atlas-probe-status root-dir=ripe-atlas start-on-boot=yes remote-image=ctassisf/ripe-atlas-alpine:latest
# Запустить контейнер
/container/start number=0
# Проверить, что контейнер в статусе running
/container/print
Используйте публичный SSH-ключ probe_key.pub, сохранённый в памяти роутера, чтобы зарегистрировать свой probe здесь:
И потом дайте знать, получилось ли у вас.
Это пока ещё проект в разработке. Возможно, где-то есть шероховатости. Меня также интересует настройка IPv6 — либо нативно, либо через NAT, но пока не удалось заставить это работать.
Вы можете посмотреть мою probe в работе здесь.
Также прикладываю скриншоты, показывающие, как мой hAP ac³ справляется с нагрузкой (она вообще не чувствуется, хех).
Проект доступен на GitHub и Docker Hub.
Больше информации — в документации MikroTik.
