klink0v (klink0v) wrote,
klink0v
klink0v

Categories:

Про роутеры

В комментариях к одному из прошлых постов меня спросили, а какие же роутеры нормальные, если "всё вокруг г...но". Попробую ответить.

Сперва немного потеоретизируем. Какие характеристики роутера у нас вообще существуют.


  • Быстродействие процессора (мегагерцы, количество ядер).

  • Архитектура (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 Мбит/с. Проверить не на чем, можно поверить на слово.

Tags: железо, ликбез, сети, ссылки
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 61 comments