ルータが標準ネットワーク プロトコル (DNS、DHTCP、TCP/IP など) を適切に実装している場合、同じファームウェア (これらのプロトコルを実装) をすべてのルータに適用できるのではないでしょうか。
ルーターがすべて異なるファームウェアを使用するのはなぜか、同じルーター製造元でもモデルごとに異なるファームウェアを使用するのはなぜか、ルーターのカスタム ファームウェアの作成を好む人々が集まるかなり大規模なオープン ソース コミュニティが存在するのはなぜか、私は疑問に思っているようです。このことから、ルーターのファームウェアには、特定のプロトコルの実装以上の何かがあるのではないかと思います。
そこで質問です。ファームウェアは他にどのような(具体的な)機能を果たすのでしょうか?ただDHCP/DNSなどを実装しますか?
独自のファームウェアを作成する具体的な使用例にはどのようなものがありますか?
答え1
まず、ルーターは特殊なネットワーク ハードウェアを備えた組み込み型 (超小型) コンピューターにすぎないことを理解する必要があります。
のファームウェアルーターはオペレーティングシステム、ドライバー、アプリケーションルータが実行するものです。これは本質的には、Dell や HP が工場出荷前にコンピュータを初期化するために使用するディスク イメージと同じです。
ルーターは組み込みデバイスであるため、できるだけ効率的で小型である必要があります。このため、ファームウェアは単一のファイルとして配布されます。このファイルは、ルーターの正確なモデルに合わせてカスタマイズされています。存在しないハードウェア用のドライバーはなく、ファームウェアが設計されているルーターでサポートされていない機能用のアプリケーションもありません。
ファームウェアは DNS/DHCP などを「実装」しません。ファームウェアには、これらのプロトコル/サービス ( DNSMasq
、DHCPd
など) を実装するアプリケーションが含まれています。ファイルで作業できるさまざまなアプリケーションがあるのと同様に*.zip
、これらの役割を果たすことができるさまざまなアプリケーションが多数あり、それぞれ機能がわずかに異なり、カスタマイズもわずかに異なります。たとえば、DNSMasq
を に交換するとよいかもしれませんBind
。これらは、実際にはこれらの役割を果たしていたデスクトップまたはサーバー上にあるアプリケーションと同じです。
第二に、多くのメーカーはする各ファームウェアの中心には同じコアが使用されています。多くのルータでは、簡素化された Linux オペレーティング システムを使用しています。ルータ ファームウェアの類似性により、DD-WRT などのオープン ソース ファームウェア プロジェクトは、何百もの異なるルータ モデルで動作できます。そうでなければ、作業量が多すぎます。
こうしたオープンソース ファームウェア コミュニティが登場したのは、ルーター上で実行されるソフトウェアのほとんどがハードウェアに依存していないためです。ルーターに十分な CPU パワーとメモリがあり、必要な処理をサポートできる限り、OpenVPN、ストリーミング メディア サーバー、プロキシなどの追加アプリケーションを簡単にインストールできます。
答え2
ルーターのファームウェアは、ネットワーク プロトコルを処理するだけではありません。デバイスの動作方法を指示します。デバイスの電源を入れたときに何を行うかを決定します。ユーザーが管理できるように、Web、telnet、ssh などのインターフェイスを提供できます。設定したすべてのカスタム設定が含まれます。ネットワーク プロトコルを処理するだけではありません。デバイスのオペレーティング システムと考えてください。
メーカーのファームウェアを置き換えるためにカスタム ルーター ファームウェアを作成した人もいます。それが dd-wrt と tomato です。
基本的に、ハードウェアが対応可能で十分なスペースがあれば、ほぼ何でも実行できるファームウェアを作成できます。
答え3
ファームウェアはハードウェアとその機能に固有のものです。これは、ルーター、電話(スマートフォンだけでなく)、大型ルーター、スイッチ、ブリッジなど、あらゆるものに当てはまります。ファームウェアには、フラッシュ/ディスクストレージからの読み取りなどの低レベルのタスクを実行する部分があり、次の部分は無線と通信する方法やオンボードLANチップと通信する方法を伝えます。(A)DSLルーターの場合は、ダイヤルやDHCP、DNSなどを担当する部分もあります。他の部分は、Webインターフェイスを提供する役割を担っています。そのオプションは、おそらくご想像のとおり、ルーターのハードウェア機能によって異なります(これが、同じルーターメーカーの異なるモデルが異なるファームウェアを使用する理由一部)。
ハードウェアやプレゼンテーションに関係するすべての部分 (ここでは簡単に と呼びますdrivers
) は、何らかの中央プログラムによって何をすべきか指示されます。このプログラムは、さまざまなドライバーやモジュール間のやり取りを管理し、無意味な処理を行わせないようにします。kernel
ここでは、簡単にするために、この中央マネージャーを と呼びます。
上記を念頭に置いて、あなたはこう言うかもしれませんねえ、この構造を見ると、Linux / Windows / その他のボックスのように見えます!そうです!キーボードもマウスもありませんが、実際にはタスクに特化した小型コンピュータです。家庭用ルーターの多くは Linux を使用しています (Windows ではありません) か、Linux を実行できます (Tomato など)。
はどうかと言うとなぜ新しいファームウェアを書く人がいるのか- 必要な特定の機能を実装していないルーターがあるとします (私の場合は静的に割り当てられた DHCP でした)。しかし、Tomato ルーター ファームウェアにはこの機能があり、ルーターのハードウェアをサポートしています。なぜそれを使わないのでしょうか? (メーカーの保証を失うことを除いて)。私はそうしますし、実際にそうしています。したがって、答えは -元の製造元が機能の実装ができない、実装する意欲がない、または実装が遅いために、需要があるため、人々は当社のルーター用に異なるファームウェアを作成します。