라우터가 표준 네트워킹 프로토콜(DNS, DHTCP, TCP/IP 등)을 올바르게 구현한다면 동일한 펌웨어(이러한 프로토콜 구현)를 모든 라우터에 적용할 수 있지 않을까요?
라우터가 왜 모두 다른 펌웨어를 사용하는지 궁금합니다. 동일한 라우터 제조업체 내의 다양한 모델이 서로 다른 펌웨어를 사용하는 이유와 라우터용 맞춤형 펌웨어를 작성하려는 사람들로 구성된 상당히 큰 오픈 소스 커뮤니티가 있는 것처럼 보이는 이유입니다. 이로 인해 라우터의 펌웨어에는 특정 프로토콜의 구현보다 더 많은 것이 있을 수 있다고 믿게 되었습니다.
그래서 나는 묻습니다: 펌웨어는 그 외에 어떤 (구체적인) 일을 합니까?단지DHCP/DNS/등을 구현합니까?
자체 펌웨어를 작성하는 구체적인 사용 사례는 무엇입니까?
답변1
먼저, 라우터는 특수 네트워킹 하드웨어가 내장된(초소형) 컴퓨터에 불과하다는 점을 이해해야 합니다.
그만큼펌웨어라우터는 다음으로 구성됩니다.운영 체제, 드라이버 및 응용 프로그램라우터가 실행되는 것입니다. 이는 본질적으로 Dell이나 HP가 공장에서 출고되기 전에 컴퓨터를 초기화하는 데 사용하는 것과 같은 디스크 이미지입니다.
라우터는 내장형 장치이므로 최대한 효율적이고 작아야 합니다. 이것이 펌웨어가 단일 파일로 배포되는 이유입니다. 이 파일은 정확한 라우터 모델에 맞게 맞춤화되었습니다. 존재하지 않는 하드웨어에 대한 드라이버는 없으며 펌웨어가 설계된 라우터에서 지원하지 않는 기능에 대한 응용 프로그램도 없습니다.
펌웨어는 DNS/DHCP/등을 "구현"하지 않습니다. 펌웨어에는 이러한 프로토콜/서비스( DNSMasq
, DHCPd
등)를 구현하는 애플리케이션이 포함되어 있습니다. 파일 로 작업할 수 있는 다양한 응용 프로그램이 있는 것처럼 *.zip
이러한 역할을 수행할 수 있는 다양한 응용 프로그램이 있으며 모두 약간 다른 기능을 사용하거나 약간 다른 사용자 정의를 허용합니다. 예를 들어 DNSMasq
로 교체할 수도 있습니다 Bind
. 이는 실제로 이러한 역할을 수행하는 데스크탑이나 서버에서 찾을 수 있는 것과 동일한 애플리케이션입니다.
둘째, 많은 제조업체하다각 펌웨어의 핵심에 동일한 코어를 사용합니다. 많은 사람들이 간단한 Linux 운영 체제를 사용합니다. 라우터 펌웨어의 유사성 덕분에 DD-WRT와 같은 오픈 소스 펌웨어 프로젝트가 수백 가지의 다양한 라우터 모델에서 작동할 수 있습니다. 그렇지 않으면 너무 많은 작업이 필요할 것입니다.
라우터에서 실행되는 소프트웨어 중 하드웨어에 의존하는 소프트웨어가 거의 없기 때문에 이러한 오픈 소스 펌웨어 커뮤니티가 등장했습니다. 라우터에 원하는 작업을 지원할 만큼 충분한 CPU 성능과 메모리가 있는 한 OpenVPN, 스트리밍 미디어 서버, 프록시와 같은 추가 애플리케이션을 쉽게 설치할 수 있습니다.
답변2
라우터의 펌웨어는 단순히 네트워킹 프로토콜을 처리하는 것 이상의 역할을 합니다. 장치 작동 방법을 알려줍니다. 장치를 켤 때 수행할 작업을 결정합니다. 사용자가 관리할 수 있도록 웹, 텔넷, SSH 등의 인터페이스를 제공할 수 있습니다. 여기에는 사용자가 설정한 모든 사용자 정의 설정이 포함되어 있습니다. 네트워킹 프로토콜을 처리하는 것 이상의 기능을 수행합니다. 장치의 운영 체제라고 생각하십시오.
사람들은 제조업체의 펌웨어를 대체하기 위해 사용자 정의 라우터 펌웨어를 작성하여 dd-wrt 및 토마토를 만들었습니다.
기본적으로 하드웨어가 가능하고 공간이 충분하다는 가정 하에 원하는 모든 작업을 수행하도록 펌웨어를 작성할 수 있습니다.
답변3
펌웨어는 하드웨어와 그 기능에 따라 다릅니다. 이는 라우터, 전화(스마트폰뿐만 아니라), 대형 라우터, 스위치, 브리지 등에 적용됩니다. 플래시/디스크 저장소에서 읽는 것과 같은 낮은 수준의 작업을 수행하는 펌웨어의 특정 부분이 있고, 다음 부분은 라디오와 통신하는 방법이나 온보드 LAN 칩과 통신하는 방법을 알려줍니다. (A)DSL 라우터의 경우 다이얼링과 DHCP, DNS 등을 담당하는 부분도 있습니다. 다른 부분은 웹 인터페이스를 제공하는 역할을 하며, 추측한 대로 하드웨어 기능에 따라 옵션이 라우터마다 다릅니다.동일한 라우터 제조업체 내의 다른 모델이 다른 펌웨어를 사용하는 이유부분).
하드웨어 또는 프리젠테이션과 관련된 이러한 모든 부분(간결함을 위해 이라고 부르겠습니다 drivers
)은 일부 중앙 프로그램에서 수행할 작업을 지시합니다. 이 프로그램은 다양한 드라이버/모듈 간의 상호 작용을 관리하며 무의미한 작업을 수행하도록 허용하지 않습니다. 단순화를 위해 이 중앙 관리자를 다시 이라고 부르겠습니다 kernel
.
위의 내용을 염두에 두고 다음과 같이 말할 수 있습니다.이 구조를 보면 리눅스/윈도우/어떤 상자든 보이는군요!. 글쎄요, 맞습니다! 키보드나 마우스는 없지만 실제로는 작은 작업 전용 컴퓨터입니다. 이들 중 다수의 홈 라우터는 Linux(Windows는 아님)를 사용하거나 Linux(예: Tomato)를 실행할 수 있습니다.
에 관해서는왜 사람들이 새로운 펌웨어를 작성하고 있습니까?- 관심 있는 특정 기능을 구현하지 않는 라우터가 있다고 상상해 보십시오(제 경우에는 정적으로 할당된 DHCP였습니다). 하지만 이 기능이 있고 라우터 하드웨어를 지원하는 Tomato 라우터 펌웨어가 있습니다. 왜 그것을 사용하지 않습니까? (제조업체의 보증이 박탈되는 것은 제외). 나는 그렇게 할 것이다. 그래서 대답은 -사람들은 원래 제조업체의 기능 구현 능력/의지/느림으로 인해 수요가 있기 때문에 라우터용으로 다른 펌웨어를 작성합니다.