Raspberry Pi Zero で無線LANのレピーター [Raspberry Pi]
インターネットにつながっている無線LANルーターから,ちょっと離れている電波が届きにくい所があるので,ラズパイZeroで無線LANのレピーターをやってみた。
無線LAN内蔵のZero Wじゃないので,USBハブでUSB無線LANアダプターを2個接続している。
また,有線から無線LANのNATもやってみたので,USBイーサーネットアダプターもUSBハブに接続している。
(実際はbridgeではなく,無線→無線又は有線→無線のNAT)
USB無線LANアダプターは,Buffalo WLI-UC-GN とRalink RT2870/RT3070ワイヤレスアダプター。
USBイーサーネットアダプターはELECOM EDC-GUA3-B。
写真にはないが,実際にはパソコンをUSBシリアルコンバーターでラズパイZeroに接続して,コンソールで操作した。ラズパイZeroのsshdを有効にしてssh接続でもいい。
Raspbian Buster lite を起動して raspi-config のWiFIで SSID とパスフレーズを入力。無線LANにラズパイZeroを接続しておく。
apt update && apt –y upgrade
無線AP機能のhostapdとDNS/DHCPサーバ機能のdnsmasq をインストール
apt –y install hostapd dnsmasq
wlan0 がラズパイZeroのAPで固定IP,wlan1は無線LANルーターにWPA2で接続するので動的IP。
/etc/dhcpcd.conf
(追記)
interface wlan0
static ip_address=192.168.2.254/24
static routers=192.168.2.0
/etc/dnsmasq.conf
(追記)
interface=wlan0
dhcp-range=192.168.2.50,192.168.2.150,255.255.255.0,12h
/etc/hostapd/hostapd.conf
(新規作成ファイル)
interface=wlan0
driver=nl80211
ssid=pizero
hw_mode=g
channel=6
country_code=JP
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=fujiko3210
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
/etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
hostapdの自動起動
systemctl unmask hostapd
systemctl enable hostapd
iptablesの実行(コマンド入力)
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables –L で確認。間違えたら iptables –F で全削除。
iptables をファイルにセーブ
iptables-save > /etc/iptables.ipv4.nat
/etc/rc.local の exit 0 の前にiptables をリストアするコマンドを追加
iptables-restore < /etc/iptables.ipv4.nat
/etc/sysctl.conf
(# Uncomment the next line to enable packet forwarding for IPv4の次の行をコメントアウト)
net.ipv4.ip_forward=1
リブート! ラズパイZeroが無線AP(SSID: pizero)になるので,pizeroに接続すればインターネットにつながる。USBハブがボトルネックなのか,無線の干渉なのか分かってないが,speedtestでは遅い。
apt install speedtest-cli
speedtest-cli
次は,USB無線LANアダプタの1つを取り外して,一方をUSBイーサネットアダプターにしてみたら,こちらの方は速かった。無線はwlan0,有線はeth0。
hostpadを停止する(使わない)。
systemctl stop hostapd
systemctl disable hostapd
/etc/dhcpcd.conf
interface eth0
static ip_address=192.168.2.254/24
static routers=192.168.2.0
/etc/dnsmasq.conf
interface=eth0
dhcp-range=192.168.2.50,192.168.2.150,255.255.255.0,12h
iptablesの実行
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
iptables のセーブファイルを書き換え。
iptables-save > /etc/iptables.ipv4.nat
/etc/rc.local の exit 0 の前にiptables をリストアするコマンドを追加
iptables-restore < /etc/iptables.ipv4.nat
/etc/sysctl.conf
(# Uncomment the next line to enable packet forwarding for IPv4の次の行をコメントアウト)
net.ipv4.ip_forward=1
リブート! ラズパイZeroのUSBイーサーアダプターにLANケーブル(クロス)で接続すればインターネットにつながる。 無線→有線の方は遅くない。
コメント 0