Linux & Unix2009. 11. 21. 13:36

본문스크랩 무선과 리눅스(무선 리눅스를 돕는 다양한 툴과 프로젝트)(펌) LINUX

2008/08/14 02:11

작성자: 베레(lsj403)

복사 http://blog.naver.com/lsj403/memo/77722188

출처 JportalFrameworker | 오키도키
원문 http://blog.naver.com/okaydanky/5949061
Wi-Fi가 '유비쿼터스'가 되면서 리눅스도 시류에 편승했다. Roman Vichr는 리눅스가 많은 무선 툴과 프로젝트를 어떤 방식으로 지원해왔고 또 이들로부터 리눅스가 어떻게 도움을 받았는지를 설명한다.

유연성, 안정성, 확장성, 다양성, 성능 등을 겸비한 리눅스 플랫폼은 무선으로 가고있다. 거의 모든 것에 능한 범용 툴이 되고 있으며 무선 액세스를 겸비한 데스크 탑 및 서버부터 액세스 포인트 시스템에 이르기 까지, 무선 솔루션 분야로 길을 모색하고 있다. 리눅스가 무선 네트워킹을 어떻게 강화시킬 수 있는지 배워보자.

리눅스 무선 액세스 포인트: 구현할 것인가 구매할 것인가?
고정된 노드와 로밍되는 무선 클라이언트 사이를 연결할 때 무선 네트워크상에서 리눅스와 다른 액세스 포인트들이 통합할 수 있는가?

실제로 무선 랜(LAN)을 설치하는 일은 그다지 큰 일이 아니다. 중요한 것은 무엇을 구입했으며, 그것이 리눅스 시스템의 지원을 받는지의 여부이다. 특정 OS 드라이버용 하드웨어를 갖추고 있는지를 확인하라. 고성능(기가비트 데이터 전송률)을 바란다면 무선은 당신과 맞지 않다. 심지어 최신 표준들도 100Mbps 이하의 전송률이다. 로밍(roaming)도 도전이 되긴 마찬가지이다. 다양한 액세스 포인트들간 연결을 관리하는 문제도 이중 하나이다. 이를 위해 Wired Equivalent Privacy (WEP) 키를 설정하여 연결할 수 있는 액세스 포인트를 찾는다. 무엇보다도 액세스 포인트의 주요 목표는 다리(bridge) 역할임을 기억하라. 하나의 네트워크에서 또 다른 네트워크로 패킷을 라우팅해야 한다.

이 글은 이러한 액세스 포인트들을 관리할 때 필요한 다양한 옵션들과 툴에 초점을 맞춘다. 기본적으로 무선 확장을 갖춘 툴 아니면 무선 확장이 없는 툴을 선택하게 된다. (무선 확장(Wireless extensions)은 드라이버가 사용자들에게 스페이스 설정과 일반 무선 랜 스팩의 통계에 대해 알려줄 수 있도록 하는 일반적인 API의 이름이다.) 리눅스에서 액세스 포인트 소프트웨어를 설치하는 단계별 가이드는 리눅스에서 무선 액세스 포인트 구현하기(Building a wireless access point on Linux) 에 소개되어 있다. 무선 네트워크 구조에 대한 개관과, LAN과 WLAN 사이의 브릿징(bridging) 관련해서는 Linux Wireless Access Point HOWTO(참고자료)를 참조하라.

무선 시그널의 힘
박식한 사용자가 되려면 무선 시그널의 힘의 계산법을 알아야한다. 다음은 802.11b/g 액세스 포인트에서 사용된 2.45 GHz 주파수 대역에 대한 라디오 주파수 Signal Loss을 보여주는 간단한 식이다:

 SignalLoss = 40 + 20*log (d) ; 

SignalLoss는 dB로 표현되고 d는 미터(meter)로 표현되는 거리이다. 벽(wall)으로 필터링 될 때의 signal loss를 고려하지 않았기 때문에 이 식은 간단하다.

비 무선 확장
Linux Bluetooth 스택인 Linux-IrDa와 BlueZ 등, 무선 확장을 사용하지 않고 리눅스 무선 네트워킹을 설정할 수 있도록 해주는 여러 기술들이 있다. 이 둘은 리눅스 무선 네트워킹에 네트워킹에 잘 설명되어 있다. 이 외에도 ROSE (Radionet Open Source Environment; 참고자료)가 있다. 802.11 무선 액세스 포인트 구현 용 플랫폼이다. 오픈 소스 패키지로 배포되는 것과, 문서가 포함된 상용 버전으로 배포되는 것이 있다. ROSE의 장점은 어떤 플랫폼(MIPS, x86, ARM, PowerPC 등)에도 호환될 수 있다는 점이다. 지원되는 WLAN 카드는 Intersil Prism Chipset 2/2.5/3 기반이다. 5 GHz 주파수도 지원한다. 다음은 ROSE의 부가 기능들이다:

  • 액세스 포인트 개발 키트.
  • 802.11 프로토콜 및 보안, MAC 주소 필터링, IPv4 라우팅, 방화벽, RADIUS, QoS, 브릿징(bridging), NAT, DHCP. 802.11a/g/h 같은 추가 드라이버도 지원된다.
  • ROSE builder는 파이썬으로 작성되어 지원 및 관리성이 좋다.

기본적으로 (리눅스 2.4 커널과 함께) ROSE와 802.11 Intersil Prism 기반의 WLAN 카드를 사용해서 리눅스 기반의 무선 액세스 포인트를 구현할 수 있다.

무선 확장
무선 확장의 장점은 한 세트의 툴로 모든 종류의 무선 LAN을 그 유형에 상관없이(단, 하드웨어 드라이버가 무선 확장을 지원해야 한다) 지원할 수 있다는 점이다. 매개변수들이 드라이버(또는 리눅스)를 재시작하지 않고 끊임 없이 변경될 수 있는 것도 또 하나의 장점이다.

무선 확장을 조작하는 리눅스 툴 세트는 일반적으로 무선툴(wireless tools)이라고 언급된다. 이들은 텍스트 인터페이스를 사용하고 보다 간단하다. 다음은 리눅스 구현에 사용되는 것들이다:

  • iwconfig: 기본적인 무선 매개변수 조작
  • iwlist: 스캐닝 초기화 및 주파수, 비트 비율, 암호 키 나열
  • iwspy: 노드 당 링크 양 검색
  • iwpriv: Wi-Fi 드라이버 스팩의 무선 확장의 조작 허용
  • ifrename: 다양한 정적 기준에 근거한 이름 인터페이스 허용

친숙한 툴들
다음은 Wi-Fi를 관리하는데 사용할 수 있는 기타 관리 툴이다.(참고자료)

IfPlugd/waproamd
waproamd는 리눅스 무선 확장(v15 이상)을 지원하는 무선 IEEE 802.11 NICs용 로밍 데몬이고 Debian Linux에서 테스트되었다. 발견된 네트워크에 따라 WEP 키들을 설정하도록 되어 있다. waproamd 유틸리티는 무선 네트워크를 반복적으로 스캔한다. NIC가 사용가능한 네트워크와 연결될 때 waproamd는 더 이상의 스캔을 수행하지는 않지만 발견된 액세스 포인트에 NIC 카드를 붙인다. 이 스캔은 Host AP 드라이버가 정의한 host_roaming을 지원하는 iwlist scan. waproamd 명령어를 사용하여 테스트 될 수 있다. waproamd를 사용할 때 방화벽을 반드시 설치해야 한다. 유틸리티 자체로는 침입을 막을 수 없기 때문이다.

KWiFiManager
KWiFiManager는 리눅스의 KDE 환경에서 무선 LAN PC 카드를 설정 및 감시하는 툴이다. 이 툴은 KDE 3.x 버전용으로 만들어졌다. 리눅스 커널 무선 확장을 사용하기 때문에 대부분의 무선 pcmcia-cs 카드가 패키지로부터 지원된다. 카드용 wlan-ng 프로젝트에서 드라이버를 사용한다면 문제를 일으킬 소지가 있다. 이 드라이버들은 무선 확장과 백 퍼센트 호환되는 것이 아니기 때문이다. 어쨌든 이것을 시도하거나 같은 카드에 무선 확장과 호환되는 Host AP 드라이버를 사용할 수 있다.

KWiFiManager는 RPM 패키지로서 배포된다. 하지만 몇 가지 사전 설치 조건들이 있다. 사전에 갖춰야 할 것들은 Qt toolkit (version 3.0.3+), KDE 3.x, glibc2.2 이다. 이 패키지들이 준비된 후에 표준 ./configure make make install이 툴을 컴파일 및 설치한다. 이 애플리케이션은 Signal Quality, Connection Speed, Current Configuration, Access Point monitor, Statistics Viewer, Configuration Editor (마지막 디스플레이는 root 사용자들에게만 액세스 가능하다)등의 다양한 디스플레이를 제공한다.

무선 확장과 리눅스 커널을 사용하는 802.11b 카드용 링크 모니터 및 설정자인 Glink는 여기에서 GNOME과 비슷하다.

APHunter
펄로 작성된 APHunter는 텍스트 파일에서 iwlist 스캔의 아웃풋을 제공한다. 이 유틸리티의 문서는 명령어에 perldoc -t ./aphunter로 호출된다. 이 유틸리티는 아웃풋과 인디케이터를 제어하기 위해 여러 스위치를 제공한다.

GKrellMWireless
이 유틸리티는 리눅스 커널과 무선 확장을 필요로 한다. 이 유틸리티는 컴파일에 C 라이브러리가 필요하고 결과적으로 (g)make를 사용하여 설치된다. (BSD 하에서 설치용 추가 헤더를 추가해야 한다: if_wavelan_ieee.hif_aironet_ieee.h.) 이 유틸리티는 무선 링크 품질, 링크 레벨, 노이즈(noise) 등을 보여준다. 최신 버전은 리눅스의 dbm에서 레벨과 노이즈를 보여줄 수 있다.

상호운용성 문제
리눅스 플랫폼에 무선을 전개할 때, 리눅스 드라이버를 갖춘 다양한 카드들의 상호운용성은 중요한 고려 사항이다. 다양한 하드웨어 구성물들의 상호운용성 문제도 확인해야 한다. 왜냐하면 같은 스펙트럼 안에서 각각의 신호를 이해해야 하기 때문이다. 비슷하게 보이는 제품들이 상호 운용되는 것은 아니라는 것을 잊지 말라. 예를 들어 802.11과 802.11-FH 제품은 802.11-DS 제품과 상호 운용할 수 없다.

Chipsets
서로 다른 무선 제품들에 다양한 Chipset를 사용한다는 것은 도전이된다. 몇몇 카드는 지원이 되지만 같은 브랜드의 다른 카드는 그렇지 않은 경우도 있다. 가끔 같은 모델 번호의 카드들 조차 다른 Chipset를 갖는다. 이 때문에 어떤 카드가 리눅스에서 지원되는지 결정하기가 쉽지 않다. 하지만 대부분의 사용가능한 802.11b 카드는 Intersil PrismII Chipset를 사용한다. 리눅스에서 지원된다. .

802.11b 스팩은 802.11-DS의 확장이다. 속도는 강화되었지만 제품은 적어도 2Mbs(802.11-DS 모드)에서 상호 운용할 수 있다. 802.11g 표준은 802.11b의 직접 확장은 아니다. 이것의 목표는 같은 주파수에서 대역폭을 늘리는 것이다.

802.11a 제품의 상호 운용성을 시도할 때 정확히 같은 Chipset에 기반해서는 상호운용이 되지만, 802.11a와 802.11b와 작동하는 디바이스를 갖추지 않는 한 802.11b 제품과 직접 상호 운용할 수 없다는 것을 알아야 한다. Wi-Fi 주파수와 표준의 상호운용성 현황은 802.11g standard -- IEEEABCs of 802.11를 참조하라.

리눅스 무선 디바이스 드라이버를 고려할 때, 이 드라이버가 언제나 Windows 드라이버의 모든 기능들을 구현하는 것은 아니라는 것을 염두해야 한다. 이는 상호 운용성을 제한한다. 특히 보안 기능은 리눅스에서 다소 뒤떨어진다.

네트워킹 유연성과 무선 이니셔티브
무선 네트워크의 유연성을 실현하고 보안을 확고히 하기 위해 Wireless FreeNetwork Allocations와 NodeDB.com (참고자료)등 여러 이니셔티브들이 시작되었다. 특히 이들은 액세스 포인트와 고정된 클라이언트 커넥션 관련 위치 및 정보를 리스팅하는 사이트로서 지역적 디렉토리 서비스에 기반하여 이들을 배치하고 있다.

리눅스의 정신을 살려, 리눅스가 실제로 솔루션의 일부인지의 여부를 떠나 여러 무선 이니셔티브에 영향을 주고 있다. NodeDB.com의 경우 리눅스는 단지 플랫폼들 중 하나일 뿐이다. WIANA와 NoCatAuth 이니셔티브에서 리눅스는 커스터마이징 기능 때문에 이니셔티브의 핵심이 되고 있다.

WIANA
Wireless Assigned Numbers Authority(WIANA initiative(참고자료))는 무선 주소 관리용 구조를 만들려고 한다. 기존의 IP 주소 레지스트리는 정적인 계층 구조에 의존했다. 이는 무선에는 충분하지 않다. WIANA는 무선 네트워크의 특징을 고스란히 다루어야 한다. WIANA 가이드라인에 따라 공급자가 아닌 사용자들이 네트워크를 관리한다. 대규모 무선 네트워크는 전통적인 인터넷과는 다른 물리적 미디어에 기반한다. 여기에는 실제 주소 마다 인증이 필요하다. 전통적인 인터넷의 값비싼 연결 비용 때문에 무선 사용자들은 IP 주소를 얻는데 같은 접근방식을 사용할 수 없다. WIANA에서는 이러한 주소들이 무료로 제공된다. WIANA는 블로킹과 남용의 관리 중앙화를 모색하고 있다. WIANA는 LocustWorld.com에서 제공하는 미션 스테이트먼트에 따라 호환되는 무선 소프트웨어와 하드웨어를 지원한다. 하드웨어와 소프트웨어는 모든 플랫폼의 802.11 Wi-Fi에서 호환된다. 핵심 아이디어는 오픈 커뮤니티에 무선 WAN을 제공하는 것이다.

NoCatAuth
NoCatAuth도 비슷한 범주의 이니셔티브이다. 처음에는 캘리포니아의 Sonoma County 지역의 802.11b 무선 네트워크를 지원하기 위해 구현되었다. 이 구현 접근방식은 공유 인터넷 서비스들을 하나의 포인트로 모으는 권한 코드를 중앙화하는 것이다. 오픈 소스 라이센스하에서 NoCatAuth를 사용하려면 펄, GNU make, gpgv 등을 리눅스에 설치해야 한다.

리눅스 무선의 미래
리눅스는 BlueZ (2.4 및 2.6 커널에서 실행)와 Linux-IrDA 같은 제품 및 솔루션용 플랫폼으로서 존재해왔고 이제는 셀폰(cell phones)의 플랫폼이 되고있다. 셀폰 하드웨어가 다양한 기능과 복잡성을 갖춰감에 따라 많은 기능들이 구현되고 사용자 환경을 더욱 많이 제공하게 될 것이다. 리눅스 셀폰은 대부분 아시아 지역에서 사용되고 있다. 아시아에서는 3G 폰 개발 플랫폼으로서 리눅스가 각광 받고 있다. 이유는 간단하다. 리눅스의 접근방식이 개발자는 물론 사용자들에게 유연성과 자유를 제공하기 때문이다.

Posted by Tiwaz