지난 봄이었나 어디서 봤는지는 모르겠지만 무선공유기의 기능을 확장하여 사용할 수 있는 DD-WRT와 OpenWRT를 알게 됐다. 이것저것 알아보다가 OpenWRT를 사용하기로 하고 지원되는 공유기들을 찾아보다가 버팔로의 WZR-HP-G300NH를 사려고 했는데, 거의 품절이고 신규 버전인 WZR-HP-G300NH2만 파는 것이다. 이 버전에서 성공기는 없던 것 같지만 시도를 안해서 없는 거겠지 하고 그냥 사게 됐다. 현재 OpenWRT 사이트를 보면 WZR-300HP라는 버전이 새로 나온 모양이다.
무선공유기를 주문해서 받자마자 한치의 망설임도 없이 바로 OenWRT 설치를 시도했는데 쉽지만은 않은 일이다.
초기 버전이 기능상 안되는 것들이 있어서 리눅스 커널이 업그레이드를 할까 하다가 새로 포멧(?) 할 겸해서 WRZ-HP-G300NH2에서 OpenWRT를 설치하는 방법을 정리한다.
잠깐 OpenWRT를 써보면서 드는 생각은 이게 좋은 것임에는 틀림없지만, 분명 설정이 귀찮고 어려운 것들은 사실이다. luci 인터페이스로 쉽게 설정이 가능하다고는 하지만 그래도 정말로 linux를 잘 알거나 기타 네트워크 기반 기술들에 대한 이해가 어렵다고 생각하면 안 쓰는게 좋을 것이란 생각이 든다. 원래 펌웨어로 돌아오지 못하니 충분히 생각하고 시도해야 할 것이다.
1. 먼저 OpenWRT 설치에 앞서 자신의 공유기 모델에 대한 스펙도 확인하고 몇 가지 정보를 확인해 봐야한다. 위키 페이지에 정리돼 있으니 천천히 읽어보자.
여기서 버팔로 WZR-HP-G300NH2는 http://wiki.openwrt.org/toh/buffalo/wzr-hp-g300nh2 페이지를 보면 된다.
해당 버전의 모델이 3가지가 있는 것을 확인할 수 있다.
펌웨어 바이너리를 찾기위해서는 CPU를 알아야 하는데, Atheros AR7242인것을 알 수 있다.
2. 펌웨어 다운로드
다운로드 페이지를 들어가 보면 알겠지만 OpenWRT가 그다지 친절은 베풀지 않는다. 하지만 최신버전이 backfire기 때문에 들어가보면, 여전히 복잡하다. 아무튼 ar71xx 디렉토리에서 찾아보면 알겠지만 G300NH2는 없다.
처음에 attitude_adjustment 디렉토리에 베타버전 펌웨어들이 있는데 여기에서 찾을 수 있다.
(지금 다시 글 쓰면서 보니 rc1 버전이 있었다. 멘붕이 온다.. 좀 있다가 다시 올려야할 듯..)
- openwrt-ar71xx-generic-wzr-hp-g300nh2-jffs2-tftp.bin
- openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-tftp.bin
위 둘 중에서 원하는 것으로 받으면 된다.
받아서 일단 USB에 복사를 한다.
3. 펌웨어 업로드
tftp를 통해서 업로드를 해야하는데, 사용법은 마이크로소프트웨어에 실렸던 기사 내용을 보면 좀 쉽다. 하지만 WZR-HP-G300NH와 WZR-HP-G300NH2와이 차이인지 모르겠지만 그대로 하면 안된다.
Windows에서도 할 수 있을 것 같긴한데, tftp 옵션도 그렇고 리눅스 버전에서 하는게 좋을 것 같다. 내 맥에어에는 랜포트가 없어서 데스크탑에서 진행했다. 가상화 PC에 리눅스 올려서 설치도 될것 같긴한데, 그냥 맘편하게 책 내용에 있던대로 백트랙 리눅스 받아서 구워서 부팅으로 했다.
3.1 고정IP 설정
$ vi /etc/network/interfaces
1 2 3 4 5 6 |
iface eth0 inet static address 192.168.11.2 gateway 192.168.11.1 netmask 255.255.255.0 network 192.168.11.0 broadcast 192.168.11.255 |
그리고 ifdown eth0 후에 ifup eth0 을 해주면 고정IP로 바뀐다.
3.2 ARP 설정
책에는 공유기의 MAC 어드레스를 사용하라고 돼 있는데. 안된다. 처음 OpenWRT 페이지를 보면 02:AA:BB:CC:DD:1A를 사용하라고 나와 있다.
$ arp -s 192.168.11.1 02:AA:BB:CC:DD:1A
3.3 USB 마운트
백트랙에서도 펌웨어를 직접 받을 수도 있긴한데 그냥 USB로 하는게 안전하지 않을까 하는 생각에서 그렇게 하는 것이다.
디바이스는 /dev/sdd로 잡히는데 간단히 마운트해주면 된다.
$ mount -t vfat /dev/sdd1 /mnt/usb
3.4 tftp 실행
마지막으로 tftp를 실행해서 바이너리를 업로드 할 차례다. 먼저 공유기에 랜선은 WAN이 아닌 일반 포트에 연결하고 전원은 꺼둔 상태여야 한다.
전원이 켜지고 tftp가 짧은 시간에 실행이 되는것은 사실이지만 복잡하게 할건 없는 것 같다.
$ tftp 192.168.11.1
tftp> binary
tftp> rexmt 1
tftp> timeout 60
tftp> trace
tftp> openwrt-ar71xx-generic-wzr-hp-g300nh2-jffs2-tftp.bin
이렇게 해놓으면 60초동안 계속 업로드를 시도하게 된다. 이제 공유기에 전원을 넣어주면 잠시 뒤에 패킷이 올라가는 것을 확인할 수 있다.
업로드가 완료되면 잠시 몇 분동안 대기상태에 있다가 공유기가 재부팅하게 된다.
4. 최초접속
최초에는 그냥 telnet으로 공유기 IP로 접속을 하면 비밀번호도 물어보지 않고 접속이 된다.
C:\> telnet 192.168.1.1
그러고 passwd로 바꿔준 다음부터는 ssh를 통해서만 접속이 가능해 진다.
이후 설정 방법은 개인의 취향대로하면 된다.