Armadillo-IoT G3LでSORACOM Napterを使うまで

遠隔地のネットワークに外部からLTE接続で入ってきて，LAN接続で接続されてるサーバにSSHなりで入ってメンテナンスを行うのが目的．つまりG3Lは踏み台となる場合のセットアップおぼえがき


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310137/cd9e496b-d39f-a971-b267-c069a28b006c.png)

時間の経過や解釈により記載した内容とマニュアルとの齟齬が出てる可能性があるので，基本的にはマニュアルを参照してください．

https://users.atmark-techno.com/download/armadillo-iot-g3l?name=%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB+%E3%82%AC%E3%82%A4%E3%83%89

# 用意するもの

マニュアルに記載の通り
・SIMカード（microSIM）
・USBシリアル変換アダプタ(本体の付属品）
・母艦PC

を接続する．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310137/cb08fd43-d449-a94d-6e2c-0df7cb7c72dc.png)

# USBシリアル変換アダプタ接続上の注意
※USBシリアル変換アダプタのスライドスイッチが②の方向になってるか要確認

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310137/f5207a61-a5b7-e280-8457-05761fb3679c.png)


# シリアル接続で中に入ってみる
USBシリアル変換アダプタと母艦を接続し，下記設定でシリアルコンソールに接続する
- ボーレート：115200bps
- データ；8bit
- パリティ：なし
- ストップビット；1bit
- フロー制御：なし

イーサネットケーブルを接続したところ，DHCPでeth0のIPをもらえた．

```(console)
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:11:0c:1d:42:8b brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.19/24 brd 192.168.11.255 scope global dynamic eth0
       valid_lft 259169sec preferred_lft 259169sec
    inet6 fe80::8ef7:bb42:937:a706/64 scope link 
       valid_lft forever preferred_lft forever
3: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether b6:4c:bc:f7:4f:4e brd ff:ff:ff:ff:ff:ff
4: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
5: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1
    link/gre 0.0.0.0 brd 0.0.0.0
6: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
7: ip6_vti0@NONE: <NOARP> mtu 1500 qdisc noop state DOWN group default qlen 1
    link/tunnel6 :: brd ::
8: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
    link/sit 0.0.0.0 brd 0.0.0.0
9: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1
    link/tunnel6 :: brd ::
10: ip6gre0@NONE: <NOARP> mtu 1448 qdisc noop state DOWN group default qlen 1
    link/gre6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
11: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether 50:33:8b:f1:9d:ba brd ff:ff:ff:ff:ff:ff
12: usb1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:80:70:33:91:60 brd ff:ff:ff:ff:ff:ff
```

eth0でIPもらえたので，SSHをインストールする

```(console)
# su
# apt-get install openssh-server
```

# LTE接続してみる
下記コマンドを実行した．

```(console)
# nmcli connection add con-name gsm-ttyACM0 type gsm ifname ttyACM0 apn soracom.io user sora password sora
```

１分弱で接続される．
ステータスは下記コマンドで確認できる

```(console)
# nmcli device 
DEVICE    TYPE      STATE         CONNECTION  
ttyACM0   gsm       connected     gsm-ttyACM0 ←これ
wlan0     wifi      disconnected  --          
eth0      ethernet  unavailable   --          
usb0      ethernet  unavailable   --          
gretap0   gretap    unmanaged     --          
ip6gre0   ip6gre    unmanaged     --          
ip6_vti0  ip6tnl    unmanaged     --          
ip6tnl0   ip6tnl    unmanaged     --          
gre0      iptunnel  unmanaged     --          
sit0      iptunnel  unmanaged     --          
tunl0     iptunnel  unmanaged     --          
lo        loopback  unmanaged     -- 
```
※SORACOMのSIMの設定でCHAP認証入っている場合，ユーザとかパスワードが違うかもしれないので注意

無事，usb1にIPもらえた

```(console)
13: usb1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:80:70:33:91:60 brd ff:ff:ff:ff:ff:ff
    inet 192.168.15.178/24 brd 192.168.15.255 scope global dynamic usb1
       valid_lft 42957sec preferred_lft 42957sec
    inet6 fe80::c327:ff83:67a9:ec08/64 scope link 
       valid_lft forever preferred_lft forever
```

下記コマンドでLTE経由で出ていることを確認できる

```(console)
# curl http://taruo.net/e/ | grep host
host=XXX-XXX-XXX-XXX.soracom.io (XXX.XXX.XXX.XXX)
```

# LTEモジュールのファイアウォール無効化
LTEモジュール側にファイアウォールがあるとのことで，これを無効化する

>Howto : Armadillo-IoT G3L: LTE利用時のファイヤーウォール設定
>https://armadillo.atmark-techno.com/howto/armadillo-iot-g3l-lte-firewall

```(console)
# apt-get update
# apt-get install els31-utils
# els31-firewall-disable
# els31-firewall-get-status
```

ここで，

```(console)
# els31-firewall-get-status
Error: No modem response
```

とエラーが返ってくる場合があるが，その場合

```(console)
# wwan-force-restart
```

とした上で改めてファイアーウォールを無効にする事ができるとのこと．
ただし遠隔地に行ってしまった場合はそうも行かないので悩みどころ・・・

>LTEモジュールのFirewall無効化について
>https://users.atmark-techno.com/forum/armadillo/4096

# ネットワーク設定
有線LAN側（eth0／"Wired connection 1"）のデフォルトゲートウェイを使わず，LTE側から出ていってもらうように設定

```(console)
[armadillo]# nmcli connection modify "Wired connection 1" ipv4.never-default true
[armadillo]# nmcli connection down "Wired connection 1"
[armadillo]# nmcli connection up "Wired connection 1"
```
>LANケーブルが繋がっていると3G側から接続を受け付けない
>https://users.atmark-techno.com/node/2907#comment-4824

# SORACOMのユーザーコンソールから「オンデマンドリモートアクセス」を行う
「SIM管理」画面でSIMにチェック入れて，「操作」から選べます

<img width="242" alt="スクリーンショット 2020-02-12 2.24.52.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310137/37a36671-874d-8e36-b017-984f92f07cf8.png">

→つながった