В комментариях к одному из прошлых постов меня спросили, а какие же роутеры нормальные, если "всё вокруг г...но". Попробую ответить.
Сперва немного потеоретизируем. Какие характеристики роутера у нас вообще существуют.
- Быстродействие процессора (мегагерцы, количество ядер).
- Архитектура (ARM, AMD64, а может вообще ASIC).
- Объем оперативной памяти.
- Объем флеш-памяти (ПЗУ).
- Количество "честных" сетевых интерфейсов.
- Операционная система (обычно это Linux или FreeBSD).
- Степень проприетарности софта ([не]возможность расширять функционал своими силами).
- Наличие красивых интерфейсов управления ("порог вхождения").
- Возможность залезть глубоко в кишки системы.
Что из перечисленного и для чего именно требуется в реальной жизни.
CPU — для пересчёта контрольной суммы маршрутизируемых пакетов, шифрования данных в тоннелях, обработки прерываний в AMD64-архитектуре.
Архитектура — важна при работе на большом количестве PPS (Packets per Second). В AMD64 если направлять на интерфейс миллионы пакетов в секунду, то CPU будет заниматься только обработкой прерываний от сетевой карты, ни на что другое его ресурсов уже не останется. Но если вы не провайдер-магистрал, с таким вряд ли когда-нибудь столкнётесь.
RAM — для хранения информации об открытых TCP и UDP-сессиях, требуется для работы NAT-а, обслуживание разного дополнительного софта (если есть).
ПЗУ — если роутер умеет устанавливать на себя дополнительный софт, может оказаться весьма ценным ресурсом.
"Честные интерфейсы" — если, например, LAN и WAN не разделены "физически", а приходят в один свитч и разводятся по VLAN-ам (как это сделано всё в том же Mikrotik 951G, например), то могут начинаться всякие чудеса при переполнении ARP-таблиц встроенного в роутер свитча. Я такое "ловил".
Операционная система — в основном дело вкуса. В подавляющем большинстве случаев это будет Linux, т.к. сегодня мало кто утруждает себя писать "с нуля" на коленке что-то своё. OpenWRT, Mikrotik, Ubiquiti, Cisco — это всё Linux. Juniper — FreeBSD.
Открытость / проприетарность важна, если хочешь сам руками что-то допилить / перепилить. Добавить какой-то функционал, ежели не хватает.
Последние два пункта, вроде, и так понятны.
По тому, что сейчас есть из популярного на рынке.
Cisco, Juniper — решения, изначально заточенные под работу в сетях. Они там все оптимизированные-переоптимизированные. Для них ни лютые PPS, ни мегабиты в IPSEC-тоннелях не являются проблемой. Единственная беда — ценник, проприетарность, высокий порог вхождения. Если тебе нужна кофемолка, кофеварка и коферазливалка — для этого потребуется купить не одно, а минимум три разных устройства за о-ло-лол (кило)баксов каждое. А денюжки все считать умеют.
AMD64 — конструктор. Ставишь на него всё тот же Linux, а дальше функционал ограничен только твоей фантазией, а вычислительная мощность — толщиной твоего кошелька. Причём и то, и другое плавно регулируется в весьма широких пределах. Из относительных минусов можно придумать геометрические габариты, прожорливость электроэнергии и шумность. Такие штуки обычно тяжеловато бывает запитать через PoE и засунуть куда-нибудь между шкафом и телевизором. Впрочем, есть варианты.
OpenWRT — всё тот же конструктор, только адаптированный под компактные ARM-системы. Функционал всё так же ограничен только фантазией и объемом внутренней флеш-памяти (впрочем, можно воткнуть и внешнюю флешку). Китайцы нонче продают довольно мощное железо, если очень хочется. Если ты и так линуксоид, то порог вхождения довольно низкий. Хорош тем, что весь софт совершенно привычный. И можно хоть Asterisk туда вкорячить.
Ubiquiti — анально огороженный OpenWRT с красивой веб-мордой, если мы говорим о точках доступа. В роутерах — такой же анально огороженный Linux. Технически возможно запустить там "родной" bash и iproute2, только вот чтобы сохранить сделанные настройки, всё равно придётся изучать их формат XML-файлов. А через штатную веб-морду можно сделать что-то только по заранее предусмотренным разработчиками сценариям. Шаг вправо, шаг влево — склонность к побегу, прыжок на месте — попытка улететь. В общем, это для тех, кому "голый" Linux — слишком сложно, но функционала "бытовых" роутеров уже не хватает.
Mikrotik — такой же анально огороженный Linux, но в отличие от Ubiquiti, туда в "родной" шелл не попасть вообще никак. К тому же оно всё проприетарное. Если разработчик выпустил под какую-то задачу пакетик — тебе повезло. Не выпустил — ой, извините. Сколько себя помню, так они и не сделали ни OpenVPN поверх UDP, ни Split DNS, хотя все регулярно просят. К тому же в случае возникновения какого-то бага ты фиг что-то отладишь. Даже банально для того, чтобы багрепорт послать. Потому что доступа в "кишки" нет от слова "совсем". Помню, как я пытался в молодости строить на 951-х Mikrotik-ах IPSec-тоннели. При достижении определенной нагрузки CPU "захлёбывался", и тоннель рвался. Ну охренеть, дайте две... А уж стыковать их с цисками или, упаси б-г, с FortiGate-ами... лучше шлите на *** сразу того, кто попросит вас это сделать.
Мораль сей басни...
Если вам просто нужно сделать условной бабе Клаве доступ в интернет для двух с половиной компьютеров — берите обычный бытовой роутер и не компостируйте никому мозг. Говорят, сейчас Keenetic-и весьма неплохи. Если у вас небольшой офис человек на десять, хочется куда-нибудь OpenVPN-тоннель, а денег совсем нет — пойдёт OpenWRT на какой-нибудь достаточно мощной железке типа Xiaomi Mi WiFi Router 3G или TP-Link Archer C9. Но не ждите от них чуда. Через шифрованные тоннели прокачаете максимум 40 МБит/с (с WireGuard), а 20 человек на 50 Мбит-ном канале они уже "не потянут". Дальше уже или AMD64-решение, или какой-нибудь там Juniper SRX100, Cisco FirePower 1010 и всё в этом духе.
А на Mikrotik-и с Ubiquiti даже не смотрите. Это как парень-веган: "ни рыба, ни мясо". С одной стороны, не шибко мощная ARM-архитектура, с другой стороны — исключительная проприетарщина и анальная огороженность. Вы платите деньги не за нормальную железку или разухабистый функционал, а исключительно за красивую веб-морду. Оно вам надо? А производители всего этого говна "выезжают" исключительно на том, что куча народа боится SSH-консоли и ленится изучить мануалы по iptables / iproute2 / Cisco IOS / JunOS.
Как-то так.
Update. Тов. yalexey утверждает, что он на MT7621 (Xiaomi Mi 3G, например) прокачивал через WireGuard ажно 100 Мбит/с. Проверить не на чем, можно поверить на слово.