Trans:GentooX86Handbook4-4

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기

무선 네트워크

개요

리눅스에서의 무선 네트워크는 보통 조금 간단합니다. 무선랜을 설정하는데 두 가지 방법이 있습니다. 하나는 그래픽 클라이언트를 사용하는 방법이고 다른 하나는 명령줄 방식을 사용하는 것입니다.

가장 쉬운 방법은 [데스크톱 환경]에서 이미 설치한 적이 있는 그래픽 클라이언트를 사용하는 방법입니다. wicdNetworkManager와 같은 대부분의 그래픽 클라이언트는 자체적으로 설명이 잘 되어 있습니다. 잠깐 동안에 네트워크를 동작할 수 있도록 간단하게 가리켜서 누르는 인터페이스를 제공합니다.


참고: wicd는 주된 그래픽 인터페이스와 더불어 명령줄 유틸리티도 제공합니다. ncurses 플래그 셋을 설정하여 wicd를 이머지하면 명령줄 인터페이스를 사용할 수 있습니다. 이 wicd-curses유틸리티는 gtk 기반 데스크톱 환경을 사용하지 않는 사용자들에게 특히 유용하지만, 그래도 아직은 직접 설정 파일 편집을 필요로 하지 않는 쉬운 명령줄 도구가 필요합니다.


하지만, 그래픽 클라이언트를 사용하려는 것이 아니라면 약간의 설정 파일을 명령줄에서 편집하는 방식으로 무선랜을 설정할 수 있습니다. 설정하는데 조금 더 걸리지만 다운로드하고 설치하는 패키지는 덜 필요합니다. 그래픽 클라이언트는 자체적으로 좀 더 설명이 잘 되어 있(그래픽 클라이언트의 홈페이지에 유용한 스크린샷 포함)지만, 대신 명령줄 환경에 초점을 맞추도록 하겠습니다.

wireless-tools 또는 wpa_supplicant를 설치하면 명령줄에서 무선 네트워크를 설정할 수 있습니다. 기억해야 할 중요한 내용은 무선 네트워크 설정이 인터페이스 기반이 아니라 시스템 전체를 기반으로 한다는 것입니다.

wpa_supplicant가 가장 좋은 선택입니다. 지원하는 드라이버에 대해서는 wpa_supplicant 사이트의 내용을 읽어보십시오.

wireless-tools는 거의 모든 카드와 드라이버를 지원하지만 WPA 방식만의 액세스 포인트에는 연결할 수 없습니다. 네트워크에서 WEP 암호화 또는 완전 개방식 연결만을 지원한다면 wireless-tools의 단순성을 선호하시는 것이 좋습니다.


주의: linux-wlan-ng 드라이버는 현재 baselayout에서 지원하지 않습니다. 왜냐면 linux-wlan-ng에서는 자체적인 설정을 가지고 있으며 다른 패키지와는 완전히 다른 설정을 가지고 있기 때문입니다. linux-wlan-ng 개발자들은 wireless-tools 도구로 설정을 바꿀 수 있다는 소문을 퍼뜨리고 있기에, 이것이 정말 된다면 baselayout과 함께 linux-wlan-ng를 사용하시는 것이 좋습니다.


WPA Supplicant

WPA Supplicant는 WPA 활성 액세스 포인트에 연결할 수 있게 해주는 패키지 입니다.


코드 예제 2.1: wpa_supplicant 설치
# emerge net-wireless/wpa_supplicant



중요: wpa_supplicant를 동작하도록 하려면 커널에 CONFIG_PACKET을 활성화 해야 합니다. grep CONFIG_PACKET /usr/src/linux/.config 를 실행해보고 커널에 활성화 되어 있는지 확인하십시오.



참고: USE 플래그에 따라 wpa_supplicant는 KDE와 멋들어지게 통합할 수 있게 Qt4로 작성한 그래픽 인터페이스를 설치할 수 있습니다. 그래픽 인터페이스를 가져오려면 wpa_supplicant를 이머지 하기전에 루트 계정 상태에서 echo "net-wireless/wpa_supplicant qt4" >> /etc/portage/package.use 를 실행하십시오.


이제 /etc/conf.d/net를 설정해서 wireless-tools를 통해 wpa_supplicant를 사용할 수 있게 해야 합니다 (둘 다 설치된 상황이라면 wireless-tools가 기본입니다).


코드 예제 3.3: /etc/conf.d/net에서 wpa_supplicant 설정하기
# Prefer wpa_supplicant over wireless-tools
modules="wpa_supplicant"

# It's important that we tell wpa_supplicant which driver we should
# be using as it's not very good at guessing yet

wpa_supplicant_eth0="-Dmadwifi"



참고: 호스트-AP 드라이버를 사용중이라면 wpa_supplicant를 제대로 사용할 수 있도록 하기 전에 카드를 관리 모드에 놓아야 합니다. 설정하기 위해 /etc/conf.d/net에 iwconfig_eth0="mode managed" 를 넣으실 수 있습니다.


간단했습니다. 안 그런가요? 하지만 여러분이 여러분이 연결하려고 하는 액세스 포인트를 어떻게 보호하느냐에 따라 좀 많이 어렵지만 해야 하는 wpa_supplicant 자체 설정이 아직 남아있습니다. 아래는 wpa_supplicant에 들어있는 /usr/share/doc/wpa_supplicant-<버전>/wpa_supplicant.conf.gz 에서 단순화 한 예제입니다.


코드 예제 2.3: /etc/wpa_supplicant/wpa_supplicant.conf 예제
# The below line not be changed otherwise we refuse to work
ctrl_interface=/var/run/wpa_supplicant

# Ensure that only root can read the WPA configuration
ctrl_interface_group=0

# Let wpa_supplicant take care of scanning and AP selection
ap_scan=1

# Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphers
network={
  ssid="simple"
  psk="very secret passphrase"
  # The higher the priority the sooner we are matched
  priority=5
}

# Same as previous, but request SSID-specific scanning (for APs that reject
# broadcast SSID)

network={
  ssid="second ssid"
  scan_ssid=1
  psk="very secret passphrase"
  priority=2
}

# Only WPA-PSK is used. Any valid cipher combination is accepted
network={
  ssid="example"
  proto=WPA
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
  priority=2
}

# Plaintext connection (no WPA, no IEEE 802.1X)
network={
  ssid="plaintext-test"
  key_mgmt=NONE
}

# Shared WEP key connection (no WPA, no IEEE 802.1X)
network={
  ssid="static-wep-test"
  key_mgmt=NONE
  # Keys in quotes are ASCII keys
  wep_key0="abcde"
  # Keys specified without quotes are hex keys
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
}

# Shared WEP key connection (no WPA, no IEEE 802.1X) using Shared Key
# IEEE 802.11 authentication

network={
  ssid="static-wep-test2"
  key_mgmt=NONE
  wep_key0="abcde"
  wep_key1=0102030405
  wep_key2="1234567890123"
  wep_tx_keyidx=0
  priority=5
  auth_alg=SHARED
}

# IBSS/ad-hoc network with WPA-None/TKIP
network={
  ssid="test adhoc"
  mode=1
  proto=WPA
  key_mgmt=WPA-NONE
  pairwise=NONE
  group=TKIP
  psk="secret passphrase"
}


Wireless Tools

초기 설정 및 관리 모드

Wireless Tools 는 기본 무선 인터페이스 설정에 있어 WEP 보안 레벨까지 일반적인 방식을 제공합니다. WEP 이 약한 보안 방식이긴 하지만 좀 더 일반적인 방식이긴 합니다.

Wireless Tools 설정은 주된 일부 변수를 가지고 제어합니다. 간단한 설정 파일에서 필요한 모든 내용을 설명하고 있습니다. 한가지 마음에 담아두어야 할 것은 설정하지 않음은 곧 "완전하게 비암호화된 액세스 포인트에 연결" 하는 것입니다. 앞으로 무언가에 계속 연결시도를 할 것입니다.


코드 예제 3.1: wireless-tools 설치하기
# emerge net-wireless/wireless-tools



참고: /etc/conf.d/wireless에 무선 연결 설정을 저장할 수 있지만 이 안내서에서는 /etc/conf.d/net에 저장하는 것을 추천합니다



중요: [변수 이름] 문서를 참조하십시오.



코드 예제 3.2: /etc/conf.d/net의 iwconfig 설정 예
# Prefer iwconfig over wpa_supplicant
modules="iwconfig"

# Configure WEP keys for Access Points called ESSID1 and ESSID2
# You may configure up to 4 WEP keys, but only 1 can be active at
# any time so we supply a default index of [1] to set key [1] and then
# again afterwards to change the active key to [1]
# We do this incase you define other ESSID's to use WEP keys other than 1
#
# Prefixing the key with s: means it's an ASCII key, otherwise a HEX key
#
# enc open specified open security (most secure)
# enc restricted specified restricted security (least secure)

key_ESSID1="[1] s:yourkeyhere key [1] enc open"
key_ESSID2="[1] aaaa-bbbb-cccc-dd key [1] enc restricted"

# The below only work when we scan for available Access Points
# Sometimes more than one Access Point is visible so we need to
# define a preferred order to connect in

preferred_aps="'ESSID1' 'ESSID2'"


액세스 포인트 선택 미세 조정

액세스 포인트 선택에 대한 미세조정을 위해 추가 옵션을 넣을 수 있지만 일반적으로 필요한 것은 아닙니다.

액세스 포인트에만 연결할것인지 아닌지에 대해 결정할 수 있습니다. 기본적으로 모든 설정에 실패했고 비암호화 액세스 포인트에 연결할 수 있다면 그렇게 하기로 하겠습니다. 이는 associate_order 변수에서 제어할 수 있습니다. 아래는 어떻게 이를 제어하는지에 대해 사용하는 값을 테이블로 정리했습니다.

설명
any 기본 동작
preferredonly 준비된 목록에서 보이는 AP로만 연결
forcepreferred 검색해서 찾지 못했을 경우 준비된 순서대로 AP에 강제로 연결
forcepreferredonly AP를 검색하지 않음 - 대신 순서대로 하나씩 연결 시도합니다
forceany forcepreferred + 다른 사용 가능한 AP에 연결 과 동일합니다


마지막으로 blacklist_apsunique_ap 선택을 설정합니다. blacklist_apspreferred_aps와 비슷하게 동작합니다. unique_ap는 두번째 무선 인터페이스가 첫번째 인터페이스와 같은 액세스 포인트에 연결할 수 있는지에 대해 yes 또는 no 값을 가집니다.


코드 예제 3.3: blacklist_aps와 unique_ap 예제
# Sometimes you never want to connect to certain access points
blacklist_aps="'ESSID3' 'ESSID4'"

# If you have more than one wireless card, you can say if you want,
# to allow each card to associate with the same Access Point or not
# Values are "yes" and "no"
# Default is "yes"

unique_ap="yes"


애드혹(Ad-Hoc) 또는 마스터 모드

관리 모드에서 그 어떤 액세스 포인트에 연결하지 못했다면 애드혹 노드로 설정할 수도 있습니다.


코드 예제 3.4: 애드혹 모드로 대체전환
adhoc_essid_eth0="This Adhoc Node"


애드혹 네트워크로의 연결이나 액세스 포인트가 되기 위해 마스터 모드로 동작 시키는 것은 어떻게 할까요? 여기 설정이 바로 이를 위한 내용입니다! 위에서 보았듯이 WEP 키 지정이 필요합니다.


코드 예제 3.5: 애드혹/마스터 설정 예제
# Set the mode - can be managed (default), ad-hoc or master
# Not all drivers support all modes

mode_eth0="ad-hoc"

# Set the ESSID of the interface
# In managed mode, this forces the interface to try and connect to the
# specified ESSID and nothing else

essid_eth0="This Adhoc Node"

# We use channel 3 if you don't specify one
channel_eth0="9"



중요: 하단의 내용은 말 그대로 [NetBSD 문서]에서 발견한 BSD 무선랜 문서에서 가져왔습니다. 14개의 채널을 사용할 수 있습니다. 1부터 11까지의 채널을 북아메리카에서 합법적으로 사용합니다. 1부터 13까지는 유럽에서 사용합니다. 10부터 13까지는 프랑스에서 사용하며 14는 일본에서만 사용합니다. 뭔가 이상한 점이 있다면 여러분의 무선랜 카드나 액세스 포인트에 동봉된 문서를 참조하십시오. 여러분이 선택한 채널은 여러분의 액세스 포인트(또는 애드혹 네트워크의 경우 다른 카드)에서 지정한 채널과 동일합니다. 북아메리카와 대부분의 유럽 지역에서 기본으로 사용하는 채널 번호는 3입니다. 프랑스에서 판매하는 카드의 기본 채널 번호는 11이며, 일본에서 판매하는 카드의 기본 채널 번호는 14입니다.


Wireless Tools 문제 해결

드라이버 문제나 환경 문제 발생시 무선 장치를 띄우고 실행하는 과정을 도와줄 변수들이있습니다. 여러분이 시도해볼 수 있음직한 변수들을 표로 정리했습니다.

변수 기본값 설명
iwconfig_eth0 iwconfig에 어떤 값을 내보내야 하는지에 대한 자세한 내용은 iwconfig 맨 페이지를 보십시오
iwpriv_eth0 iwpriv에 어떤 값을 내보내야 하는지에 대한 자세한 내용은 iwpriv 맨 페이지를 보십시오
sleep_scan_eth0 0 검색을 시도하기 전에 대기할 초 시간 길이입니다. 드라이버나 펌웨어를 쓸 수 있기 전에 활성화 할 시간이 더 필요할 경우 필요합니다
sleep_associate_eth0 5 다음 액세스 포인트로 이동하기 전에 액세스 포인트의 네트워크에 참가할 인터페이스를 위해 기다릴 초 시간 길이입니다.
associate_test_eth0 MAC 어떤 드라이버의 경우에는 무선 장치가 네트워크 참여 상태로부터 빠져나왔거나 참여를 시도할 경우에 잘못 할당한 MAC 주소를 재설정하지 못합니다. 어떤 다른 드라이버의 경우에는 네트워크 참여 상태로부터 빠져나왔거나 참여를 시도할 경우 네트워크 품질 레벨을 재설정하지 못합니다. 유효한 설정값은 MAC, quality, all입니다.
scan_mode_eth0 어떤 드라이버는 애드혹 모드에서 다른 요소를 검색해야 하기 때문에, 검색에 실패했을 경우 이 변수에 ad-hoc으로 설정해보십시오
iwpriv_scan_pre_eth0 검색하기 전에 인터페이스에 iwpriv 명령을 보냅니다. 자세한 내용은 맨 페이지를 보십시오
iwpriv_scan_post_eth0 검색한 후에 인터페이스에 iwpriv 명령을 보냅니다. 자세한 내용은 맨 페이지를 보십시오


ESSID 별로 네트워크 설정 정의하기

때로는 ESSID1로 연결할 때 정적 IP가 필요할 수도 있으며 ESSID2에 연결할 때는 DHCP가 필요할 수가 있습니다. 사실 대부분의 모듈 변수는 ESSID 별로 정의할 수 있습니다. 우리가 어떻게 설정하는지 보십시오.


참고: WPA Supplicant 또는 Wireless Tools 를 사용할 때 동작합니다.



중요: [변수 이름] 문서를 참조하십시오.



코드 예제 4.1: ESSID 별 네트워크 설정 지정하기
config_ESSID1="192.168.0.3/24 brd 192.168.0.255"
routes_ESSID1="default via 192.168.0.1"

config_ESSID2="dhcp"
fallback_ESSID2="192.168.3.4/24"
fallback_route_ESSID2="default via 192.168.3.1"

# We can define nameservers and other things too
# NOTE: DHCP will override these unless it's told not too

dns_servers_ESSID1="192.168.0.1 192.168.0.2"
dns_domain_ESSID1="some.domain"
dns_search_domains_ESSID1="search.this.domain search.that.domain"

# You override by the MAC address of the Access Point
# This handy if you goto different locations that have the same ESSID

config_001122334455="dhcp"
dhcpcd_001122334455="-t 10"
dns_servers_001122334455="192.168.0.1 192.168.0.2"