Armadillo-IoT(G3L)をルーターのように動かす方法です。
ここでは、dnsmasqのDHCPサーバーとDNSキャッシュの機能を使って実現します。
ネットワーク構成
本手順は、下記構成でネットワーク端末からインターネットにアクセスすることを想定した例です。
ネットワーク端末--(有線LAN)--Armadillo-IoT(G3L)--(LTE)--インターネット
補足)
下記手順では、ネットワーク端末の有線LANのIPアドレスは、DHCPサーバーから自動取得する設定であることを想定しています。
Armadillo-IoT(G3L)のDHCPサーバーからネットワーク端末のIPアドレス(※)を自動的に与えるようになっています。
※)192.168.100.100~192.168.100.254
1. 必要なパッケージのインストール
Armadillo-IoT(G3L)をインターネット接続可能なネットワークに接続して、
下記コマンドで必要なパッケージをインストールしておきます。
root@armadillo:~# apt-get update root@armadillo:~# apt-get install dnsmasq
上記の手順で、インターネット接続可能なネットワークに有線LANを使った場合は、
パッケージのインストール後、有線LANケーブルの接続を外します。
(下記の手順にて、有線LANにはネットワーク端末を接続することを想定しているため。)
2. LTEの設定
下記コマンドでLTEの設定をします。(※)
root@armadillo:~# nmcli connection add type gsm ifname [ネットワークデバイス名] apn [APN] user [ユーザー名] password [パスワード]
※)下記の箇所を読み替えて実行してください。
[ネットワークデバイス名] → Armadillo-IoT(G3L)の場合は、ttyACM0
[APN] → 使用しているSIMのAPN
[ユーザー名] → 使用しているSIMのユーザー名
[パスワード] → 使用しているSIMのパスワード
3. 有線LANの設定
ethernet-eth0という名前で有線LANを設定します。
既にethernet-eth0で有線LANを使用中の場合は削除します。
root@armadillo:~# nmcli connection down ethernet-eth0 root@armadillo:~# nmcli connection delete ethernet-eth0
下記コマンドでethernet-eth0という名前で有線LANを設定します。
ここでは、Armadillo-IoT(G3L)の有線LANのIPアドレスは、192.168.100.1にします。
root@armadillo:~# nmcli connection add con-name ethernet-eth0 type ethernet ifname eth0 root@armadillo:~# nmcli connection modify ethernet-eth0 ipv4.method manual ipv4.addresses 192.168.100.1/24
4. dnsmasq(DHCPサーバー、DNSキャッシュ)の設定
4.1. /etc/dnsmasq.confの変更
/etc/dnsmasq.confの変更点
ファイル末尾に下記の記述を追加します。
listen-address=127.0.0.1, 192.168.100.1 interface=eth0 dhcp-range=192.168.100.100, 192.168.100.254, 12h
5. iptableを設定
下記コマンドでiptableを設定します。
(下記例では、SSH(22番ポート)、SSL(443番ポート)、DNS(53番ポート)を許可しています。用途に応じて設定します。)
root@armadillo:~# iptables -t filter -F root@armadillo:~# iptables -A INPUT -i usb1 -j DROP root@armadillo:~# iptables -A INPUT -i lo -j ACCEPT root@armadillo:~# iptables -A OUTPUT -o lo -j ACCEPT root@armadillo:~# iptables -I INPUT -i usb1 -p icmp -j ACCEPT root@armadillo:~# iptables -I INPUT -i usb1 -p tcp --dport 22 -j ACCEPT root@armadillo:~# iptables -I INPUT -i usb1 -p tcp --dport 443 -j ACCEPT root@armadillo:~# iptables -I INPUT -i usb1 -p udp --sport 53 -j ACCEPT root@armadillo:~# iptables -I INPUT -i usb1 -p tcp --dport 53 -j ACCEPT
6. ポートフォワードに設定
下記コマンドでポートフォワードに設定します。
root@armadillo:~# echo 1 > /proc/sys/net/ipv4/ip_forward root@armadillo:~# iptables -t nat -A POSTROUTING -o usb1 -j MASQUERADE
7. nameserverの追加
下記コマンドでnameserverを追加します。
root@armadillo:~# echo "nameserver 127.0.0.1" > /etc/resolv.conf.head
dnsmasqを再起動します。
root@armadillo:~# systemctl restart dnsmasq.service
以上の設定後、下記のような構成で、ネットワーク端末からインターネットに接続できます。
ネットワーク端末--(有線LAN)--Armadillo-IoT(G3L)--(LTE)--インターネット
補足)
上記手順では、ネットワーク端末の有線LANのIPアドレスは、DHCPサーバーから自動取得する設定であることを想定しています。
Armadillo-IoT(G3L)のDHCPサーバーからネットワーク端末のIPアドレス(※)を自動的に与えるようになっています。
※)192.168.100.100~192.168.100.254