1. 라우터(Router)란 무엇일까요?

가장 기본적으로 라우터는, 네트워크 패킷을 정해진 경로로 전달해 주는 장비 입니다.

루트(Route)에 접미사 er을 붙인 것이 어원이라고 알고 있습니다.

대표적으로 Cisco, Jupiter, Dell, HP 등의 회사에서 제품을 만들고 있습니다.

가정에서 흔히 사용하시는 “공유기”는 라우팅 기능스위칭 기능이 결합되어 있는 장비입니다.

복잡한 라우팅은 보통 KT, SK, LG와 같은 인터넷 사업자(ISP, Internet Service Provide)의 망 연결을 위해 사용하지만, 일반 사용자 (End-user)의 가정에서는 사실 1개의 WAN 포트와 여러개의 LAN포트의 경로만 있으면 충분하지요.

공유기는 보통 LAN 포트에서 목적지 0.0.0.0(모든 경로)를 WAN 포트로 전송하게 설정되어 있습니다.

최근 한국의 공유기는 사용해 본 적이 없어서 잘 모르겠습니다만, 몇 년전 가장 마지막으로 썼던 약 2-3만원 정도의 iptime사의 유무선 공유기로도 네트워크 트래픽의 큰 손실 없이 잘 사용했던 걸로 기억합니다.

(정작 현재 사용중인 공유기는 여러모로 불만족 스러운 점이 많네요.)

라우터에 대해 더 자세히 알고 싶으시다면, 제조사 홈페이지나 Wiki 등에서 알아보시기 바랍니다.

2. OpenWrt란?

GNU/Linux Emabeded로 만들어진, 쉽게 말하면 라우터/공유기의 기능에 최적화된 OS입니다.

홈페이지: https://openwrt.org

기본적인 공유기는 내부에 포함된 기능 이외에는 사용할 수 없기 때문에, 더 다양한 기능을 사용/학습하기 위해 설치해 보게 되었습니다.

3. Linux에서 설치하기

먼저 이미지 파일을 다운로드 합니다.

아래 링크는 OpenWrt의 라즈베리파이 포럼입니다. 자신의 라즈베리파이 버전 및, OpenWrt의 버전을 선택하여 다운로드 합니다.

https://wiki.openwrt.org/toh/raspberry_pi_foundation/raspberry_pi

저는 라즈베리파이 B+에 설치할 예정이므로, 아래 명령어로 다운로드 합니다.

$ wget http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2708/openwrt-15.05.1-brcm2708-bcm2708-sdcard-vfat-ext4.img

다운로드가 완료 되었으면, 자신의 SD카드에 dd커맨드로 이미지를 넣어줍니다.

su로 루트계정으로 접속하여 실행합니다.

$ su
# dd if=openwrt-15.05.1-brcm2708-bcm2708-sdcard-vfat-ext4.img of=/dev/mmcblk0 bs=2M conv=fsync

약 80MB의 적은 용량이기 때문에, 금방 완료 됩니다.

이제 SD카드를 라즈베리파이에 넣고 부팅을 해 주면 설치는 끝입니다.

4. 이더넷 포트를 DHCP로

OpenWrt의 설명을 보면, 설치 후 초기 이더넷 포트는 192.168.1.1로 고정되어 있습니다.

라즈베리 파이+OpenWrt를 어떻게 사용할지는 사용자의 환경에 따라 다르겠지만, 일단 저는 이더넷 포트를 DHCP모드로 바꾸도록 하겠습니다.

제가 사용할 환경은, 인터넷과 연결된 가정용 공유기 아래의 LAN에 라즈베리파이를 연결하여, 일단은 보통 리눅스/PC 처럼 설치합니다. 라즈베리파이와 OpenWrt를 가장 바깥 쪽 실제 라우터로 사용하려는 목적이 아닌, OpenWrt의 기능들이 궁금해서 학습하고자 하는 목적입니다.

차후 USB to Ethernet 어댑터 등을 구매한다면 실제 Edge Firewall/Router의 기능도 사용해 볼 예정입니다.

가장 간단한 방법은, 라즈베리파이를 모니터에 연결하고 USB 키보드를 이용하여 명령어를 입력하는 방법 입니다.

또 다른 방법으로 저는, 라즈베리파이의 이더넷 포트를 컴퓨터에 직접 연결하여 설정하도록 하겠습니다.

1) 라즈베리파이와 작업중인 PC를 랜케이블로 연결하면, PC가 자동으로 192.168.1.0/24 네트워크의 IP를 받아오게 됩니다.

2) 웹 브라우저를 열어 192.168.1.1 주소로 접속합니다.

(root 계정에 비밀번호가 없기 때문에, 아직 SSH로 접속이 안됩니다.)

3) 비밀번호 없이 Login 합니다

4) 접속이 되었으면 현재 OpenWrt 및 라즈베리파이의 정보가 나옵니다.

5) System -> Administration 이동 후, Router Password(root Password)를 설정하고, 스크롤을 내려 Save & Apply를 클릭합니다.

6) 이제 Putty 혹은 터미널 창을 열어 SSH로 OpenWrt가 설치 된 라즈베리파이에 접속합니다

ssh root@192.168.1.1

7) 아래 명령어로 라즈베리파이의 이더넷 포트를 DHCP모드로 변경합니다.

uci set network.lan.proto=dhcp
uci commit
/etc/init.d/network restart

8) 네트워크 데몬을 재시작 하였으므로, SSH의 세션에 응답이 없게 됩니다. 라즈베리파이를 공유기에 연결해 줍니다.

9) 저는 라즈베리파이의 MAC 주소를 공유기에서 정적DHCP로 특정 IP로 할당해 주기 때문에, 해당 IP로 이제 PC에서 라즈베리파이로 SSH 및 웹으로 접속이 가능 합니다.

이상으로 간단하게 OpenWrt를 설치해 보았습니다.