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

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

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

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

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

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

решение1

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

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

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

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

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

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

решение2

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

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

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

решение3

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

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

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

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

Связанный контент