IoTサービス連携 (PIX-MT100/100 + Raspberry Pi)

LTE回線と有線・無線LANを併用する

PIX-MT100/110 のLTE回線と LAN(有線LAN・無線LAN)を併用している場合、デフォルトではLAN側が優先され、LTE回線側にパケットが送信されません。
ここでは、静的ルート設定を追加して、IIJ IoTサービス向けのパケットをLTE回線経由で送信できるように設定してみます。

設定前

ifconfig を実行します。LAN (eth0) とLTE (usb0) のネットワークインターフェースが存在します。
なお、無線LANを使用している場合は、以降すべて eth0 の部分を wlan0 と置き換えてください。

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.10.10.10  netmask 255.255.254.0  broadcast 10.10.10.255
        ether 00:00:00:00:00:00  txqueuelen 1000  (イーサネット)
        RX packets 3046  bytes 253826 (247.8 KiB)
        RX errors 0  dropped 1424  overruns 0  frame 0
        TX packets 165  bytes 30964 (30.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
(中略)
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.200  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 11:11:11:11:11:11  txqueuelen 1000  (イーサネット)
        RX packets 10  bytes 1257 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 36  bytes 5011 (4.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

routeコマンドを実行し、現在の経路設定を確認します。 eth0 側の経路が優先されていることが確認できます。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.10.10.1      0.0.0.0         UG    202    0        0 eth0
default         192.168.0.1     0.0.0.0         UG    203    0        0 usb0
10.10.10.0      0.0.0.0         255.255.254.0   U     202    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     203    0        0 usb0


経路設定を行う

ここで、以下のような設定を追加します。

  • IIJ IoTサービス向けのアドレス帯へのパケットは usb0 に送る。それ以外は eth0 に送る。
  • eth0 側の DNSは参照せず、usb0 側のDNSのみを参照する。


  1. dhcpcd.conf を修正し、usb0側のデフォルトゲートウェイ設定の削除と、eth0側のDNS参照先の削除を行います。

    sudo nano /etc/dhcpcd.conf

    最下行に以下を追加して保存します。

    interface eth0
    static domain_name_servers=
    
    interface usb0
    static routers=
  2. 静的ルート設定を行います。

    sudo nano /lib/dhcpcd/dhcpcd-hooks/60-staticroute

    以下の内容を記述して保存します。

    #!/bin/sh
    /sbin/ip route add 10.64.2.0/24 via 192.168.0.1
  3. 再起動します。

    sudo reboot
  4. 再起動後、IoTサービスのホスト向けにpingが届くことを確認します。

    ping -c 4 gw.iot.iij.jp


デバイスコントロール・デバイスリンクを使用するためのポートフォワード設定

IIJ IoTサービスでは、LTE回線を経由してデバイスを遠隔で操作することができる デバイスコントロール機能 ・ デバイスリンク機能 を提供しています。
しかし、PIX-MT100/1100 はルーターの役割をしているため、そのままでは Raspberry Pi側が直接パケットを受け取ることができません。
ここでは、PIX-MT100/110 のポートフォワード機能を使用して、LTE回線向けのパケットを Raspberry Pi に転送する設定を行います。

usb0 の固定IPアドレス化

PIX-MT100/110 でポートフォワード設定する際は、転送先のIPアドレスとポートを指定します。そのため、Raspberry Pi側のIPアドレスがDHCPで割り振られると都合がよくありません。そのため、usb0 のIPアドレスを固定化します。

  1. dhcpcd.conf を修正します。

    sudo nano /etc/dhcpcd.conf

    interface usb0 の設定に、固定IPアドレス(192.168.0.201/24) とDNS設定を追加し、ファイルを保存します。

    interface usb0
    static ip_address=192.168.0.201/24
    
    static domain_name_servers=192.168.0.1
  2. 再起動します。

    sudo reboot
  3. 再起動後、IPアドレスが指定したものになっているかを確認します。

    ifconfig usb0
ポートフォワード設定
  1. Raspberry Pi の画面からWebブラウザを開くか、 PIX-MT100/110 を別のPCに挿して、そのPC上でWebブラウザを開きます。
  2. ブラウザから http://192.168.0.1/ を開きます。
  3. ユーザー名・パスワードを入力してログインします。
  4. 画面上の「ネットワーク」→「ポートフォワーディング」を選択します。
  5. ポートフォワードの設定を入力します。

    例えば、ssh(22番ポート)の接続を Raspberry Pi 側に転送したい場合は、以下のように入力します。

    プロトコルWANポートLANポートLAN IPアドレス
    TCP2222192.168.0.201
  6. 画面上の「適用」ボタンを押し、設定を保存します。
デバイスコントロール ・デバイスリンク設定

IoTサービスのコントロールパネルより、デバイスコントロールやデバイスリンクの設定を行ってください。
設定手順については、以下のページを参照してください。