SSブログ

Raspberry Pi Zero で無線LANのレピーター [Raspberry Pi]

インターネットにつながっている無線LANルーターから,ちょっと離れている電波が届きにくい所があるので,ラズパイZeroで無線LANのレピーターをやってみた。
無線LAN内蔵のZero Wじゃないので,USBハブでUSB無線LANアダプターを2個接続している。
また,有線から無線LANのNATもやってみたので,USBイーサーネットアダプターもUSBハブに接続している。
(実際はbridgeではなく,無線→無線又は有線→無線のNAT)


DSC01937


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ケーブル(クロス)で接続すればインターネットにつながる。   無線→有線の方は遅くない。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。