Я планирую установить маршрутизатор для довольно большое количество пользователей (50-100), и я обнаружил, что домашние маршрутизаторы очень нестабильны для такого большого количества устройств.
При исследовании я обнаружил это отчет о типе маршрутизатора Cisco, который я должен использовать в качестве функции количество подключенных клиентов.
Но у меня есть компьютер, которым я сейчас не пользуюсь, и его характеристики неплохие:
Раньше мне удавалось установить Сервер Ubuntu Linux с участием Zentyal, и казалось, что месяцами он работал как роутер с NAT и другие дополнительные функции (межсетевой экран, балансировка нагрузки, статистика и т. д.). Мне было интересно, будет ли это сделай работу на этот раз вместо того, чтобы покупать такие довольно дорогие устройства Cisco (> 1.500 долларов США на 50 клиентов).
Итак, мои вопросы:
Примечание:
Если вам просто нужно выполнять маршрутизацию, тогда все сводится к одному вопросу: сколько пакетов в секунду может обрабатывать ЦП.
Чтобы проверить это под нагрузкой, вы можете установить коммутатор на каждой стороне и подключить несколько компьютеров к каждому коммутатору для генерации трафика. Затем измерьте количество пакетов, которые вы можете передать. Вы должны выполнить как минимум три измерения - одно с пакетами минимального размера, одно с пакетами максимального размера и одно с типичной смесью.
Это даст вам измерения того, какой объем трафика он может обработать. Сколько пользователей он может обработать, зависит от того, сколько трафика нужно каждому пользователю.
Недостаток по сравнению с настоящим маршрутизатором заключается в том, что ему придется выполнять всю маршрутизацию на ЦП, что может стать узким местом. Но если вы знаете, как он может обрабатывать больше пакетов в секунду, чем вам нужно, то это не будет проблемой.
После добавления задач, требующих дополнительной обработки, требования к ЦП и памяти возрастут. Этими задачами могут быть NAT, брандмауэр, DPI, проксирование и т. Д. Это затруднит нагрузочное тестирование вашей установки, потому что время обработки для каждого пакета будет намного больше, чем если бы вам нужна была только маршрутизация.
В некоторых случаях эти сложные задачи могут дать вашему компьютеру преимущество по сравнению с настоящим маршрутизатором. Настоящий маршрутизатор имеет микросхему, предназначенную для маршрутизации пакетов и ничего больше. Если большая часть маршрутизируемых пакетов требует слишком сложной обработки для этого специализированного чипа, маршрутизатор потеряет свое преимущество. Затем все сводится к процессору, и ваш компьютер может иметь более мощный процессор, чем маршрутизатор, который вы в противном случае использовали бы.
Любая обработка с отслеживанием состояния сделает ситуацию еще более сложной. Любые функции NAT, брандмауэра и прокси обычно реализуются с отслеживанием состояния. Для них имеет значение объем памяти и то, как долго состояние хранится в памяти. Любой маршрутизатор с обработкой пакетов с отслеживанием состояния является препятствием для надежности. Нет однозначного ответа, как преодолеть эти препятствия.
Ни одно из упомянутых требований не требует значительного объема памяти. Для надежности я бы загрузил машину с RAID-1 на двух дисках. Что касается производительности, это не должно иметь значения, поскольку как только машина загрузится, она почти никогда не должна снова касаться хранилища.
Для запуска DHCP-сервера не потребуется много вычислительной мощности. При всех остальных требованиях, которые у вас уже есть, добавление DHCP-сервера является такой незначительной задачей, что вы, вероятно, не заметите никакой разницы в требованиях к машине.
Я использовал старый Pentium 4 3 ГГц с 2 ГБ ОЗУ в качестве маршрутизатора + брандмауэр для 500+ пользователей с полнодуплексными гигабитными восходящими линиями во всех направлениях (у нас даже был интернет-сервис со скоростью 1 Гбит / с), и он никогда не пропускал ударов.
Оборудование Cisco надежное, но не слишком мощное, учитывая ненависть к его условиям и ценам. Так что я бы не был слишком напуган числами, которые они бросают в качестве рекомендаций по обеспечению.
Если вы хотите сделать что-либо помимо простой маршрутизации (межсетевой экран, NAT, DHCP и т. Д.) На одном компьютере, держитесь подальше от Linux. Iptables / netfilter - это катастрофа. Я бы выбрал необработанный OpenBSD или дистрибутив брандмауэра на основе BSD, такой как OPNsense или pfSense.