LoginSignup
12
16

More than 5 years have passed since last update.

4GPiで固定IPアドレスSIMイプシムを使う

Posted at

メカトラックス様のラズベリーパイ用4G(LTE)通信モジュール「4GPi」で、グローバルIPアドレス固定割当の格安SIMイプシムを使ってみます。
4GPi.JPG

何ができるの?

有線LAN・無線LANが無い環境でも、外部からRaspberry Piを制御できます。

ポイント

  • Raspberry Piに直接グローバルIPアドレスが割り当てられます → APNを設定するだけ!
  • インターネット側からRaspberry Piに接続可能です → ufwで必要な通信のみ許可します

※デフォルトの状態で使うと危険です。必ずufwやiptablesの設定を行いましょう。
※メカトラックス提供のOSイメージを用いる場合は、予めufwが有効になっています。

準備するもの

ipsim.jpg

  • Raspberry Pi 3 Model B+など
  • ラズベリーパイ用4G(LTE)通信モジュール「4GPi
  • 適当な容量のmicroSDカード(4gpi-stretch-lite-20181029)
  • 固定IPアドレスMVNO「イプシム」標準SIM
  • モニタ・キーボード(または設定用PC+DHCPが有効な有線LAN)、ACアダプタ、ケーブルなど

4GPiと3GPiの違い

4GPi 3GPi
通信方式 4G(LTE)専用 3G専用
対応キャリア docomo/au/SoftBank docomo/SoftBank
ACアダプタ 別途用意1 付属
環境構築済みmicroSD 別途用意 付属
付属アンテナ 2本 1本

開封から接続まで

セットアップ(約15分)

4GPi_SIM.jpg

  1. microSDカードにOSイメージ(4gpi-stretch-lite-20181029)を書き込みます。
  2. Raspberry Piに4GPiを取り付け、4GPiにイプシムのSIMカードを取り付けます。
  3. Raspberry Piにモニタ・キーボードを接続します。なお、DHCPの割当状態が確認できる場合は、代わりに有線LANに接続し、Raspberry Piに割り当てられたIPアドレスを確認してください(ssh接続で作業できますので、モニタ・キーボードは不要です)。
  4. 起動します。

初期設定(約1分)

  1. Raspberry Piにコンソールまたはsshでログインします。
    ID・初期パスワードは配布元を参照してください。

  2. イプシムのAPNを設定します。
    プリセットはされていないので、イプシムのAPN情報設定します。

    sudo nmcli con add type gsm ifname "*" con-name ipsim.net apn 4gn.jp user sim@with password sim
    

接続確認(約3分)

4GPI_LED.jpg

  1. 4GPiの青色LED
    《高速点滅》

  2. 4GPiパッケージコマンド 4gpi-networkmanager

    4gpi-nm-helper
    $ 4gpi-nm-helper show default all
    4gn.jp sim@with sim
    

    →APN情報が正しいことを確認します。

  3. nmcliコマンド

    nmcli(1)
    $ nmcli con
    NAME                UUID                                  TYPE            DEVICE
    ipsim.net           8bb407b2-3054-42e2-b3e7-************  gsm             cdc-wdm0
    Wired connection 1  d0840652-664f-39d5-9623-************  802-3-ethernet  --
    
    nmcli(2)
    $ nmcli dev status
    DEVICE    TYPE      STATE        CONNECTION
    cdc-wdm0  gsm       connected    ipsim.net
    eth0      ethernet  unavailable  --
    wlan0     wifi      unavailable  --
    lo        loopback  unmanaged    --
    

    →DEVICEにcdc-wdm0が表示されること、STATEがconnectedになっていることを確認します。

  4. ifconfigコマンド

    ifconfig
    $ ifconfig -a
    eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether b8:27:eb:xx:xx:xx  txqueuelen 1000  (Ethernet)
            RX packets 2672  bytes 215165 (210.1 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1169  bytes 268537 (262.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 18  bytes 882 (882.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 18  bytes 882 (882.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
            ether ce:12:0f:96:95:60  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    wwan0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
            inet XXX.XXX.XXX.70  netmask 255.255.255.252  destination XXX.XXX.XXX.70
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
            RX packets 485  bytes 34644 (33.8 KiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 333  bytes 31991 (31.2 KiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    →wwan0にイプシムのグローバルIPアドレス(今回のSIMの場合はXXX.XXX.XXX.70)が割り当てられていることを確認します。ppp0ではありません。2

  5. netstatコマンド

    netstat
    $ netstat -nr
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         XXX.XXX.XXX.69  0.0.0.0         UG        0 0          0 wwan0
    XXX.XXX.XXX.68  0.0.0.0         255.255.255.252 U         0 0          0 wwan0
    

    →今回のSIMの場合はIPアドレスがキリのいい位置[^3]だっため/30扱いになっているようです。(/29以下になる場合もあると思います)

[^3]: IPアドレスの第4オクテットが.70で、/30の「中」に収まるため。

実際に接続してみる

Raspberry Piからインターネットに接続

  • pingなどで実際の接続や名前解決を確認します。

インターネット側からRaspberry Piに接続

  1. ufwのデフォルト状態を確認します。ppp0とwwan0は、INが全拒否となっています。[^4]

    ufw
    $ sudo ufw status numbered
    Status: active
    
         To                         Action      From
         --                         ------      ----
    [ 1] Anywhere on ppp0           DENY IN     Anywhere
    [ 2] Anywhere on wwan0          DENY IN     Anywhere
    [ 3] Anywhere (v6) on ppp0      DENY IN     Anywhere (v6)
    [ 4] Anywhere (v6) on wwan0     DENY IN     Anywhere (v6)
    

[^4]: /etc/default/ufwがDEFAULT_INPUT_POLICY="ACCEPT"に変更されているので注意しましょう。

  1. 接続元のグローバルIPアドレス(YYY.YYY.YYY.YYY)を確認し、許可設定を最上位に追加します。

    sudo ufw insert 1 allow from YYY.YYY.YYY.YYY to XXX.XXX.XXX.70 port 22 proto tcp
    
  2. ufwのstatusを再確認します。

    ufw
    $ sudo ufw status numbered
    Status: active
    
         To                         Action      From
         --                         ------      ----
    [ 1] XXX.XXX.XXX.70 22/tcp      ALLOW IN    YYY.YYY.YYY.YYY
    [ 2] Anywhere on ppp0           DENY IN     Anywhere
    [ 3] Anywhere on wwan0          DENY IN     Anywhere
    [ 4] Anywhere (v6) on ppp0      DENY IN     Anywhere (v6)
    [ 5] Anywhere (v6) on wwan0     DENY IN     Anywhere (v6)
    
  3. 実際に手元のPCからインターネット経由でRaspberry Piにssh接続してみます。
    LTE通信のため、3G通信と比較して圧倒的に高速・低レイテンシで使えるようになりました!

  4. 後は、ufwに必要な許可設定を追加します。

Raspberry PiからRaspberry Piに接続

  • 同一構成を2つ以上用意すると、4GPi⇔4GPi間の接続も可能です。

最後に

メカトラックス提供のOSイメージを使うと、ufwがインストール済みで、WAN側(固定IPアドレス側)はデフォルトでping応答以外は無効となっているため、比較的安全にインターネット側からRaspberry Piを制御可能な環境が出来上がります。ping応答も無効にしたい場合は、以前の3GPiの投稿を参考にしてください。
3GPiより高速な通信が可能になったことはもちろん、何よりも低レイテンシが嬉しいですね!


  1. 今回は5V/2.4AのACアダプタを用いてRaspberry Pi 3 Model B(B+ではありません)のmicro USBへの給電だけでも動作しましたが、メカトラックスさんによると4GPi用のACアダプタ(12V/2A/内径2.1mm)やslee-Piの使用を推奨とのことです。4GPi側にACアダプタを接続すると、Raspberry Pi側にも給電できます。(Raspberry Piのmicro USBへの給電が不要になります) 

  2. raspberrypi-kernelの更新でwwanが使用できるようになったとのことです。 

12
16
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
12
16