[Raspberry PI] 라즈베리파이를 핫스팟 AP로 사용하기 (라즈베리파이 무선 공유기, 라즈베리파이 프로젝트)
안녕하세요.
지난 포스팅에선 라즈베리 파이에 OS 설치 (http://harryp.tistory.com/133) 및 SSH, 원격제어 설정 (http://harryp.tistory.com/150)에 대해 알아보았습니다.
이번 포스팅에서는 USB 무선 인터넷 카드를 이용하여 라즈베리 파이를 무선 공유기 처럼 사용할 수 있는 핫 스팟 AP 설정을 다뤄보도록 하겠습니다.
라즈베리 파이를 핫 스팟으로 사용할 수 있다면 여행지나 출장지 등 이동이 필요한 곳에서도 몇 가지 설정 만으로 간단하게 무선인터넷을 사용할 수 있을겁니다.
그럼 시작해보도록 하겠습니다.
1. 하드웨어 준비
이번 포스팅에서 필요한 하드웨어는
① 유선랜에 연결되어 있는 라즈베리 파이
② USB 무선 인터넷 카드
입니다.
저는 구입했던 라즈베리파이 키트에 netis의 USB 무선 인터넷 카드가 들어있어 이것을 사용했습니다.
위와 같은 USB 무선 랜카드를 라즈베리파이에 연결한 후 부팅을 합니다.
만약 제대로 연결이 되었다면, 라즈베리파이 네트워크 설정에서 무선 랜이 잡히는 것을 확인하실 수 있습니다.
UI 상에서 확인이 어렵다면, 터미널에서 ifconfig 명령어를 사용하여 'wlan' 항목이 있는지 확인해 보시면 됩니다.
parkch0708@chpark-pi:~$ ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr 04:8d:38:c8:f9:2d inet6 addr: fe80::68d:38ff:fec8:f92d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3485 errors:0 dropped:11 overruns:0 frame:0 TX packets:35 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:16319 (16.3 KB) TX bytes:8553 (8.5 KB) parkch0708@chpark-pi:~$ |
2. 네트워크 구성
본격적인 설정에 앞서 네트워크를 어떻게 구성할 것인지 부터 정해야 합니다.
먼저 라즈베리 파이가 연결되어있는 유선 네트워크의 구성 부터 알아야 합니다.
고정 IP를 사용하고 있다면 해당 IP에 맞는 설정을 사용하시면 되고,
자동으로 할당 (DHCP) 받는다면 ifconfig 명령어를 통해 알아보시면 됩니다.
그리고 다른 기기들에게 무선 인터넷으로 할당해 줄 IP 대역을 정해주면 됩니다.
저의 네트워크 구성 예시 입니다.
먼저 저는 라즈베리파이를 eth0 인터페이스로 유선 연결을 하였습니다.
고정 IP (10.21.1.88/255.255.0.0)를 사용중이고, 게이트 웨이는 10.21.0.1 입니다.
그리고 무선 인터페이스인 wlan0를 사용하여 다른 기기들에게 무선 인터넷을 제공할 예정입니다.
wlan0 역시 고정 IP (192.168.1.1/255.255.255.0)를 사용 할 예정이고,
할당 범위는 192.168.1.10 - 192.168.1.20 입니다.
유선 인터넷의 IP 및 G/W와 무선 인터넷의 IP 및 할당 범위는 상황에 따라 바꾸시면 됩니다.
3. 소프트웨어 설치
몇몇 소프트웨어를 설치하셔야 합니다.
(1) isc-dhcp-server
다음의 명령어를 통해 간단하게 설치 가능합니다.
$ sudo apt-get install isc-dhcp-server
(2) hostapd
hostapd는 사용하는 무선 인터넷 카드 종류에 따라 바뀔 수 있습니다.
만약 리얼텍의 rtl871xdrv 드라이버를 사용하는 무선 랜 카드를 사용하신다면, 다음과 같은 방법을 통해 설치하셔야 합니다.
$ sudo apt-get install make gcc
$ wget https://github.com/jenssegers/RTL8188-hostapd/archive/v2.0.tar.gz
$ tar zxvf v2.0.tar.gz
$ cd RTL8188-hostapd-2.0/hostapd
$ sudo make
$ sudo make install
만약 위의 드라이버를 사용하지 않는다면
$ sudo apt-get install hostapd
명령어를 통해 설치해 주시면 됩니다.
제가 가지고 있는 netis의 무선 네트워크 카드는 리얼텍 드라이버를 사용해서 직접 소스를 받아 컴파일 후 설치하였습니다.
(3) iw
간단하게 설치 가증합니다.
$ sudo apt-get install iw
4. 무선 네트워크 인터페이스 설정
먼저 무선 네트워크 인터페이스 (wlan0)를 설정해주셔야 합니다.
root 권한으로 /etc/network/interfaces 파일을 열어 수정합니다.
$ sudo vi /etc/network/interfaces
마지막 줄 부터 다음의 내용을 추가 후 저장 합니다.
allow-hotplug wlan0 auto wlan0 iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 gateway 10.21.0.1 IPV4_FORWARD_ENABLE=yes |
gateway 항목은 유선랜 (eth0)의 gateway와 동일하게 지정하면 됩니다.
저장 후 리부팅을 한번 해줍니다.
5. DHCP 서버 설정
/etc/dhcp/dhcpd.conf 파일을 root 권한으로 열어 수정합니다.
$ sudo vi /etc/dhcp/dhcpd.conf
"option domain-name' 을 문자열 검색 하여 다음의 두 줄을 주석처리 (앞에 # 추가) 합니다.
#option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org; |
'authoritative;' 를 문자열 검색 하여 앞에 #을 제거하여 주석처리를 없앱니다.
authoritative; |
제일 마지막 줄부터 다음의 내용을 추가합니다.
subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.20; } |
subnet 항목에는 무선 네트워크 인터페이스 (wlan0)의 네트워크 대역과 넷마스크를,
range 항목에는 할당 할 대역의 시작과 끝을 입력해 주시면 됩니다.
그리고 /etc/default/isc-dhcp-server 파일도 root 권한으로 열어 무선 네트워크 인터페이스 정보를 입력합니다.
$ sudo vi /etc/default/isc-dhcp-server
INTERFACES="" 라고 되어있는 항목에 무선 네트워크 인터페이스 정보를 기록합니다.
INTERFACES="wlan0" |
설정이 완료 되었으면 dhcp-server를 재시작 합니다.
$ sudo service isc-dhcp-server restart
6. hostapd 설정
/etc/hostapd/hostapd.conf 파일을 root 권한으로 열어 설정을 해 줍니다.
이 파일은 hostapd 설치 방법에 따라 미리 생성이 되있을수도 있습니다.
$ sudo vi /etc/hostapd/hostapd.conf
무선 네트워크 인터페이스 종류에 따라 설정 방법이 약간 다릅니다.
만약 리얼텍의 rtl871xdrv 드라이버를 사용한다면 다음과 같이 설정을 해줍니다.
# Basic configuration interface=wlan0 ssid=무선_핫스팟_이름 channel=1 #bridge=br0 # WPA and WPA2 configuration macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=무선_핫스팟_비밀번호 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # Hardware configuration driver=rtl871xdrv ieee80211n=1 hw_mode=g device_name=RTL8192CU manufacturer=Realtek |
그 이외에는 다음과 같이 설정을 해주시면 됩니다.
interface=wlan0 driver=nl80211 #driver=rtl871xdrv ssid=무선_핫스팟_이름 hw_mode=g channel=6 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=무선_핫스팟_비밀번호 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP |
무선_핫스팟_이름에 입력한 값이 WIFI 검색 시 확인되는 이름입니다.
그리고 무선_핫스팟_비밀번호를 입력해 접속을 하게 됩니다.
마지막으로 /etc/default/hostapd 파일을 root 권한으로 열어 방금 설정한 conf 파일의 위치를 지정해 줍니다.
$ sudo vi /etc/default/hostapd
DAEMON_CONF 항목이 주석처리 되어있는데, #을 제거하여 주석처리를 풀고, 위에서 설정한 conf 파일 경로를 적어주시면 됩니다.
DAEMON_CONF="/etc/hostapd/hostapd.conf" |
7. 라우팅 설정
/etc/sysctl.conf 파일을 root 권한으로 열어 다음 내용을 수정합니다.
$ sudo vi /etc/sysctl.conf
'net.ipv4.ip_forward=1' 항목이 주석 처리 되어있는데, #을 제거하여 주석처리 되어있는 것을 없애줍니다.
net.ipv4.ip_forward=1 |
마지막으로 포워딩 설정을 위해 다음의 명령어들을 입력해줍니다.
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
$ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$ sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
$ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
위 과정을 모두 마치셨으면 라즈베리 파이를 리부팅 하시면 됩니다.
부팅이 끝나면 스마트폰 등으로 테스트 해보시면 됩니다.
-참고 사이트-
https://www.maketecheasier.com/set-up-raspberry-pi-as-wireless-access-point/
http://www.jenssegers.be/43/Realtek-RTL8188-based-access-point-on-Raspberry-Pi
https://fleshandmachines.wordpress.com/2012/10/04/wifi-acces-point-on-beaglebone-with-dhcp/
'Computer System > Raspberry Pi' 카테고리의 다른 글
[Raspberry PI] 라즈베리 파이를 웹 서버로 활용 1. 아파치 설치 (MySQL, php) (2) | 2016.03.16 |
---|---|
[Raspberry PI] 라즈베리 파이 SSH 접속 및 원격제어 (xrdp) (0) | 2015.11.17 |
[Raspberry Pi] 라즈베리 파이 OS 설치 (0) | 2015.09.09 |
[Raspberry Pi] 라즈베리 파이 2 개봉기 (0) | 2015.09.04 |