Какие конкретные роли играет прошивка на маршрутизаторах?

Если маршрутизаторы правильно реализуют стандартные сетевые протоколы (DNS, DHTCP, TCP/IP и т. Д.), То не будет ли одна и та же микропрограмма (реализующая эти протоколы) применяться ко всем маршрутизаторам?

Я думаю, мне интересно, почему все маршрутизаторы используют разные прошивки; почему разные модели одного и того же производителя маршрутизаторов используют разные микропрограммы и почему существует довольно большое сообщество людей с открытым исходным кодом, которые любят писать собственные микропрограммы для маршрутизаторов. Это наводит меня на мысль, что, возможно, в прошивке маршрутизатора есть нечто большее, чем просто реализация определенных протоколов.

Поэтому я спрашиваю: что (конкретные) вещи делает прошивка, кроме просто реализации DHCP/DNS/ и т. Д.?

Какие конкретные случаи использования для написания вашей собственной прошивки?

3 ответа

Решение

Во-первых, вы должны понимать, что маршрутизаторы - это не что иное, как встроенные (ультракомпактные) компьютеры со специализированным сетевым оборудованием.

Микропрограмма маршрутизатора состоит из операционной системы, драйверов и приложений, которые запускает маршрутизатор. По сути, это образ диска, такой же, как те, которые Dell или HP используют для инициализации своих компьютеров перед отправкой с завода.

Поскольку маршрутизаторы являются встроенными устройствами, они должны быть максимально эффективными и небольшими. Вот почему прошивка распространяется в виде одного файла; Этот файл настраивается с учетом конкретной модели маршрутизатора; Нет драйверов для несуществующего оборудования и нет приложений для функций, которые не поддерживаются маршрутизатором, для которого предназначена прошивка.

Прошивка не "реализует" DNS/DHCP/ и т. Д. Прошивка содержит приложение, которое реализует эти протоколы / службы (DNSMasq, DHCPd, так далее.). Так же, как есть много разных приложений, которые могут работать с *.zip В файлах существует много разных приложений, которые могут выполнять эти роли, все с немного отличающимися функциями, или допускают немного другую настройку. Возможно, вы захотите поменяться DNSMasq из за Bind, например). На самом деле это те же приложения, которые вы можете найти на рабочем столе или сервере, который выполнял эти роли.

Во-вторых, многие производители используют одно и то же ядро ​​в основе каждой из своих прошивок. Многие используют урезанную операционную систему Linux. Сходство встроенного ПО маршрутизатора - это то, что позволяет проектам с открытым исходным кодом, таким как DD-WRT, работать на сотнях различных моделей маршрутизаторов; в противном случае это просто потребовало бы слишком много работы.

Эти сообщества микропрограмм с открытым исходным кодом появились, потому что очень мало программного обеспечения, работающего на маршрутизаторе, зависит от оборудования. Вы можете легко установить дополнительные приложения, такие как OpenVPN, серверы потокового мультимедиа и прокси-серверы, если у маршрутизатора достаточно мощности процессора и памяти для поддержки того, что вы хотите сделать.

Микропрограмма маршрутизатора не просто обрабатывает сетевые протоколы. Он рассказывает устройству, как работать. Он решает, что делать при включении устройства. Он может предоставить пользователям веб-интерфейс, интерфейс telnet, ssh и т. Д. Для управления им. Он содержит все пользовательские настройки, которые вы установили. Это намного больше, чем просто обработка сетевых протоколов. Думайте об этом как об операционной системе для устройства.

Люди написали кастомную прошивку роутера, чтобы заменить прошивку производителя, отсюда dd-wrt и tomato.

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

Прошивка зависит от оборудования и его возможностей. Это касается роутеров, телефонов (не только смартфонов), больших роутеров, коммутаторов, мостов, назовите это. Есть определенная часть прошивки, которая выполняет низкоуровневые задачи, такие как чтение из флэш-памяти / дискового хранилища, в следующей части рассказывается, как разговаривать по радио или как разговаривать с встроенным чипом локальной сети. В случае (A)DSL-маршрутизаторов есть также часть, которая отвечает за набор номера и DHCP, DNS и так далее. Другие части отвечают за обслуживание вашего веб-интерфейса, параметры которого различаются для разных маршрутизаторов, как вы, наверное, догадались, в зависимости от аппаратных возможностей (вот почему разные модели одного и того же производителя маршрутизатора используют разные части встроенного ПО).

Все эти части, относящиеся к оборудованию или презентации (назовем их drivers (для простоты) какая-то центральная программа говорит, что делать. Эта программа управляет взаимодействиями между различными драйверами / модулями и не позволяет им делать бессмысленные вещи. Мы назовем этого центрального менеджера kernel опять же для простоты.

Имея в виду вышеизложенное, вы говорите: " Эй, это похоже на окно linux / windows / what" , глядя на эту структуру!, Ну, это правильно! у него нет клавиатуры и мыши, но на самом деле это маленький специализированный компьютер. Многие из них являются домашними маршрутизаторами, которые используют Linux (ну, а не Windows) или способны запустить один (например, Tomato).

Что касается того, почему есть люди, пишущие новые прошивки для них - представьте, что у вас есть маршрутизатор, который не реализует специфические функции, которые вас интересуют (в моем случае это был статически назначенный DHCP). Но есть микропрограмма маршрутизатора Tomato, которая имеет эту функцию и поддерживает аппаратное обеспечение вашего маршрутизатора. Почему бы не использовать его? (кроме утраты гарантии производителя). Я бы и сделал. Поэтому ответ таков: люди пишут разные прошивки для наших роутеров, потому что на них есть спрос, вызванный неспособностью / нежеланием / медлительностью реализации функций оригинального производителя.

Другие вопросы по тегам