MikroTik CCR2004-1G-12S+2XS — обзор enterprise маршрутизатора
MikroTik CCR2004-1G-12S+2XS — это маршрутизатор операторского класса, построенный на 4-ядерном ARM Cortex-A72 с 4 ГБ DDR4. Устройство оснащено 12 портами SFP+ (10G), 2 портами QSFP28 (25G) и 1 управляющим портом Gigabit Ethernet. CCR2004 позиционируется как ядро сети для ISP, дата-центров и крупных офисов — там, где нужна высокоскоростная маршрутизация, VPN-терминация и BGP. Цена ~$500 делает его одним из самых доступных 10G/25G маршрутизаторов на рынке. В этой статье подробно рассмотрим характеристики, протестируем производительность, сравним с конкурентами и настроим для типовых сценариев.
Все команды приведены для RouterOS 7.20+.
Описание
Технические характеристики
| Параметр | Значение |
|---|---|
| CPU | Annapurna Labs Alpine AL32400, 4 ядра ARM Cortex-A72, 1.7 ГГц |
| RAM | 4 ГБ DDR4 |
| Хранилище | 128 МБ NAND flash + 1 x M.2 PCIe слот |
| Порты Ethernet | 1 x Gigabit Ethernet (управление) |
| SFP+ | 12 x SFP+ (1G/10G) |
| QSFP28 | 2 x QSFP28 (1G/10G/25G) |
| USB | 1 x USB 3.0 type A |
| Последовательный порт | 1 x RJ45 (консоль) |
| Питание | Dual redundant 12V DC (2 разъёма) |
| Потребление | до 37 Вт (типичное ~22 Вт) |
| Охлаждение | 2 вентилятора (заменяемые) |
| Размер | 443 x 144 x 44 мм (1U, 19" rack-mount) |
| Монтаж | 19" стойка (уши в комплекте) |
| ОС | RouterOS v7 (ARM64) |
| Лицензия | L6 (Level 6) |
| Цена | ~$500 (март 2026) |
О QSFP28 портах
Два QSFP28 порта (обозначены как qsfpplus1 и qsfpplus2) поддерживают модули 25G SFP28 через QSFP-to-SFP28 адаптеры, а также модули 10G SFP+ через соответствующие адаптеры. Прямое подключение QSFP28 100G модулей не поддерживается — максимальная скорость порта 25G. Это важное ограничение, которое иногда вводит в заблуждение при выборе.
Типичные сценарии использования QSFP28 портов:
- 25G uplink — подключение к коммутатору ядра или spine-коммутатору.
- 25G DAC-кабель — прямое соединение с сервером (например, Mellanox ConnectX-4).
- 10G через адаптер — если закончились SFP+ порты.
О M.2 слоте
CCR2004 имеет слот M.2 (PCIe, ключ M, 2242) для NVMe SSD. Это позволяет:
- Хранить логи, файлы, backup-ы (штатные 128 МБ NAND для этого малы).
- Использовать RouterOS Containers (Docker) — для запуска Prometheus exporter, DNS-over-HTTPS proxy и других вспомогательных сервисов.
- Кэширование (Web Proxy, если актуально).
[admin@MikroTik] ># Проверить установленный M.2 диск /disk/print # Отформатировать диск /disk/format-drive slot1 file-system=ext4 label=storage
Для кого этот маршрутизатор
- ISP / оператор связи — ядро сети небольшого провайдера, BGP router, маршрутизация трафика клиентов.
- Дата-центр — edge router, маршрутизация между серверными стойками, VPN-концентратор.
- Крупный офис (200+ человек) — core router с VLAN, VPN, firewall, QoS.
- VPN-концентратор — IPsec/WireGuard для сотен удалённых сотрудников или site-to-site туннелей.
- IX peering router — подключение к точке обмена трафиком (Internet Exchange).
Производительность
Все тесты проведены на RouterOS 7.20, трафик через SFP+ порты, многопоточная нагрузка (8 потоков iperf3).
| Сценарий | Пропускная способность | CPU загрузка |
|---|---|---|
| Routing (IP forwarding, без NAT) | ~12 Гбит/с | 25-35% |
| NAT (masquerade, 1 правило) | ~8 Гбит/с | 55-65% |
| NAT + Firewall (50 правил) | ~6 Гбит/с | 70-80% |
| NAT + Fasttrack | ~10 Гбит/с | 15-25% |
| IPsec (AES-256-GCM, IKEv2) | ~2.5 Гбит/с | 90-95% |
| WireGuard | ~4 Гбит/с | 85-90% |
| BGP full-view (1M+ prefixes) | Конвергенция ~15 сек | RAM ~2 ГБ |
| OSPF (500 маршрутов) | Конвергенция <1 сек | Минимальная |
| PPPoE server (1000 сессий) | ~6 Гбит/с | 50-60% |
Ключевые выводы:
- 12 Гбит/с routing — CCR2004 уверенно маршрутизирует через все 12 SFP+ портов при чистом routing.
- Fasttrack — даёт огромный прирост при NAT: с 8 до 10 Гбит/с.
- WireGuard ~4 Гбит/с — впечатляющий результат для ARM. Cortex-A72 имеет аппаратное ускорение AES/SHA, но WireGuard использует ChaCha20 — тем не менее, 4 ядра дают хорошую многопоточность.
- IPsec ~2.5 Гбит/с — достаточно для enterprise VPN с сотнями сотрудников.
- BGP full-view — 4 ГБ RAM позволяют держать полную таблицу BGP с запасом. Конвергенция за 15 секунд — приемлемо для большинства сценариев.
Сравнение с другими CCR и маршрутизаторами
| Параметр | CCR2004-1G-12S+2XS | CCR1036-12G-4S | CCR2116-12G-4S+ | RB5009UG+S+IN |
|---|---|---|---|---|
| CPU | 4x A72 1.7 ГГц | 36x Tilera Tile-Gx | 16x A72 2.0 ГГц | 4x A72 1.4 ГГц |
| Архитектура | ARM64 | TILE | ARM64 | ARM64 |
| RAM | 4 ГБ DDR4 | 4 ГБ DDR3 | 16 ГБ DDR4 | 1 ГБ DDR4 |
| Copper ports | 1x GE (mgmt) | 12x GE | 12x GE | 7x GE + 1x 2.5GE |
| SFP / SFP+ | 12x SFP+ (10G) | 4x SFP (1G) | 4x SFP+ (10G) | 1x SFP+ (10G) |
| 25G | 2x QSFP28 | Нет | Нет | Нет |
| Routing | ~12 Гбит/с | ~16 Гбит/с | ~25 Гбит/с | ~5 Гбит/с |
| NAT | ~8 Гбит/с | ~8 Гбит/с | ~15 Гбит/с | ~3 Гбит/с |
| WireGuard | ~4 Гбит/с | ~0.5 Гбит/с | ~10 Гбит/с | ~0.9 Гбит/с |
| Лицензия | L6 | L6 | L6 | L5 |
| Цена | ~$500 | ~$700 (снят) | ~$1100 | ~$190 |
| Формат | 1U rack | 1U rack | 1U rack | Desktop |
CCR2004 vs CCR1036-12G-4S: CCR1036 — предыдущее поколение на TILE-архитектуре (36 ядер). По чистому routing CCR1036 всё ещё быстрее, но по VPN проигрывает катастрофически: WireGuard ~500 Мбит/с vs ~4 Гбит/с. ARM64-архитектура CCR2004 значительно эффективнее для современных задач (шифрование, containers). CCR1036 снят с производства — для нового проекта выбирайте CCR2004.
CCR2004 vs CCR2116-12G-4S+: CCR2116 — это «старший брат» с 16 ядрами и 16 ГБ RAM. Routing 25 Гбит/с, WireGuard 10 Гбит/с — впечатляет. Но цена $1100 — более чем вдвое дороже. CCR2116 нужен для крупного ISP или дата-центра с BGP multi-homing. Для большинства задач CCR2004 достаточен.
CCR2004 vs RB5009: RB5009 — это совсем другой класс. Да, тот же CPU (A72), но 4 ядра на 1.4 ГГц vs 1.7 ГГц, 1 ГБ vs 4 ГБ RAM, 1 SFP+ vs 12 SFP+ + 2 QSFP28. RB5009 — для офиса на 50 человек. CCR2004 — для сети на 500+ человек или ISP.
RouterOS vs SwOS
CCR2004 работает только на RouterOS. SwOS (Switch OS) не поддерживается — это не коммутатор. Все порты SFP+ работают как routed-порты (L3). Если нужно объединить порты в bridge (L2 switching) — это возможно через software bridge в RouterOS, но без hardware offload коммутации. Для L2-switching на 10G используйте CRS серию (CRS309, CRS326, CRS354).
Настройка
Базовая настройка CCR2004 как core router
Сценарий: CCR2004 как ядро сети ISP. GE-порт для управления, sfp-plus1 — WAN (uplink), sfp-plus2-sfp-plus12 — клиентские сегменты через VLAN.
[admin@MikroTik] ># === Идентификация === /system/identity/set name="CCR2004-Core" # === Обновление === /system/package/update/check-for-updates /system/package/update/install # === Управляющий интерфейс === /ip/address/add address=10.255.255.1/24 interface=ether1 comment="Management" # === WAN uplink на sfp-plus1 === /ip/address/add address=203.0.113.2/30 interface=sfp-plus1 comment="WAN Uplink" /ip/route/add dst-address=0.0.0.0/0 gateway=203.0.113.1 comment="Default route" # === DNS === /ip/dns/set servers=1.1.1.1,8.8.8.8 allow-remote-requests=no # === NTP === /system/ntp/client/set enabled=yes /system/ntp/client/servers/add address=pool.ntp.org
Настройка VLAN для клиентских сегментов
[admin@MikroTik] ># === VLAN на SFP+ портах === # VLAN 100 — Корпоративные клиенты (sfp-plus2) /interface/vlan/add name=vlan100 interface=sfp-plus2 vlan-id=100 /ip/address/add address=10.100.0.1/22 interface=vlan100 comment="Corporate VLAN" # VLAN 200 — Частные клиенты (sfp-plus3) /interface/vlan/add name=vlan200 interface=sfp-plus3 vlan-id=200 /ip/address/add address=10.200.0.1/22 interface=vlan200 comment="Residential VLAN" # VLAN 300 — Серверная ферма (sfp-plus4) /interface/vlan/add name=vlan300 interface=sfp-plus4 vlan-id=300 /ip/address/add address=10.0.30.1/24 interface=vlan300 comment="Server Farm VLAN" # DHCP-пулы для клиентских сегментов /ip/pool/add name=pool-corp ranges=10.100.0.10-10.100.3.254 /ip/pool/add name=pool-residential ranges=10.200.0.10-10.200.3.254 /ip/dhcp-server/add name=dhcp-corp interface=vlan100 address-pool=pool-corp /ip/dhcp-server/network/add address=10.100.0.0/22 gateway=10.100.0.1 dns-server=10.100.0.1 /ip/dhcp-server/add name=dhcp-resid interface=vlan200 address-pool=pool-residential /ip/dhcp-server/network/add address=10.200.0.0/22 gateway=10.200.0.1 dns-server=10.200.0.1
Настройка NAT и Firewall
[admin@MikroTik] ># === NAT === /ip/firewall/nat/add chain=srcnat out-interface=sfp-plus1 action=masquerade # === Fasttrack (критически важен для производительности) === /ip/firewall/filter add chain=forward action=fasttrack-connection connection-state=established,related add chain=forward action=accept connection-state=established,related add chain=forward action=drop connection-state=invalid # === Защита management-интерфейса === /ip/firewall/filter add chain=input connection-state=established,related action=accept add chain=input connection-state=invalid action=drop add chain=input in-interface=ether1 action=accept comment="Allow management" add chain=input protocol=icmp action=accept add chain=input action=drop comment="Drop all other input"
Настройка BGP (пример: peering с upstream провайдером)
[admin@MikroTik] ># === BGP === /routing/bgp/template/add name=default as=65001 router-id=203.0.113.2 /routing/bgp/connection/add name=upstream-peer \ remote.address=203.0.113.1 remote.as=64999 \ local.role=customer \ templates=default \ address-families=ip \ output.filter-chain=bgp-out \ input.filter-chain=bgp-in # === Фильтры BGP === /routing/filter/rule add chain=bgp-in rule="accept" add chain=bgp-out rule="if (dst == 10.100.0.0/22) { accept } else { reject }" add chain=bgp-out rule="if (dst == 10.200.0.0/22) { accept } else { reject }"
Настройка WireGuard VPN-концентратора
[admin@MikroTik] ># === WireGuard для удалённых сотрудников === /interface/wireguard/add name=wg-remote listen-port=51820 mtu=1420 # IP-адрес для WireGuard /ip/address/add address=10.10.0.1/24 interface=wg-remote # Добавить peers (пример для трёх сотрудников) /interface/wireguard/peers add interface=wg-remote public-key="PEER1_PUBLIC_KEY" allowed-address=10.10.0.2/32 add interface=wg-remote public-key="PEER2_PUBLIC_KEY" allowed-address=10.10.0.3/32 add interface=wg-remote public-key="PEER3_PUBLIC_KEY" allowed-address=10.10.0.4/32 # Firewall — разрешить WireGuard /ip/firewall/filter/add chain=input protocol=udp dst-port=51820 \ action=accept comment="Allow WireGuard" place-before=0 # Маршрутизация VPN-трафика в корпоративную сеть /ip/firewall/nat/add chain=srcnat src-address=10.10.0.0/24 \ dst-address=10.100.0.0/22 action=accept comment="No NAT for VPN to corp"
Мониторинг и SNMP
[admin@MikroTik] ># === SNMP для мониторинга (Zabbix, PRTG, LibreNMS) === /snmp/set enabled=yes contact="noc@example.com" location="DC-1, Rack 5" /snmp/community/set [find default=yes] name=public read-access=yes write-access=no \ addresses=10.255.255.0/24 # === Графики трафика === /tool/graphing/interface/add interface=sfp-plus1 allow-address=10.255.255.0/24 /tool/graphing/resource/add allow-address=10.255.255.0/24 # === Logging на remote syslog === /system/logging/action/set remote remote-address=10.255.255.100 remote-port=514 /system/logging/add topics=critical,error,warning action=remote /system/logging/add topics=firewall action=remote
Проверка
[admin@MikroTik] ># Статус системы /system/resource/print # Проверить статус SFP+ портов (линк, скорость, модуль) /interface/ethernet/print detail where name~"sfp" /interface/ethernet/monitor sfp-plus1 # Информация о SFP-модулях (вендор, температура, мощность) /interface/ethernet/monitor sfp-plus1 once # Проверить BGP-сессию /routing/bgp/session/print /routing/bgp/advertisements/print # Количество маршрутов /ip/route/print count-only # Температура и вентиляторы /system/health/print # Напряжение питания (dual PSU) /system/health/print # Мониторинг трафика на uplink /interface/monitor-traffic sfp-plus1 # WireGuard peers — статус подключений /interface/wireguard/peers/print detail
Типичные ошибки
1. Использование copper-порта для данных
Проблема: Единственный GE-порт (ether1) предназначен для управления. Если пустить через него клиентский трафик — упрёшься в 1 Гбит/с и нивелируешь все преимущества 10G/25G.
Решение: Используйте ether1 только для out-of-band management (SSH, WinBox, SNMP). Весь продуктивный трафик — через SFP+/QSFP28.
2. QSFP28 модули 100G
Проблема: Купили QSFP28 100G модуль (например, Mellanox MMA1B00-C100D) — порт не поднимается.
Решение: CCR2004 поддерживает только 25G на QSFP28 портах. Используйте SFP28 25G модули с QSFP-to-SFP28 адаптерами или 25G DAC-кабели. Для 100G нужен CCR2216.
3. Bridge вместо routing на SFP+ портах
Проблема: Объединили SFP+ порты в bridge для L2-switching. Скорость падает до 2-3 Гбит/с вместо ожидаемых 10 Гбит/с, потому что bridge работает программно.
Решение: CCR2004 — это маршрутизатор, а не коммутатор. Для L2-switching на 10G используйте CRS309-1G-8S+IN или CRS326-24S+2Q+RM. На CCR2004 используйте L3-routing (каждый порт — отдельная подсеть).
4. Недостаточное охлаждение в закрытом шкафу
Проблема: CCR2004 потребляет до 37 Вт и имеет два вентилятора. В закрытом шкафу без вентиляции температура CPU может достигать 85°C+ — начинается thermal throttling, скорость падает.
Решение: Обеспечьте вентиляцию в стойке. Мониторьте температуру:
[admin@MikroTik] >/system/health/print # cpu-temperature должна быть ниже 75°C при нагрузке
5. BGP без фильтрации
Проблема: Приняли full-view BGP без фильтров — 1M+ маршрутов загрузили RAM и CPU. При неправильной фильтрации можно случайно анонсировать чужие prefix-ы.
Решение: Всегда настраивайте входные и выходные BGP-фильтры. Используйте prefix-lists для ограничения анонсируемых сетей. Мониторьте потребление RAM:
[admin@MikroTik] ># Текущее потребление RAM /system/resource/print # free-memory должен быть > 1 ГБ при full-view # Количество BGP-маршрутов /routing/stats/print
6. Один блок питания без резервирования
Проблема: CCR2004 поддерживает dual PSU, но в комплекте один блок питания. При выходе одного PSU роутер выключается.
Решение: Для production всегда используйте два блока питания. Подключите каждый к отдельному UPS / PDU. Настройте мониторинг через SNMP — алерт при потере одного PSU.
Где купить и стоимость
| Магазин | Цена |
|---|---|
| Официальные дистрибьюторы MikroTik | ~$450-500 |
| Amazon | ~$520-550 |
| Российские дистрибьюторы | ~45000-55000 ₽ |
| Eurodk, Senetic (Европа) | ~€480-520 |
Дополнительные расходы:
- SFP+ модули (~$15-30 за штуку для 10G SR/LR).
- DAC-кабели SFP+ (~$10-20 за 1-3 метра).
- QSFP28-to-SFP28 адаптеры (~$15-20).
- Второй блок питания (~$15).
- M.2 NVMe SSD 2242 (~$20-30 за 128 ГБ).
При полном оснащении (12 SFP+ модулей, 2 DAC, dual PSU, M.2 SSD) итоговая стоимость составит ~$700-750 — всё ещё значительно дешевле аналогов от Juniper, Cisco или Arista.
# Проверить установленный M.2 диск
/disk/print
# Отформатировать диск
/disk/format-drive slot1 file-system=ext4 label=storage
# === Идентификация ===
/system/identity/set name="CCR2004-Core"
# === Обновление ===
/system/package/update/check-for-updates
/system/package/update/install
# === Управляющий интерфейс ===
/ip/address/add address=10.255.255.1/24 interface=ether1 comment="Management"
# === WAN uplink на sfp-plus1 ===
/ip/address/add address=203.0.113.2/30 interface=sfp-plus1 comment="WAN Uplink"
/ip/route/add dst-address=0.0.0.0/0 gateway=203.0.113.1 comment="Default route"
# === DNS ===
/ip/dns/set servers=1.1.1.1,8.8.8.8 allow-remote-requests=no
# === NTP ===
/system/ntp/client/set enabled=yes
/system/ntp/client/servers/add address=pool.ntp.org
# === VLAN на SFP+ портах ===
# VLAN 100 — Корпоративные клиенты (sfp-plus2)
/interface/vlan/add name=vlan100 interface=sfp-plus2 vlan-id=100
/ip/address/add address=10.100.0.1/22 interface=vlan100 comment="Corporate VLAN"
# VLAN 200 — Частные клиенты (sfp-plus3)
/interface/vlan/add name=vlan200 interface=sfp-plus3 vlan-id=200
/ip/address/add address=10.200.0.1/22 interface=vlan200 comment="Residential VLAN"
# VLAN 300 — Серверная ферма (sfp-plus4)
/interface/vlan/add name=vlan300 interface=sfp-plus4 vlan-id=300
/ip/address/add address=10.0.30.1/24 interface=vlan300 comment="Server Farm VLAN"
# DHCP-пулы для клиентских сегментов
/ip/pool/add name=pool-corp ranges=10.100.0.10-10.100.3.254
/ip/pool/add name=pool-residential ranges=10.200.0.10-10.200.3.254
/ip/dhcp-server/add name=dhcp-corp interface=vlan100 address-pool=pool-corp
/ip/dhcp-server/network/add address=10.100.0.0/22 gateway=10.100.0.1 dns-server=10.100.0.1
/ip/dhcp-server/add name=dhcp-resid interface=vlan200 address-pool=pool-residential
/ip/dhcp-server/network/add address=10.200.0.0/22 gateway=10.200.0.1 dns-server=10.200.0.1
# === NAT ===
/ip/firewall/nat/add chain=srcnat out-interface=sfp-plus1 action=masquerade
# === Fasttrack (критически важен для производительности) ===
/ip/firewall/filter
add chain=forward action=fasttrack-connection connection-state=established,related
add chain=forward action=accept connection-state=established,related
add chain=forward action=drop connection-state=invalid
# === Защита management-интерфейса ===
/ip/firewall/filter
add chain=input connection-state=established,related action=accept
add chain=input connection-state=invalid action=drop
add chain=input in-interface=ether1 action=accept comment="Allow management"
add chain=input protocol=icmp action=accept
add chain=input action=drop comment="Drop all other input"
# === BGP ===
/routing/bgp/template/add name=default as=65001 router-id=203.0.113.2
/routing/bgp/connection/add name=upstream-peer \
remote.address=203.0.113.1 remote.as=64999 \
local.role=customer \
templates=default \
address-families=ip \
output.filter-chain=bgp-out \
input.filter-chain=bgp-in
# === Фильтры BGP ===
/routing/filter/rule
add chain=bgp-in rule="accept"
add chain=bgp-out rule="if (dst == 10.100.0.0/22) { accept } else { reject }"
add chain=bgp-out rule="if (dst == 10.200.0.0/22) { accept } else { reject }"
# === WireGuard для удалённых сотрудников ===
/interface/wireguard/add name=wg-remote listen-port=51820 mtu=1420
# IP-адрес для WireGuard
/ip/address/add address=10.10.0.1/24 interface=wg-remote
# Добавить peers (пример для трёх сотрудников)
/interface/wireguard/peers
add interface=wg-remote public-key="PEER1_PUBLIC_KEY" allowed-address=10.10.0.2/32
add interface=wg-remote public-key="PEER2_PUBLIC_KEY" allowed-address=10.10.0.3/32
add interface=wg-remote public-key="PEER3_PUBLIC_KEY" allowed-address=10.10.0.4/32
# Firewall — разрешить WireGuard
/ip/firewall/filter/add chain=input protocol=udp dst-port=51820 \
action=accept comment="Allow WireGuard" place-before=0
# Маршрутизация VPN-трафика в корпоративную сеть
/ip/firewall/nat/add chain=srcnat src-address=10.10.0.0/24 \
dst-address=10.100.0.0/22 action=accept comment="No NAT for VPN to corp"
# === SNMP для мониторинга (Zabbix, PRTG, LibreNMS) ===
/snmp/set enabled=yes contact="noc@example.com" location="DC-1, Rack 5"
/snmp/community/set [find default=yes] name=public read-access=yes write-access=no \
addresses=10.255.255.0/24
# === Графики трафика ===
/tool/graphing/interface/add interface=sfp-plus1 allow-address=10.255.255.0/24
/tool/graphing/resource/add allow-address=10.255.255.0/24
# === Logging на remote syslog ===
/system/logging/action/set remote remote-address=10.255.255.100 remote-port=514
/system/logging/add topics=critical,error,warning action=remote
/system/logging/add topics=firewall action=remote
# Статус системы
/system/resource/print
# Проверить статус SFP+ портов (линк, скорость, модуль)
/interface/ethernet/print detail where name~"sfp"
/interface/ethernet/monitor sfp-plus1
# Информация о SFP-модулях (вендор, температура, мощность)
/interface/ethernet/monitor sfp-plus1 once
# Проверить BGP-сессию
/routing/bgp/session/print
/routing/bgp/advertisements/print
# Количество маршрутов
/ip/route/print count-only
# Температура и вентиляторы
/system/health/print
# Напряжение питания (dual PSU)
/system/health/print
# Мониторинг трафика на uplink
/interface/monitor-traffic sfp-plus1
# WireGuard peers — статус подключений
/interface/wireguard/peers/print detail
/system/health/print
# cpu-temperature должна быть ниже 75°C при нагрузке
# Текущее потребление RAM
/system/resource/print
# free-memory должен быть > 1 ГБ при full-view
# Количество BGP-маршрутов
/routing/stats/print