ブログ

Armadillo-IoT:ルーターとして使用してみた

at_kazutaka.bito
2016年1月28日 14時42分

Armadillo-IoTをルーターにして、

 PC--(LAN)--Armadillo-IoT--(3G)--インターネット

のような構成で、Armadillo-IoT経由で、PCからインターネットにアクセスできることを確認してみました。

1.Armadillo-IoTで3Gでインターネットに接続できることを確認

下記手順においては、Armadillo-IoTで3Gでインターネットに接続できていることを前提としています。

3Gの設定方法については、 Armadillo-IoT ゲートウェイスタンダードモデル製品マニュアル 6.2.5. 3G を参考にしてください。

2.コンフィギュレーションの設定

Armadillo-IoTで、iptablesのMASQUERADEを使って、IPアドレスを変換します。 ただ、iptablesのMASQUERADは、デフォルトのコンフィギュレーションでは有効になっていないので、make menuconfigコマンドでユーザーランドコンフィギュレーションを設定します。(下記★の箇所)

[atde ~]$ cd atmark-dist
[atde ~/atmark-dist]$ make menuconfig
-----------------------------------------------------------------
Userland Configuration
Network Application
[*] iptables
(略)
[*]   MASQUERADE //★デフォルトでは空白になっているので、*をつける
-----------------------------------------------------------------

3.ビルド

手順4以降で、ビルド済みのromfsに追加するようになっていますので、makeコマンドで、一度ビルドしておきます。

[atde ~/atmark-dist]$ make

4.dnsmasqをインストール

Armadillo-IoT: dnsmasqをインストールするを参考に DNSキャッシュサーバーとDHCPサーバーとして利用できるdnsmasqをインストールします。

なお、上記リンク先で使用している環境は、古いバージョンですが、 今回は、
・Linuxカーネル:linux-3.14-at5
・Atmark Dist:atmark-dist-20151218
・ATDE:atde5-amd64-20151218
で確認しました。

Armadillo-IoT: dnsmasqをインストールする
 依存ライブラリのインストール
 dnsmasqのインストール
 dnsmasqの起動スクリプトを修正
 ユーザーランドイメージの作成
に従って、イメージファイルを作成します。

5.Armadillo-IoTのイメージの更新

手順4で作成した、カーネルとユーザーランドイメージをArmadillo-IoTに書きこんで再起動します。

6.Armadillo-IoTをDHCPサーバーとする

下記の手順にあたり、Armadillo-IoTの有線LAN(インターフェース名: eth0)のIPアドレスは192.168.101.1としておきます。 Armadillo-IoTの/etc/config/interfacesの

iface eth0 inet dhcp

の行を

iface eth0 inet static
        address 192.168.101.1
        netmask 255.255.255.0

に変更して、flatfsd -sでROMに保存します。

Armadillo-IoT: DHCPサーバーとして利用する
 dnsmasqの設定を行う
 dnsmasqの起動
 iptablesの設定変更
を行います。

備考)当方の確認では、dnsmasq start実行時に

[root@armadillo-iotg (ttymxc1) ~]# /etc/init.d/dnsmasq start
Starting DNS forwarder and DHCP server: dnsmasq
dnsmasq: failed to bind DHCP server socket: Address already in use
 failed!

というメッセージが出ましたが、以降の手順では支障がなかったため無視しました。

これにより、LANのIPアドレスの取得の設定をDHCPサーバーから取得するように設定したPCを、

 PC--(LAN)--Armaillo-IoT

のように接続すると、
 Armadillo-IoTのLANのIPアドレス:192.168.101.1
 PCのIPアドレス:192.168.101.xxx
 (xxxは、Armadillo-IoTのDHCPサーバーから100から200の間が与えられます。)
となります。

7.Armadillo-IoTをDNSキャッシュサーバーとする

Armadillo-IoT: DNSキャッシュサーバーとして利用する の  iptablesの設定変更 を行います。

8.Armadillo-IoTをNATとする

下記のコマンドを実行して、NATの設定を行います。

[root@armadillo-iotg (ttymxc1) ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@armadillo-iotg (ttymxc1) ~]# iptables -t nat -A POSTROUTING -o umts0 -j MASQUERADE

9.動作確認

PCのLAN以外通信機能をOFFにして、PCとArmadillo-IoTとLANで接続して、 PCのWebブラウザのURLの欄で、ドメイン名(例えば、www.atmark-techno.com)を指定すると、www.atmark-techno.comのページが見えることを確認しました。