최근 수정 시각 : 2019-04-07 18:52:37

OpenWRT

운영 체제
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="border:0px solid; margin:-11px; margin-top:-8px; margin-bottom:-6px"
Windows Microsoft Windows(Windows 9x, Windows NT)
리눅스 데비안 데비안 · 우분투 · 리눅스 민트 · 칼리 리눅스 · 크런치뱅
하모니카 · 구름 OS · 기린 · Damn Small Linux · elementary OS · 스팀 OS · 라즈비안 · Slax · TmaxOS
레드햇 레드햇 엔터프라이즈 리눅스 · 페도라 · MeeGo · 붉은별 · CentOS · 아시아눅스
타이젠 · Open Mandriva Lx · 마제야 · PCLinuxOS
슬랙웨어 슬랙웨어 리눅스 · openSUSE
아치 아치 리눅스 · Manjaro Linux · Antergos · ArchBang Linux · Chakra Linux
안드로이드 안드로이드 · Remix OS · Polaris OS · Phoenix OS
젠투 젠투 리눅스 · 펀투 리눅스 · 크롬 OS
기타 OpenWRT · Endless OS
[[유닉스|{{{#white 유닉스}}}]] BSD BSD · FreeBSD · NetBSD · OpenBSD · TrueOS · GhostBSD · DragonFly BSD
XNU Darwin · iOS · macOS · iPadOS · tvOS · watchOS
System V 솔라리스(SmartOS) · IBM AIX
DOS DR-DOS · MS-DOS · FreeDOS · K-DOS
기타 실시간 운영 체제 · TempleOS · ReactOS · BeOS · 하이쿠 · Mac OS · OS/2(eCS, ArcaOS) · Redox
}}}}}}||

1. 개요2. 지원 기기
2.1. 직접 만들 경우
3. 특징 및 장점4. 단점5. LEDE6. 여담7. dd-WRT


파일:openwrt2.jpg
OpenWRT에서 제공하는 원격쉘접속 기능을 통해 접근한 장면이다. 대부분의 경우는 일반 공유기 처럼 웹브라우저를 통해 접속한 공유기 설정 페이지를 이용한다.

1. 개요

다양한 임베디드 기기를 위한 리눅스 배포판. 2004년 Linksys의 가정용 유무선 공유기인 WRT54 시리즈에 대한 GPL 코드를 바탕으로 한 커스텀 펌웨어로 개발이 시작되었다가 점차 지원 대상이 확대되어 현재는 다양한 인터넷 공유기를 지원하는 완전한 리눅스 배포판이 되었다.

공식 홈페이지 및 위키

통합 전 OpenWRT의 최신 버전은 2016년 3월에 나온 15.05.1 Chaos Clamer이다. LEDE의 최신 안정 버전은 2017년 10월 18일에 나온 Reboot 17.01.4이다. 새롭게 포크해서 시작한 의미로 기존 칵테일 이름 대신 Reboot란 코드네임을 사용하고 있다. 통합 후 OpenWRT의 최신 버전은 2018년 8월 기준 18.06.1이다.

2. 지원 기기

용도가 공유기로만 제한되지는 않으며, 라즈베리 파이(컴퓨터), 포고플러그 등 각종 임베디드 장비 혹은 x86 머신에도 설치가 가능하다. 유무선공유기 자체가 하나의 임베디드 하드웨어이다.

OpenWRT가 지원되는 SoC라면 쉽게 OpenWRT를 올릴 수 있는 펌웨어를 찾을 수 있다. 2018.3. 현재 892개의 기기를 지원한다.

하지만 대부분이 미국 등 주요 시장용으로 출시된 공유기이며 국내 인터넷 공유기는 대부분 OpenWRT를 설치할 수 없다. 한국 국내 전용 공유기인데 OpenWRT가 올라가는 제품은 netis WF-2881WeVO W2914NS v2, WeVO 11AC NAS Router[1] 정도가 있다. 그리고 FREEZIO (2017.12 출시)는 아예 OpenWRT를 사측에서 지원하고 있다.
OpenWRT의 요구 사양
항목 최소 사양 권장 사양
RAM 32MB 이상 64MB 이상
Flash 4MB 이상 8MB 이상

RAM 4MB일 경우 GUI인 LuCI를 설치할 수 없지만 사용은 가능하다. 8MB부터 LuCI 사용 가능.

공유기 중에 1.5만원 정도의 저가형 공유기[2]들도 OpenWRT를 지원하고 있고, USB 연결을 지원하는 공유기[3]는 2.8만원쯤부터 시작한다.

2.1. 직접 만들 경우

국내에서 주로 사용되는 ipTIME의 경우 일반적으로 스펙을 매우 빡빡하게 매기기 때문에 RAM과 저장소 크기가 OpenWRT 최소사양에 딱 맞거나 적을때가 많고, OpenWRT에서 정식으로 지원되지 않는 Realtek를 사용하는 경우가 많으며, 또한 부트로더를 변형해 커스텀 펌웨어를 올리기 힘들게 만들어 두어 개발이 어렵다.

다른 공유기에서 쓰는 칩이 OpenWRT를 지원한다면 새롭게 만든 기기도 지원될 확률이 높다. Atheros나 MediaTek (Ralink) 계열의 CPU를 쓸 경우 지원이 잘 되며, Broadcom의 경우 오픈소스 드라이버를 제공하지 않아 설치만 되고 무선연결이 지원되지 않는 칩셋이 많다. 목록은 여기서. ASUS 공유기의 상당수가 이에 해당된다. dd-WRT는 브로드컴과 계약을 맺고 독점 드라이버도 사용해서 이런 문제는 없다. Realtek 계열의 SoC는 칩셋에서 사용하는 Lexra MIPS 라는 커스텀 아키텍처의 지원이 완전하지 않아 대부분 지원되지 않는다. 저가형 공유기는 거의 Realtek 칩셋을 사용하기 때문에 막상 OpenWRT를 올리기 적당한 공유기를 찾는건 생각보다 어렵다.

하지만 이런 하드웨어적 문제가 없는 기기라면 임베디드에 능한 개발자는 지원이 안 되던 기기라도 자기가 직접 만드는 것이 가능하다. 국산 공유기가 스펙을 만족함에도 불구하고 지원이 안 되는 것은 임베디드 시스템에 능통하면서도 시간이 남아도는 개발자가 모자라기 때문이다. 한국인 개발자가 만들어주면 좋겠지만... 구체적으로, 하드웨어적으로는 PH1 등의 스크류 드라이버, 전압 측정을 위한 멀티미터, 오실로스코프, 컴퓨터와 공유기의 연결을 위한 USB 직렬 컨트롤러 등이 필요하다. 그리고 소프트웨어적으로는 리눅스 커널크로스 컴파일할 수 있어야 한다.

3. 특징 및 장점

공유기는 대개 자체 펌웨어만으로도 USB 단자가 지원될 경우 외장 하드디스크를 연결해 NAS로 사용할 수도 있고, 공유기니까 당연히 24시간 켜져 있는 프린터 서버, 파일서버를 구축할 수 있다. 그럼에도 불구하고 OpenWRT를 설치해야 하는 것은 왜일까?

기기 자체가 완전한 리눅스로 동작하여 컨트롤이 가능하다. 비슷한 공유기용 펌웨어 프로젝트인 DD-WRT나 tomato와 다르게 OpenWRT가 올려진 기기의 경우 기기 자체가 마치 라즈베리 파이 같은 완전한 임베디드 리눅스박스가 되는 셈이다. 공유기로 리눅스에서 할 수 있는 것을 할 수 있게 된다.

예를 들어 토렌트 다운로드 머신, 데이터베이스 혹은 홈페이지로 만들 수 있다. USB 사운드카드를 연결해서 음악 플레이어로 활용할 수 있고 TV카드를 물려서 예약녹화 혹은 스트리밍으로 써먹을 수도 있다. 물리적으로 근거리에서만 접속 가능한 게시판도 있다. 라우터에 직접 접속 가능한 사람만 게시판에 글을 쓸 수 있어 외부 개입이 불가능하다.
공유기를 중심으로 USB 그래픽카드, CCTV 영상, 컴퓨터 (복잡한 영상 처리작업을 수행)를 연결해 차량 인식 CCTV 시스템을 개발한 경우도 있다. [4]
rclone을 활용해 업로드 속도가 느린 클라우드 스토리지에 백업을 할 때도 PC보다 유용하다. 구글 드라이브의 경우 2018년 들어서는 1.5MB/s 정도의 낮은 업로드 속도를 제공하지만 용량이 무제한이다. 그래서 원드라이브처럼 속도는 빠르지만 용량 제한이 있는 클라우드 스토리지에 빠르게 올려놓은 후 rclone의 스토리지 간의 복사 기능을 활용하는 것이 편하다. 하지만 PC로 이런 작업을 며칠 동안 할 경우 하드 디스크 드라이브가 장기간의 스핀업과 과도한 부하로 고장나기도 쉽고 전기요금도 많이 들고 소음도 심하다. 이럴 때 OpenWRT에 SSH로 접속해서 클라우드 스토리지 간의 복사를 명령할 경우 며칠 후에는 업로드를 다 해놓는다. 전력소모량이 PC의 1/10~1/20 수준이고 HDD처럼 물리적으로 작동하는 저장매체가 달려 있지 않아서 수명 단축 걱정도 적다. 거기다 공유기는 고장나도 PC보다 싸다.

CUI가 익숙하다면 터미널창을 띄우고 SSH로 접속해서 명령어를 직접 쳐서 작업해도 되고, CUI 환경에 익숙하지 않다면 Luci[5]를 이용해 일반 공유기와 비슷하게 작업하는 것도 가능하다.

또한 제조사의 펌웨어 지원 수준이 떨어질 경우 OpenWRT를 설치해서 원하는 대로 펌웨어를 수정할 수 있으며, 펌웨어 지원이 끊어져 각종 보안 취약점에 노출될 위험이 적어진다.

임베디드 개발자들에게도 상당히 유용하다. OpenWRT가 지원되는 SoC 및 부품을 탑재한 임베디드 디바이스라면, 펌웨어나 드라이버를 일일이 개발할 필요없이 OpenWRT를 얹고 필요한 프로그램을 올려 인스톨하고 설정을 해주면 끝난다. 한번 올린 펌웨어를 뜯어고칠 때마다 다시 올리고 테스트하는 삽질 대신 접속해서 수정만 해주면 된다. 실제로 이런 용도로 현업에서 많이 사용되고 있다.

관련 연구로는 OpenWRT기반의 유무선 공유기를 활용한 다기능 웹 서버 구축 (2014), OpenWRT를 이용한 전기사용 관리 시스템 설계 (2018), OpenWRT 기반 유무선 공유기와 Zigbee 통신을 이용한 홈 네트워크 서비스 구축 (2018), IoT를 위한 OpenWRT 기반의 VPN 서버시스템 구현 (2016), OpenWRT 공유기를 이용한 스마트 헬스 시스템 (2013), OpenWRT 기반의 공유기를 이용한 홈 네트워크 구축 (2013), OpenWRT 유무선 공유기에 사용된 난수발생기의 안전성 분석 (2016), OpenWRT Linux 위에서 MPLS-TP 기반 PBB-TE 망의 구현 연구 (2010) 등이 있다.
하드웨어 가속 NAT기능은 일정 하드웨어 칩이 달려있을 때 소프트웨어 적으로 지원한다. OpenWrt hw NAT을 참조해보면 알수있듯이 2018년 초부터 가능해 졌고 본디 소프트웨어 적으로 가속 해오던것을 하드웨어를 추가적으로 활용하여 가속처리 효율을 높이려 한것이기 때문에 OpenWrt 에서 가능하고 오히려 기존 제품보다 우월해질수도 있다.[6]

4. 단점

위에 설명한 장점들이 오히려 많은 사람에게는 제약이 된다. 위에 설명한 무한한 확장성은 리눅스 명령어를 모르면 써먹기 어렵다. 거기다 상당수의 기능은 펌웨어를 컴파일하기 전에 해당 옵션을 일일이 활성화해줘야 할 경우가 많다. [7] 타겟만 제대로 정하면 소스를 다운받고 업데이트하고 옵션을 조정하고 펌웨어를 크로스컴파일하는 과정을 설명해놓고 있지만, 어디까지나 Geek들 기준으로만 간편하고 친절하다. 검은 텍스트 화면에 친숙하지 않다면, 타인이 미리 컴파일해둔 펌웨어를 받아서 위에 설명한 Luci 웹 인터페이스 등을 통해 컨트롤하는 것 정도가 최대한이 된다.

파일:luci1.jpg

거기다 이 웹 인터페이스도 한글화가 안 돼 있으며, 한글화는 차치하더라도 설정 내용이 상당히 자세하고 전문적인 내용이 많아 익숙하지 않으면 뭐가 뭔지 알아보는 데 시간이 꽤 걸린다. 또한, 웹 인터페이스에서 처리 할 수 있는것보다 콘솔창을 통해서 설정이 가능한, 숨겨져 있는 설정들도 존재한다.

파일:luci-hangle.jpg

.Luci 한글화도 가능하다. 리눅스 배운지 2년도 안된 사람도 할 수 있을 정도이므로 '전문가'만 할 수 있다고 보기는 어렵다.

파일:luci--ipk.jpg
패키지들도 웹 인터페이스에서 추가로 설치하고 설정 또한 가능하다.
유저들이 시리얼이나 콘솔로 접속하는 이유는 더 편하기 때문이며 필요없는 부분을 삭제해서 작은 NAND 환경을 최적화 유지를 위함이다.



예를들어, OpenVPN을 공유기에 설치하여 서버/클라이언트 로 사용시, 웹 인터페이스 플러그인을 설치하지 않으면 오직 콘솔창을 통해서만 설정이 가능하다.

리눅스이긴 하지만 공유기의 한계 때문에 성능이 제한되어 있다. 가령, 7.2MB의 용량을 필요로 하는 Festival lite 같은 패키지[8]를 본체에 설치할 수 없다. 따라서 ‘/etc/opkg.conf'에서 opkg 다운로드 경로를 저장 공간이 충분한 USB Memory로 설정 ('/mnt/usbdrive')해야 한다.

5. LEDE

Linux Embedded Development Environment

공식 홈페이지
공식 지원기기 목록

한 때 OpenWRT에서 포크되었다가 다시 합병될 예정인 새로운 오픈소스 라우터 펌웨어 프로젝트이다.

OpenWRT 프로젝트에서 개발자들이 크게 아래 5가지 문제를 이유로 새로운 프로젝트 LEDE를 시작했다.
  1. 개발에 적극적인 주요 개발자들이 적고 새롭게 프로젝트에 참가하는 개발자의 부재
  2. 신뢰할 수 없는 인프라와 내부 불일치 및 단일 장애 지점의 방치
  3. 핵심 팀 내부 그리고 핵심 팀과 커뮤니티 사이의 대화, 협동, 투명성의 부족
  4. 패치의 양에 비해 부족한 관리자 그리고 정규 빌드 및 테스트에 대한 적은 관심
  5. 펌웨어의 안정성과 문서화에 대한 초점 부족

Github 소스 주소. 이걸 받으면 직접 빌드할 수도 있다.

OpenWrt와 분리된 이후로 꾸준히 다시 합병하는 것에 대한 논의가 계속되어 왔으며 2017년 5~6월에 서로 합의점을 찾아내고 합병을 확정하였다. 그 뒤 합병에 약간의 정체기가 있었지만 2017년 10월에 들어서 본격적으로 합병을 진행하고 있다. 합병한 뒤의 프로젝트의 이름은 다시 OpenWrt가 될 것이며 소스코드는 LEDE 기반이 될 것이지만, Github는 OpenWrt의 저장소를 사용할 예정이다. 인프라[9]는 LEDE 기반으로 사용할 예정이다. 메일링리스트는 기존 LEDE처럼 infradead.org에 의해서 호스팅 되지만 OpenWrt의 이름으로 변경된다. 웹사이트와 포럼 및 위키의 합병 방식은 아직 정해지지 않았다. 자세한 내용은 메일링리스트 참고.

6. 여담

숭실대에서는 2007년부터 '임베디드 컴퓨팅 시스템'이라는 과목이 개설되었는데, 이 과목에서는 OpenWRT와 공유기를 이용해 임베디드 리눅스 시스템을 구축하는 방법을 가르친다. 수업 교재의 저자들은 교재를 공개하였다.

7. dd-WRT

비슷한 운영체제. 브로드컴 칩셋 지원이 더 잘 된다는 장점이 있다.


[1] WeVO 11AC NAS Router 는 따로 설명 링크가 없어 스펙상 메모리 정도만 차이가 나는 W2914NS v2에 링크를 걸었다. 펌웨어 자체는 https://downloads.lede-project.org/releases/17.01.5/targets/ramips/mt7621/ 에 들어가서 11acnas 용 펌웨어를 받으면 된다.[2] TP-Link TL-WR940N 등[3] 저가형으로는 TP-LINK archer C50 등이 있다.[4] 공유기에도 프로세서를 통한 프로그램 처리는 가능하나 극히 제한된 성능 때문에 영상인식을 직접 해내기는 어려우므로 외부 컴퓨터와 연결하였다.[5] OpenWRT의 웹 프론트 인터페이스[6] 그 전에는 지원이 안 되어 정식 펌웨어보다 느린 경우가 있었고 기가비트 사용시 애로사항이 있었다.[7] 이렇게 만든 이유는 어떤 프로그램이나 기능을 추가하는 순간 그만큼 플래시롬의 한정된 여유 용량이 줄어들고, 낮은 사양 혹은 USB 단자가 없는 하드웨어 등에서 사양을 많이 잡아먹거나 외부 기기를 연결할 때나 필요한 각종 기능을 기본값으로 활성화할 필요가 없기 때문이다. 임베디드 플랫폼의 자원은 한정되어 있다.[8] Festival은 TTS 프로그램이고 Festival lite는 Festival의 경량화 버전이다. 다국어 지원 기능을 삭제하고 영어만 지원하여 용량을 줄였다.[9] 빌드 봇 및 git 저장소 서버

분류