Network ManagerのWireGuardでSORACOM Arcへ
この記事では、reTerminal(ラズパイ互換)をWireGuardでSORACOM Arcに繋ぎました。
Network Manager管理下のほうが、いろいろ操作しやすそうで、また、Network ManagerにWireGuard機能があるみたいなので、Network ManagerのWireGuardでSORACOM Arcに繋がるか確認しましょう。
Network Managerをインストール
過去記事のとおり、dhcpcd.serviceを止めてnetwork-managerをインストールすればOK。
ただし、reTerminalの場合はちょっと問題が。
Network ManagerにWireGuard機能(WireGuard VPN tunnels)が追加されたのが1.16ですが、現時点、reTerminalにプレインストールされているRaspberry Pi OSはbusterベースでsudo apt install network-manager
でインストールされるNetwork Managerが1.14.6と古いです。
pi@raspberrypi:~ $ nmcli --version nmcli tool, version 1.14.6 pi@raspberrypi:~ $
そこで、reTerminalに最新のRaspberry Pi OS(これはbullseyeベース)をインストールして、reTerminal用のドライバを適用した後、sudo apt install network-manager
でNetwork Managerをインストールしました。これだと1.30.0になります。
pi@raspberrypi:~ $ nmcli --version nmcli tool, version 1.30.0 pi@raspberrypi:~ $
現時点、reTerminalにbullseyeベース+ドライバだと、LCDの向きが正しく設定されない不具合があります。
SORACOM Arc(WireGuard)の接続を追加
WireGuard向けの設定ファイルを適当なディレクトリに置いて、インポートします。ファイル名の拡張子は.conf
にしないとエラーになりました。また、ファイル名がそのままがそのまま接続名/デバイス名になるので、ちゃんとした名前にしておきましょう。(ここではsoracom.confとしました。)
soracom.conf:
pi@raspberrypi:~ $ sudo nmcli connection import type wireguard file soracom.conf Connection 'soracom' (24dc6dcb-ac5b-4811-a372-88f12eb900b3) successfully added. pi@raspberrypi:~ $
SORACOMとの通信確認
ルーティングテーブルに100.127.0.0/16
が追加されていて、ちゃんとpong.soracom.io
にpingが通りました。
pi@raspberrypi:~ $ nmcli connection NAME UUID TYPE DEVICE Wired connection 1 5724be1c-797d-33a4-b191-add1cbcebbbf ethernet eth0 soracom 24dc6dcb-ac5b-4811-a372-88f12eb900b3 wireguard soracom pi@raspberrypi:~ $ ip r default via 192.168.1.1 dev eth0 proto dhcp metric 100 100.127.0.0/16 dev soracom proto static scope link metric 50 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.105 metric 100 pi@raspberrypi:~ $ ping pong.soracom.io PING pong.soracom.io (100.127.100.127) 56(84) bytes of data. 64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=1 ttl=64 time=18.3 ms 64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=2 ttl=64 time=18.2 ms
おまけ
nmcli connection import
した結果、接続情報は/etc/NetworkManager/system-connections/xxx.nmconnectionファイルに保存される。ファイルパーミッションは600。
PrivateKeyもここに保存される。