ラズベリーパイをローカルネットワーク用のルーターにしてみる

ラズベリーパイでローカルネットワーク用のルーターを構築してみます。

ルーターを構築する際にラズベリーパイのOSのバージョンによって方法が異なりまして、今回はTrixie(トリクシー:Debian 13)のOSで、ルーターは無線接続専用機として話を進めます。

※今回構築するルーターはローカルネットワークのみで、グローバルネットワークは利用できません。


各デバイス(パソコン等)からルーターへの接続の際の情報は

IDアドレス:192.168.10.1

SSID:rpi4_router

パスワード:raspberry

になるように設定します。

※ 上記の値は変更可です。


始めにNetworkManagerの設定から始めます。

NetworkManager - ArchWiki


$ sudo nmcli con add type wifi ifname wlan0 con-name rpi-ap autoconnect yes ssid rpi4_router mode ap
$ sudo nmcli con modify rpi-ap ipv4.method manual ipv4.addresses 192.168.10.1/24
$ sudo nmcli con modify rpi-ap 802-11-wireless-security.key-mgmt wpa-psk
$ sudo nmcli con modify rpi-ap 802-11-wireless-security.psk "raspberry"
$ sudo nmcli con up rpi-ap

上記手続きで、NetworkManagerの方の設定は終了です。


$ $ nmcli device status

DEVICE         TYPE      STATE                   CONNECTION         
eth0           ethernet  connected               Wired connection 1 
wlan0          wifi      connected               rpi-ap             
lo             loopback  connected (externally)  lo  

wlan0は一番目の無線LANインターフェースになっていまして、CONNECTIONの箇所がrpi-apになっていれば設定は終了です。

※APに関してはWi-Fiルーターのモードの違いは何ですか/ブリッジモード・APモード・中継機モード・WBモードなどの違いがわかりません | バッファローをご覧ください。




続いて、dnsmasqの設定を行います。

dnsmasq - ArchWiki

$ sudo micro /etc/dnsmasq.conf

でdnsmasqの設定ファイルを開き、ファイルの末尾に

interface=wlan0
dhcp-range=192.168.10.10,192.168.10.50,255.255.255.0,12h

を追加してファイルを保存します。


保存後に

$ sudo systemctl enable dnsmasq

を実行して、dnsmasqを使用出来るようにします。


設定が反映されているか?を確認するために

$ ip addr show wlan0

を実行します。

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether dc:a6:32:d9:eb:cb brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.1/24 brd 192.168.10.255 scope global noprefixroute wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::8a5f:6a43:6825:28f2/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

太字で示したIPアドレスが記載されていれば、設定は終了です。


$ sudo systemctl restart dnsmasq

でdnsmasqを再起動すれば、ルーターとをして使用できるようになります。


パソコンやスマホのWiFiの設定を開いて、rpi4_routerが表示されていれば接続できます。




自作ルーターに複数のデバイスを接続して、任意のデバイスから他のデバイスにPing等を送信してみますと、Destination Host Unreachableといったエラーが返ってくることがあります。


このような時はルーター用のパソコンの設定を変更します。

$ cat /proc/sys/net/ipv4/ip_forward

でルーターがパケット転送(フォワーディング:forwarding)装置として動作するかどうかを調べ、

0

が出力された場合は、

$ sudo sysctl -w net.ipv4.ip_forward=1
# 設定の永続化
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf

を実行してパケット転送を許可します。

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
同じカテゴリーの記事
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。