Si los enrutadores implementan correctamente protocolos de red estándar (DNS, DHTCP, TCP/IP, etc.), ¿no sería aplicable el mismo firmware (que implementa estos protocolos) a todos los enrutadores?
Supongo que me pregunto por qué todos los enrutadores usan firmware diferente; por qué diferentes modelos dentro del mismo fabricante de enrutadores usan firmware diferente y por qué parece haber una comunidad de código abierto sustancialmente grande de personas a las que les gusta escribir firmware personalizado para enrutadores. Esto me lleva a creer que quizás haya más en el firmware de un enrutador que solo la implementación de ciertos protocolos.
Entonces pregunto: ¿qué cosas (específicas) hace el firmware, ademásjusto¿Implementando DHCP/DNS/etc.?
¿Cuáles son algunos casos de uso concretos para escribir su propio firmware?
Respuesta1
Primero, debe comprender que los enrutadores no son más que computadoras integradas (ultracompactas) con hardware de red especializado.
Elfirmwarede un enrutador consta desistema operativo, controladores y aplicacionesque ejecuta el enrutador. Es esencialmente una imagen de disco, como las que utilizan Dell o HP para inicializar sus computadoras antes de salir de fábrica.
Dado que los enrutadores son dispositivos integrados, deben ser lo más eficientes y pequeños posible. Por eso el firmware se distribuye como un único archivo; Este archivo está personalizado para el modelo exacto de enrutador; No hay controladores para hardware que no existe ni aplicaciones para funciones que no son compatibles con el enrutador para el que está diseñado el firmware.
El firmware no "implementa" DNS/DHCP/etc. El firmware contiene una aplicación que implementa estos protocolos/servicios ( DNSMasq
, DHCPd
, etc.). Así como hay muchas aplicaciones diferentes que pueden trabajar con *.zip
archivos, hay muchas aplicaciones diferentes que pueden cumplir estas funciones, todas con características ligeramente diferentes o permiten una personalización ligeramente diferente. Es posible que desees cambiarlo DNSMasq
por Bind
, por ejemplo). En realidad, estas son las mismas aplicaciones que podría encontrar en un escritorio o servidor que cumpliera estas funciones.
En segundo lugar, muchos fabricanteshacerutilizan el mismo núcleo en el corazón de cada uno de sus firmwares. Muchos utilizan un sistema operativo Linux simplificado. La similitud del firmware del enrutador es lo que permite que proyectos de firmware de código abierto como DD-WRT funcionen en cientos de modelos de enrutadores diferentes; de lo contrario, simplemente requeriría demasiado trabajo.
Estas comunidades de firmware de código abierto han surgido porque muy poco del software que se ejecuta en un enrutador depende del hardware. Puede instalar fácilmente aplicaciones adicionales como OpenVPN, servidores de medios de transmisión y servidores proxy, siempre que el enrutador tenga suficiente potencia de CPU y memoria para admitir lo que desea hacer.
Respuesta2
El firmware de un enrutador hace más que solo manejar protocolos de red. Le indica al dispositivo cómo operar. Decide qué hacer cuando enciendes el dispositivo. Puede proporcionar una interfaz web, telnet, ssh, etc. para que los usuarios la administren. Contiene todas las configuraciones personalizadas que usted estableció. Hace mucho más que simplemente manejar protocolos de red. Piense en ello como el sistema operativo del dispositivo.
La gente ha escrito firmware de enrutador personalizado para reemplazar el firmware del fabricante, de ahí dd-wrt y tomate.
Básicamente, puede escribir firmware para hacer casi cualquier cosa que desee, suponiendo que el hardware sea capaz y haya suficiente espacio.
Respuesta3
El firmware es específico del hardware y sus capacidades. Esto se aplica a enrutadores, teléfonos (no solo teléfonos inteligentes), enrutadores grandes, conmutadores, puentes, lo que sea. Hay cierta parte del firmware que realiza tareas de bajo nivel como leer desde Flash/almacenamiento en disco, la siguiente parte explica cómo hablar por radio o cómo hablar con un chip LAN integrado. En el caso de los enrutadores (A)DSL, también hay una parte responsable de la marcación y DHCP, DNS, etc. Otras partes son responsables de brindarle su interfaz WEB, cuyas opciones difieren entre enrutadores, como probablemente habrá adivinado, por las capacidades del hardware (esa es la¿Por qué diferentes modelos dentro del mismo fabricante de enrutadores usan firmware diferente?parte).
Todas estas partes relacionadas con el hardware o la presentación (las llamaremos drivers
, para simplificar) reciben instrucciones de algún programa central sobre qué hacer. Este programa gestiona las interacciones entre varios controladores/módulos y no les permite hacer cosas sin sentido. Llamaremos a este administrador central a kernel
, nuevamente, por simplicidad.
Teniendo en cuenta lo anterior, podría decir¡Oye, parece una caja de Linux/Windows/lo que sea, mirando esta estructura!. Bueno, ¡así es! No tiene teclado ni ratón, pero es, en realidad, un pequeño ordenador especializado en tareas. Muchos de ellos, enrutadores domésticos SÍ usan Linux (bueno, no Windows) o son capaces de ejecutar uno (por ejemplo, Tomato).
Como para¿Por qué hay gente escribiendo nuevo firmware para ellos?- imagina que tienes un enrutador que no implementa una funcionalidad específica que te interesa (en mi caso fue DHCP asignado estáticamente). Pero existe un firmware de enrutador Tomato, que SÍ tiene esta característica y SÍ es compatible con el hardware de su enrutador. ¿Por qué no usarlo? (aparte de perder la garantía del fabricante). Lo haría y lo hago. Entonces la respuesta es -la gente escribe firmware diferente para nuestros enrutadores, porque existe una demanda, causada por la incapacidad/falta de voluntad/lentitud del fabricante original para implementar funciones.