Raspberry Pi 2 から SORACOM Beam を使ってみる
SORACOM Air を Raspberry Pi 2 & L-03D で動かしてみる - fagoken’s diary の続き。
SORACOM Beam の Getting Started を試してみる。ほぼ、書いてある手順通りで echo サーバに telnet できたので、それ以外の部分のみ書きます。
必要な通信だけ SORACOM Air を経由させる
SORACOM Air は従量課金されてしまうので、通信費をケチるための検証環境向けのネットワーク設定です。
Raspberry Pi の LAN ポートに有線 LAN が接続されていて、有線側からインターネットへ疎通している前提です。まず、 Raspbeery Pi のデフォルトルートは有線 LAN 側に向けておきます。もし、DHCP で IP アドレスをもらっているなら、すでに設定されているはずです(route コマンドで確認できます)。次に、SORACOM Air 経由で通信したいホスト(今回の場合は beam.soracom.io)の IP アドレスを、ppp インターフェースの静的経路として設定します。これで、beam.soracom.io 向けの通信だけ、SORACOM Air 経由になります。なお、beam.soracom.io に紐付いている IP アドレスが変更された場合は、再度静的経路を設定する必要があります。
注意点としては、DNS サーバの設定です。SORACOM Air で ppp 接続を確立した際に設定される、SORACOM の DNS サーバ (169.254.0.53,169.254.1.53) は SORACOM Air 経由からしかアクセスできないようです。このため、 /etc/resolv.conf を編集して、"nameserver 8.8.8.8" (もしくは、DHCPでもらった有線LAN側のDNSサーバ)が一番上に来るよう書き換えます。これで無事名前解決までできるようになります。
この設定にしておけば、apt-get など通常の通信は有線LAN経由になるのでダウンロードが早いです。また、Raspbian のデフォルト設定だと、何もしていなくても NTP など余計な通信を送受信してしまうのでこのネットワーク設定にしておくと安心です。
※ 前回のブログの設定でデフォルトルートをSORACOM Airにしていたので削除する pi@raspberrypi ~ $ sudo route del default ※ 有線 LAN 側のゲートウェイをデフォルトルートに設定する pi@raspberrypi ~ $ sudo route add default gw 192.168.0.1 pi@raspberrypi ~ $ sudo route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0 192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 pi@raspberrypi ~ $ ping beam.soracom.io PING beam.soracom.io (169.254.254.169) 56(84) bytes of data. pi@raspberrypi ~ $ sudo route add 169.254.254.169 dev ppp0 ※ ここで 169.254.254.169(beam.soracom.io) 向けの通信は、ppp0 (SORACOM Air) 経由で 送信するよう静的経路を設定している pi@raspberrypi ~ $ telnet 169.254.254.169 8023 Trying 169.254.254.169... Connected to 169.254.254.169. Escape character is '^]'. Hello Soracom Beam Client IMSI:xxxxxxxxxxxxxxx ! Soracom Beeeeeeeeeeeeeam!!!!! Soracom Beeeeeeeeeeeeeam!!!!! Hello World Hello World