오렌지파이 제로(OrangePi Zero) hostapd 사용하여 AP 만들기
Orange Pi Zero에서 hostapd를 사용하여 AP모드로 설정하는 방법이다.
lan을 연결하여 무선 인터넷 공유기로 사용할 수 있다.
1. 패키지 설치
아래와 같이 hostapd, isc-dhcp-server, iptables-persistent를
설치해야 한다.
sudo apt-get update sudo apt-get install hostapd
isc-dhcp-server iptables-persistent |
isc-dhcp-server
설치 중 최초 서비스 실행이 실패할 수도 있다. 아래 설정을 모두 마친 서비스 실행해야 한다.
iptables-presistent 설정은 아래 그림 참조 (둘 다 yes)
2. DHCP 서버 설정
/etc/dhcp/dhcpd.conf 설정은 아래를 참조하여 IP를 설정한다.
#
dhcpd.conf # # Sample
configuration file for ISC dhcpd #
# option
definitions common to all supported networks... option
domain-name "example.org"; option
domain-name-servers 8.8.8.8, 8.8.6.6;
default-lease-time
600; max-lease-time
7200;
# The
ddns-updates-style parameter controls whether or not the server will # attempt
to do a DNS update when a lease is confirmed. We default to the #
behavior of the version 2 packages ('none', since DHCP v2 didn't # have
support for DDNS.) ddns-update-style
none;
# If this
DHCP server is the official DHCP server for the local #
network, the authoritative directive should be uncommented. #authoritative;
# Use
this to send dhcp log messages to a different log file (you also # have to
hack syslog.conf to complete the redirection). #log-facility
local7;
# No
service will be given on this subnet, but declaring it helps the # DHCP
server to understand the network topology.
#subnet
10.152.187.0 netmask 255.255.255.0 { #}
# This is
a very basic subnet declaration.
#subnet
10.254.239.0 netmask 255.255.255.224 { # range 10.254.239.10 10.254.239.20; # option routers rtr-239-0-1.example.org,
rtr-239-0-2.example.org; #}
# This
declaration allows BOOTP clients to get dynamic addresses, # which
we don't really recommend.
#subnet
10.254.239.32 netmask 255.255.255.224 { # range dynamic-bootp 10.254.239.40
10.254.239.60; # option broadcast-address 10.254.239.31; # option routers rtr-239-32-1.example.org; #}
# A
slightly different configuration for an internal subnet. #subnet
10.5.5.0 netmask 255.255.255.224 { # range 10.5.5.26 10.5.5.30; # option domain-name-servers
ns1.internal.example.org; # option domain-name
"internal.example.org"; # option routers 10.5.5.1; # option broadcast-address 10.5.5.31; # default-lease-time 600; # max-lease-time 7200; #}
# Hosts
which require special configuration options can be listed in # host
statements. If no address is
specified, the address will be #
allocated dynamically (if possible), but the host-specific information # will
still come from the host declaration.
#host
passacaglia { # hardware ethernet 0:0:c0:5d:bd:95; # filename "vmunix.passacaglia"; # server-name
"toccata.example.com"; #}
# Fixed
IP addresses can also be specified for hosts. These addresses # should
not also be listed as being available for dynamic assignment. # Hosts
for which fixed IP addresses have been specified can boot using # BOOTP
or DHCP. Hosts for which no fixed
address is specified can only # be
booted with DHCP, unless there is an address range on the subnet # to
which a BOOTP client is connected which has the dynamic-bootp flag # set. #host
fantasia { # hardware ethernet 08:00:07:26:c0:a5; # fixed-address fantasia.example.com; #}
# You can
declare a class of clients and then do address allocation # based
on that. The example below shows a
case where all clients # in a
certain class get addresses on the 10.17.224/24 subnet, and all # other
clients get addresses on the 10.0.29/24 subnet.
#class
"foo" { # match if substring (option
vendor-class-identifier, 0, 4) = "SUNW"; #}
#shared-network
224-29 { # subnet 10.17.224.0 netmask 255.255.255.0 { # option routers rtr-224.example.org; # } # subnet 10.0.29.0 netmask 255.255.255.0 { # option routers rtr-29.example.org; # } # pool { # allow members of "foo"; # range 10.17.224.10 10.17.224.250; # } # pool { # deny members of "foo"; # range 10.0.29.10 10.0.29.230; # } #}
subnet 192.168.99.0 netmask 255.255.255.0 { range 192.168.99.10
192.168.99.50; option broadcast-address
192.168.99.255; option routers
192.168.99.1; option subnet-mask
255.255.255.0; } |
/etc/default/isc-dhcp-server 설정은 아래와 같이 dhcpd.conf파일의 위치를 설정하고, ‘INTERFACESv4’를 wlan0로 설정한다.
3. 네트워크 interface 설정
wlan0의 IP 주소를 고정해 사용한다. 본 예제에는 dhcpd.conf 에서 routers ip로 설정한 192.168.99.1를 IP 주소로 설정했다.
4. hostapd 설정
/etc/hostapd/hostapd.conf 파일 생성하여 AP 설정파일을 만든다. (아래 그림 참조)
hostapd_cli를 통해 컨트롤 하려면 아래 내용도 hostapd.conf에 추가해야 한다.
/etc/default/hostapd에 hostapd.conf파일 위치 설정해야 한다.
(DAEMON_CONF)
/etc/init.d/hostapd의
DAEMON_CONF의 위치도 설정해야 한다.
5. Network Address Translation 설정
/etc/sysctl.conf 아래 그림 참조하여 수정한다.
그리고, 리부팅 전에 아래도 적용해야 한다.
sh -c
“echo 1 > /proc/sys/net/ipv4/ip_forward” |
6. iptables 설정
iptables 설정은 다음과 같다.
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 |
댓글
댓글 쓰기