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

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

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

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

3 ответа3

2

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

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

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

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

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

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

1

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

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

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

1

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .