반응형

며칠 전부터 휴가 기간이 되면서 잠시 고향 집에 방문하게 되었다.

오랜만에 뵙는 반가운 가족들, 맛있는 고향의 음식들과 함께 나의 관심을 끄는 작은 문제점 하나가 있었으니, 바로 내가 오래 전에(거의 8년쯤 전) 설치해 둔 와이파이 공유기가 전원 계통이 고장나서 더이상 켜지지 않는 것이었다. 하긴 IEEE 802.11n 표준도 구현되어 있지 않던 값싼 구형의 액세스 포인트를 지금까지 단 한 번도 전원을 끄지 않고 써 왔으니 하드웨어에 문제가 생길 만도 했을 것이다.


집에서는 통신사에 요청해서 무선랜 서비스를 새로 신청해 둔 상태라고 했지만, 내가 방문했던 때는 휴일이라서 당장 와이파이를 쓸 수는 없는 상황이었다. 마침 나는 랩탑을 갖고 있었고, 랩탑에 내장된 와이파이 인터페이스를 사용해서 내가 집에 있는 동안만 임시로 와이파이 AP를 만들면 되겠다고 생각했다.


내 랩탑에는 윈도우 10과 우분투 14.04가 멀티부팅으로 설치되어 있었고, 윈도우에서는 이미 잘 알려진 Connectify라는 어플리케이션을 설치해서 쓸 수는 있었지만 무료 버전의 경우 설정에 제한이 많고 설치되는 윈도우 환경을 더럽히는(?) 듯한 느낌이 들어서 우분투에서 쉘 스크립트로 직접 AP를 만들기로 했다.


AP를 설정하는 방법은 지금 연구실에서 실험으로 쓰고 있는 라즈베리파이 기반의 무선 메쉬 네트워크 환경에서 AP 생성하는 방법만 가져오면 되었기에 금새 완료할 수 있었다. 랩탑에 랜선을 꽂고, 와이파이 인터페이스, hostapd, isc-dhcp-server, iptables를 차례대로 설정해 주었다.


금새 스마트폰에 나타난 새로운 와이파이 액세스 포인트에 동생은 신기해하면서 바로 내가 생성한 와이파이에 접속해서 스마트폰을 쓰기 시작했고, 나는 평소에 연구하던 것이 이럴 때 도움이 될 수 있다는 것이 뿌듯했다.


하지만... 역시 임시로 만든 AP는 어디까지나 임시로밖에 쓸 수 없다는 현실을 체험하는 계기가 되었다. 내가 집에 갔던 첫째날과 다음날까지 내가 랩탑으로 생성한 와이파이 AP를 실제로 써 보면서, 물리적인 무선랜 공유기와의 성능 차이를 몸소 체험할 수 있었다. ㅜㅜ


가장 먼저는 이상하게 랩탑이 자꾸만 인터넷에 한동안 연결을 하지 못하는 문제로 인해서 스마트폰 입장에서는 와이파이에 접속한 상태는 변함이 없지만 갑자기 인터넷이 안 되는 현상이 간헐적으로 일어났다. 그런 문제가 생겼을 때 내가 바로 재부팅으로 해결하는 바람에 원인을 정확하게 파악하지는 못했지만, 재부팅하기 전에 도메인 네임 서버에 ping이 가지 않았던 현상을 통해서 도메인 네임 서버와의 연결이 간헐적으로 끊어졌던 것 같다.

두 번째로는 속도가 그다지 만족스럽지는 못했다. 내가 AP로 설정한 노트북인 삼성 뉴 시리즈9(NT900X3C-A64)이 비록 802.11n을 내장하고 있었고 안드로이드에서도 접속했을 때의 속도가 65Mbps였지만, 실제로는 그 속도가 나오지 않았다. ㅜㅜ 플레이스토어에서 각종 앱을 다운로드 받아서 설치한 적이 있었는데 그 때의 체감속도가 대략 16-24Mbps (1초에 약 2-3MB 정도를 다운로드 받았으므로 bps로 환산하면 대략 이 정도)였다. 동생도 와이파이를 쓰는 동안 좀 느리다고 얘기했던 것을 보면, 제대로 AP 역할을 수행하기 위해서는 HT를 비롯한 좀더 세부적인 설정이나 tweak 등을 해 줬어야 하는 것 같다. 하지만 나는 그렇게까지 자세한 설정을 고치지는 못했고, HT20, HT40 같은 것을 적용해 보려고 노력했지만 결국 실패로 돌아갔다.


결국 이틀간 쓰면서 이전에 고장나기 전까지 쓰던 802.11g보다 오히려 안정적이지 못하고 속도도 별 차이가 없거나 오히려 느리다는 결론을 내릴 수밖에 없었다.

집에 2박 3일 간 머무르는 중에 첫 이틀을 이렇게 내가 랩탑으로 와이파이를 만들어서 쓰고, 마지막 날 아침에는 통신사가 직접 자체 와이파이 공유기를 설치해 주었는데, 그 전용 장비의 체감 속도와 안전성은 확연히 달랐다.


비록 실제로 시중에서 쓰는 공유기들이 랩탑에 비하면 매우 느린 CPU와 아주 적은 양의 메모리를 갖고 있지만, 아무래도 AP 역할을 잘 할 수 있도록 외부로 노출된 안테나를 포함해서 최적으로 설계된 와이파이 네트워크 인터페이스와 그외 여러 측면에서 최적화된 라우터 전용 운영체제와 세부 소프트웨어 설정의 영향을 무시할 수 없는 것 같다. 

결론적으로, 와이파이가 아예 없는 것보다는 랩탑으로 설정한 AP라도 있는 것이 훨씬 나았지만, 전용 하드웨어가 제공하는 와이파이는 그 임시방편보다도 한층 더 좋을 수밖에 없었다. 혹시나 나중에 와이파이 말고도 또다른 연구하던 것을 현실에 써먹어야 할 때에는 꼭 실제 제품과의 차이가 클 수 있다는 것을 염두에 둬야겠다.


반응형
블로그 이미지

Bryan_

,
반응형

크로스 컴파일 환경: Ubuntu 12.04 (64-bit)

OpenWRT version: 14.07 (Barrier Breaker)

Tested device: Buffalo WZR-600DHP



<문제 발생 직전까지의 상황>

OpenWRT 액세스 포인트(AP)를 맨 처음 설치하고 나서 유선랜(ethernet)을 연결하면 DHCP를 통해서 자동으로 IP 주소(IPv4)를 받는다. 웹 인터페이스(LuCI)에 들어가서 무선랜(wlan0)을 활성화시키면, 기기들이 와이파이를 통해서도 DHCP 주소를 자동으로 할당받아서 연결할 수 있다.


여기서 나는 몇몇 기기들에 대해서 항상 같은 IP주소가 할당되도록 예약(static DHCP lease)을 하고 싶었고, 동시에 향후 연결될 수많은 다른 기기들을 위해서 dynamic DHCP 주소 할당 또한 여전히 작동되도록 하고 싶었다.

이것은 웬만한 AP에서는 모두 지원하는 기능이다. LuCI 웹 인터페이스에서는 Network > DHCP and DNS 메뉴를 누르면 하단에 "Static Leases" 섹션이 있고, 여기에 이름과 맥주소, 원하는 IP주소를 써서 설정할 수 있다.




<문제가 발생하기 시작했던 상황>

LuCI 웹 인터페이스 상의 Static Leases에 입력한 정보는 /etc/config/dhcp 파일에 기록된다. 나는 실험공간에 있는 약 20개의 기기들에게 모두 static DHCP lease를 통해서 IP주소를 고정하고 싶었고, 일일이 입력하기 귀찮아서 AP에 SSH로 접속해서 텍스트 파일로 설정을 붙여넣기 했다. (그리고 향후 실험을 위해 수시로 AP를 포맷하고 재설치해야 하기 때문에 가능하면 재설치 후 빠르게 설정할 수 있는 방법이 필요했다.)


그런데 /etc/config/dhcp 파일에 텍스트 파일로 설정을 붙여넣고 나면, 그 직후에는 잘 작동하지만, 이상하게 재부팅을 하고 나면 DHCP 서버가 작동을 하지 않는 것이었다. 즉, AP를 재부팅하고 나서 노트북에서 랜선을 꽂거나 와이파이 연결 시도를 해도 연결 시도만 하고, IP 주소를 할당받는 과정에서 더이상 진행을 못하는 것이었다. 이 증상은 스마트폰에서도 똑같이 일어났다.




<삽질과 예상밖의 현상>

*혹시 IPv6 설정 때문에 오류를 일으키는 건가 싶어서 액세스 포인트의 모든 IPv6 설정을 비활성화시켜 보았다. 여전히 DHCP 주소 할당이 되지 않았다.


*접속하는 클라이언트 머신(e.g. 노트북, 스마트폰 등)에서도 IPv6 기능이 있어서 그런 것 아닐까 하는 생각에 클라이언트 기기의 모든 IPv6 설정도 비활성화시켰지만, 여전히 문제가 해결되지 않았다.


*OpenWRT 크로스 컴파일 환경에 내가 코드를 약간 수정한 것이 생각나서, 내 코드가 전혀 들어가지 않은 깨끗한 최신 크로스컴파일 환경을 새로 다운로드받고 빌드해서 설치해 보았다. 여전히 되지 않았다. ㅠㅠ


*일단 액세스 포인트에 접속은 해야 돼서, 클라이언트 머신(노트북)에서 아예 고정IP를 설정하고 랜선을 꽂았더니 놀랍게도 액세스 포인트에 접근도 잘 되고 인터넷도 잘 되었다. 

  원래 DHCP 서버에 관계 없이 클라이언트에서 고정IP 주소를 스스로 설정(단, 액세스 포인트에서 현재 다른 기기에 할당하지 않은 빈 주소여야 함)해서 접속하는 방법은 다른 모든 액세스 포인트에서도 통하는 방법이다. 하지만 20개가 넘는 클라이언트 기기들을 모두 고정IP로 설정할 수는 없는 일이다.




<결국 발견한 문제의 원인 -_- >

/etc/config/dhcp에 붙여넣었던 텍스트 파일을 자세히 살펴본 결과, 같은 "이름-MAC주소-IP주소" 정보가 두 번씩 중복으로 적혀 있었다중복으로 적혀 있던 항목을 지우고 AP를 재부팅했더니 정상적으로 작동했다! ㅠ_ㅠ

다시 말해서, /etc/config/dhcp 파일에 static DHCP lease 정보를 하나라도 중복되게 입력하면 DHCP 서버가 정상적으로 작동하지 않는 것이다.



*결론: 텍스트 파일로 설정을 저장할 때에는 오타 또는 중복으로 복사된 내용이 없는지 꼼꼼히 확인해야 예상밖의 문제 발생을 방지할 수 있다. ㅠㅠ



반응형
블로그 이미지

Bryan_

,