3
0

More than 1 year has passed since last update.

Raspberry Piでリモート操作用ルーターを作る

Posted at

遠隔地にある設備を操作したいという案件があるため、Raspberry PiにLTEドングルを接続して、遠隔地からWi-Fi+LANで接続された設備を遠隔操作するためのルーターを実現してみたいと思います。システム構成は以下のとおりです。

Raspberry Piをルーター化する作業を行い、その作業をまとめました。LTE回線はソラコムで、RasbperryPiにOnyx LTE USBドングル SC-QGLC4-C1を挿入してルーターを実現します。

なお、VPNサーバーの構築や設定については今回の説明には含んでいません。

image.png

Piのセットアップ

Raspberry PiのOSは公式のダウンロードサイトの中段あたりにある「Raspberry Pi OS Lite」をダウンロードしました。

電源を投入したら環境設定をします。

sudo raspi-config

image.png

一旦、Wi-Fi、キーボード、SSHの有効化などの設定を行います。

  1. System Options -> Wireless LANで一旦、Wi-Fi経由でインターネットに接続をします。
  2. Interface Option -> SSHで、SSHを有効にします。
  3. Localisation Options -> TimezonでタイムゾーンをTokyoに設定します。
  4. Localisation Options -> WLAN CountryでWi-Fiの使用場所をJPに設定します。

一度再起動します。

sudo reboot

再起動したらソフトウエアのアップデートを行い、再び再起動します。

sudo apt-get update
sudo apt-get upgrade
sudo reboot

再起動後はsudo apt-get updateでエラーが発生するようになってしまいましたが、このコマンドで復旧できました。

sudo apt-get update --allow-releaseinfo-change

LTE回線でインターネットに接続する

Soracomのホームページに詳細が記載されていますのでこちらを参照してください。

URL:https://users.soracom.io/ja-jp/guides/usb-dongles/soracom-onyx/raspberrypi/

LTE回線で接続ができたら、Wi-FiをOFFにしてインターネット接続ができるか確認をします。

pingの応答があればOKです

pi@raspberrypi:~ $ sudo ifconfig wlan0 down
pi@raspberrypi:~ $ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=117 time=311 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=117 time=300 ms

Rasbperry Piをルーター化する

基本的な操作はこちらにドキュメントがあり、そこから一部変更をしています。

URL: https://www.raspberrypi.com/documentation/computers/configuration.html#setting-up-a-routed-wireless-access-point

必要なソフトウエアのインストール

sudo apt-get install dnsmasq
sudo apt-get install iptables
sudo apt-get install hostapd

ルーターの設定

IPアドレスを固定する

/etc/dhcpcd.confのファイルを開き、それぞれ、有線LANのIPアドレス(eth0)、Wi-Fiのアドレス(wlan0)を固定にします。

/etc/dhcpcd.conf
interface eth0
	static ip_address=192.168.10.1/24

interface wlan0
	static ip_address=192.168.11.1/24
	nohook wpa_supplicant

DNSの設定

/etc/dnsmasq.confのファイルを開き、接続されたネットワークに応じて割り振るIPアドレスの指定を行います。

/etc/dnsmasq.conf
dhcp-range=tag:eth0,192.168.10.2,192.168.10.127,24h
dhcp-range=tag:wlan0,192.168.11.2,192.168.11.127,24h
dhcp-option=tag:eth0,option:router,192.168.10.1
dhcp-option=tag:wlan0,option:router,192.168.11.1

Wi-Fiアクセスポイントの設定

/etc/hostapd/hostapd/confにWi-Fiがルーターとして動作するための設定を行います。[SSID]と[PASSPHRASE]にはWi-FiのSSID(アクセスポイント名)とパスフレーズを指定します。

/etc/hostapd/hostapd/conf
interface=wlan0
country_code=JP
driver=nl80211
ssid=[SSID]
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=[PASSPHRASE]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

/etc/default/hostapdのファイルを開いてhostapdの設定ファイルを指定します

/etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"

/etc/sysctl.confのファイルを開いてIPフォワードを有効化する設定を有効にします。

ソフトウエアの起動

dhcpcdの起動

rfkill unblock wifi
sudo systemctl restart dhcpcd

dnsmasqの起動とdaemon化

sudo systemctl start dnsmasq
sudo systemctl enable dnsmasq

hostapdの起動とdaemon化

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd

ルーティング設定

eth0とeth0で接続されたネットワークをwwan0に転送するように設定します。

sudo iptables -A FORWARD -i wlan0 -o wwan0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o wwan0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE

再起動して動作していれば作業完了です

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0