Que funções específicas o firmware desempenha nos roteadores?

0

Se os roteadores implementarem adequadamente os protocolos de rede padrão (DNS, DHTCP, TCP / IP, etc.), o mesmo firmware (que implementa esses protocolos) não será aplicável a todos os roteadores?

Eu acho que estou me perguntando por que todos os roteadores usam firmware diferentes; Por que diferentes modelos dentro do mesmo fabricante de roteador usam firmware diferente, e por que parece haver uma comunidade de código aberto substancialmente grande de pessoas que gostam de escrever firmware personalizado para roteadores. Isso me leva a acreditar que talvez haja mais no firmware de um roteador do que apenas a implementação de certos protocolos.

Então eu pergunto: que coisas (específicas) o firmware faz, além de apenas implementar DHCP / DNS / etc?

Quais são alguns casos de uso concretos para escrever seu próprio firmware?

    
por pnongrata 28.07.2014 / 21:26

3 respostas

2

Primeiro, você precisa entender que os roteadores são nada mais do que computadores embutidos (ultracompactos) com hardware de rede especializado.

O firmware de um roteador consiste no sistema operacional, drivers e aplicativos que o roteador executa. É essencialmente uma imagem de disco, exatamente como as que a Dell ou a HP usam para inicializar seus computadores antes de saírem da fábrica.

Como os roteadores são dispositivos incorporados, eles precisam ser tão eficientes e pequenos quanto possível. É por isso que o firmware é distribuído como um único arquivo; Este arquivo é personalizado para o modelo exato do roteador; Não há drivers para hardware que não existem e nenhum aplicativo para recursos que não são suportados pelo roteador para o qual o firmware foi projetado.

O firmware não "implementa" DNS / DHCP / etc. O firmware contém um aplicativo que implementa esses protocolos / serviços ( DNSMasq , DHCPd , etc.). Assim como há muitos aplicativos diferentes que podem trabalhar com *.zip arquivos, existem muitos aplicativos diferentes que podem desempenhar essas funções, todos com recursos ligeiramente diferentes ou permitir uma personalização ligeiramente diferente. Você pode querer trocar DNSMasq por Bind , por exemplo). Esses são, na verdade, os mesmos aplicativos que você pode encontrar em um desktop ou servidor que esteja cumprindo essas funções.

Segundo, muitos fabricantes usam o mesmo núcleo no coração de cada um de seus firmwares. Muitos usam um sistema operacional Linux despojado. A similaridade do firmware do roteador é o que permite que projetos de firmware de código aberto como o DD-WRT funcionem em centenas de diferentes modelos de roteadores; caso contrário, isso exigiria muito trabalho.

Essas comunidades de firmware de código aberto surgiram porque muito pouco do software que é executado em um roteador depende do hardware. Você pode instalar facilmente aplicativos adicionais, como OpenVPN, servidores de mídia de fluxo contínuo e proxies, desde que o roteador tenha energia e memória suficientes para suportar o que você deseja fazer.

    
por 28.07.2014 / 22:38
1

O firmware de um roteador faz mais do que apenas lidar com protocolos de rede. Diz ao dispositivo como operar. Ele decide o que fazer quando você liga o dispositivo. Ele pode fornecer uma interface web, telnet, ssh, etc para que os usuários possam gerenciá-lo. Ele contém todas as configurações personalizadas que você definiu. Ele faz muito mais do que apenas lidar com protocolos de rede. Pense nisso como o sistema operacional do dispositivo.

As pessoas escreveram firmware de roteador personalizado para substituir o firmware do fabricante, daí dd-wrt e tomato.

Essencialmente, você pode escrever um firmware para fazer praticamente qualquer coisa que quiser, assumindo que o hardware é capaz e que há espaço suficiente.

    
por 28.07.2014 / 21:39
1

O firmware é específico para hardware e seus recursos. Isso se aplica a roteadores, telefones (não apenas smartphones), grandes roteadores, switches, pontes, etc. Há certa parte do firmware que executa tarefas de baixo nível, como ler a partir do armazenamento em Flash / disco, a próxima parte diz como falar com o rádio ou como falar com um chip de LAN integrado. No caso de (A) roteadores DSL, há também uma parte responsável pela discagem e DHCP, DNS, etc. Outras partes são responsáveis por servir sua interface WEB, cujas opções diferem entre roteadores, como você provavelmente adivinhou, pelas capacidades de hardware (essa é a razão pela qual diferentes modelos dentro do mesmo fabricante de roteador usam diferentes componentes de firmware ). / p>

Todas essas partes relacionadas a hardware ou apresentação (vamos chamá-las de drivers , por simplicidade) são informadas por algum programa central sobre o que fazer. Este programa gerencia as interações entre vários drivers / módulos e não permite que eles façam coisas sem sentido. Chamaremos esse gerenciador central de kernel , novamente, por simplicidade.

Com o acima em mente, você vai dizer Hey, parece uma caixa linux / windows / whatever, olhando para essa estrutura! . Bem, isso mesmo! ele não tem teclado nem mouse, mas é, na verdade, um pequeno computador especializado em tarefas. Muitos deles roteadores domésticos usam linux (bem, não windows) ou são capazes de executar um (por exemplo, Tomato).

Quanto a por que há pessoas escrevendo um novo firmware para eles - imagine que você tenha um roteador que não implemente uma funcionalidade específica que lhe interessa (no meu caso, era um DHCP com atribuição estática). Mas lá fora, há um firmware do roteador Tomato, que tem esse recurso, e suporta o hardware do seu roteador. Por que não usá-lo? (além de perder a garantia do fabricante). Eu faria e faço. Então a resposta é - as pessoas escrevem firmware diferente para nossos roteadores, porque há uma demanda por ele, causada pela incapacidade / falta de vontade / lentidão do fabricante original de implementar os recursos.

    
por 28.07.2014 / 22:06