事前準備
今回は、ラズパイに「Ubuntu Server」をインストールして「LTEルータ」を構築することにしました。
準備するもの
- 「SIMカード」
- LTEドングル「PIX-MT100」
- 作業用に使用する「Windows PC」
SIMカード
今回は「インターリンクSIM」を契約しておきました。
「PIX-MT100」のセットアップ
Windowsの端末などを使って、セットアップを行います。
設定の際には、SIMカードと発行されているAPN情報などが必要になりますので、揃えておいてください。
管理画面にログイン
「PIX-MT100」をWindows PCに差し込み、ドライバが自動でインストールされるのを待ちます。
インストールが完了したら、ブラウザを立ち上げ、「192.168.0.1」と入力して「Enterキー」を押します。
「ユーザー名」と「パスワード」を入力して、管理画面にログインします。
http://www.pixela.co.jp/products/network/pix_mt100/support.html#manual
モデム設定(APN設定)
ログインで来たら、「設定」>「モデム設定」を開きます。
ここで、差し込んでいるSIMカードの「APN設定」を入力します。
【必要な情報】(全て、発行されたSIMと一緒に情報が届きます。)
- 「APN」
- 「認証タイプ」
- 「ユーザー名」
- 「パスワード」
入力が完了したら、「適用」をクリックして反映させます。
固定IPアドレスの割り当て
「PIX-MT100」のUSBを接続した時に、固定のIPアドレスが割り当てられるように設定をします。
「PIX-MT100」をWindows PCに差し込んでいる状態で、コマンドプロンプトを立ち上げ、「ipconfig /all」コマンドを実行します。
ipconfig /all
コマンドを実行すると、「イーサネット アダプター」の項目で、「Remote NDIS based Internet Sharing Device」が表示されると思います。この中の、「物理アドレス(MACアドレス)」の項目を控えておきます。
「PIX-MT100」の管理画面に戻り、「設定」>「DHCP設定」を開きます。
「固定 IP 設定」の項目を開くと、IPアドレスとMACアドレスを指定できるので、割り当てたいIPと先ほど控えた「物理アドレス(MACアドレス)」を入力の上、「有効」にチェックを入れて「適用」をクリックします。
「PIX-MT100」の再起動が行われるので、完了したら、再度「ipconfig /all」を打って、IPアドレスが変わったことを確認します。
ipconfig /all
ポートフォワーディング設定
続いて、ポートフォワーディングの設定を行います。
画像の通り、ソフトイーサで必要なポートとL2TP接続もできるように、UDPの「500」「4500」も開放しておきます。
「LAN IPアドレス」は先ほど割り当てたIPを入力します。全てに「有効」のチェックを入れて「適用」をクリックします。
設定が完了したら、「PIX-MT100」をPCから取り外してラズパイに差し込んでおきます。
「Raspberry Pi」の設定
次は、ラズパイの設定をかけていきます。
「ssh」などを使って、アクセスしてください。
「Raspberry Pi」インターフェースの「IPアドレス」を割り当てる
IPアドレスが固定になっていない場合は、運用面を考えて先に固定IPに変更しておきます。
「50-cloud-init.yaml」を複製して
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/99-manual_config.yaml
「99-manual_config.yaml」を編集。
sudo nano /etc/netplan/99-manual_config.yaml
こんな感じで直して、任意のIPアドレスを割り当てます。
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
addresses:
- 192.168.0.254/24
nameservers:
addresses: [192.168.0.254, 8.8.8.8]
search: []
routes:
- to: default
via: 192.168.0.254
metric: 100
割り当てが完了したら、以下のコマンドを実行して、IPアドレスの変更を反映させます。
sudo netplan apply
適用したら、「ip a」コマンドで変更されているかだけチェックをしておきます。
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:eb:4e:0e:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.254/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
ちゃんと反映されていました。
指定したIPアドレスになっていればOKです。
「PIX-MT100」インターフェースの「IPアドレス」を割り当てる
次は、「PIX-MT100」側のインターフェースにIPアドレスを割り当てます。
「PIX-MT100」はルータ機能を持っているので、ラズパイの「netplan」の設定をDHCPにしておけば自動で割り当てられます。
まずは、「PIX-MT100」をラズパイ本体に差し込みます。
「lsusb」コマンドを実行して、「Gemtek WLTUBA-107 [Yota 4G LTE]」ドライバが認識されていることを確認。
(「PIX-MT100」のものではないですが、互換があるドライバらしくこれでOK。)
$ lsusb
Bus 001 Device 006: ID 15a9:002d Gemtek WLTUBA-107 [Yota 4G LTE]
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
次に「ip a」コマンドで、「インターフェース名」を確認します。
「lo」はラズパイ内蔵ののインターフェースのことで、「eth0」はイーサネットを指すそうです。
上記以外のインターフェースを探します。
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:eb:4e:0e:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.254/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.0.106/24 metric 100 brd 192.168.0.255 scope global secondary dynamic eth0
valid_lft 85342sec preferred_lft 85342sec
valid_lft forever preferred_lft forever
3: enx1e497b83ce50: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 1e:49:7b:83:ce:50 brd ff:ff:ff:ff:ff:ff
筆者の環境では、3番目の「enx1e497b83ce50」が「PIX-MT100」のインターフェース名でした。
こちらをコピーしておきます。
再度、「99-manual_config.yaml」を編集します。
sudo nano /etc/netplan/99-manual_config.yaml
先ほどかけた設定に加えて、控えておいたLTEドングルのインターフェース名を追加し、DHCP取得にしておきます。
ゲートウェイは自分自身を指定します。
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
addresses:
- 192.168.0.254/24
nameservers:
addresses: [192.168.0.254, 8.8.8.8]
search: []
enx1e497b83ce50:
dhcp4: true
dhcp4-overrides:
route-metric: 0
optional: true
完了したら、以下のコマンドを実行して、再度IPアドレスの変更を反映させます。
sudo netplan apply
IPアドレスが割り当てられているか、「ip a」コマンドで再度チェックしてみます。
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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,PROMISC,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:eb:4e:0e:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.0.254/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
3: enx1e497b83ce50: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 1e:49:7b:83:ce:50 brd ff:ff:ff:ff:ff:ff
inet 172.16.0.254/24 metric 100 brd 172.16.0.255 scope global dynamic enx1e497b83ce50
valid_lft 604712sec preferred_lft 604712sec
「172.16.0.254」というIPアドレスが割り当てられていることをチェックできました。
これで完了です。
「ping」のテスト
外部に通信ができるか、Googleにpingを飛ばしてみます。
正常に飛んでいればインターネット疎通がとれていることを確認できます。
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=5.68 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=7.34 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=6.14 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=58 time=5.93 ms
「ルーティングテーブル」の確認
確実に、「PIX-MT100」を経由して契約したSIMからインターネットに接続させるために、ルーティングを確認します。
「route -n」コマンドで、現状の確認をします。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.16.0.1 0.0.0.0 UG 0 0 0 enx1e497b83ce50
172.16.0.0 0.0.0.0 255.255.255.0 U 0 0 0 enx1e497b83ce50
172.16.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 enx1e497b83ce50
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
筆者の環境では上記のように表示されました。
「Metric」の値が「0」に近いほど優先度が高く、数字が大きくなると優先度が下がります。
先ほど、「99-manual_config.yaml」ファイルでそれぞれのメトリックを調整したため、上記のような設定になっています。
network:
version: 2
ethernets:
eth0:
dhcp4: false
dhcp6: false
addresses:
- 192.168.0.254/24
nameservers:
addresses: [192.168.0.254, 8.8.8.8]
search: []
enx1e497b83ce50:
dhcp4: true
dhcp4-overrides:
route-metric: 0 #「enx1e497b83ce50」からの通信をメトリック「0」にして優先順位を上げる。
optional: true
上記のようにしておくことで、「LTEドングル」から優先して外部抜ける経路を指定できるようになります。
「traceroute」で「LTEドングル」から外部へ出られるか確認
メトリックの設定がちゃんと動作するか、「traceroute」コマンドを使い、テストをしてみます。
「PIX-MT100」を経由して、契約したSIMからインターネットに抜けているかを確認します。
まずは、「traceroute」コマンドを使うためにインストールします。手順はこちらをご覧ください。
インストールが完了したら、試しに「Google」に飛ばしてみます。
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 4GModem (172.16.0.1) 0.873 ms 0.824 ms 0.830 ms
2 X.XX.XXX.XXX (X.XX.XXX.XXX) 27.303 ms 27.165 ms 27.018 ms
# -- 省略 --
ちゃんと、LTEドングル側のNW(172.16.0.1)を経由して、SIMのグローバルIP経由で外部に接続しているのがわかりました。
上記のように確認ができればOKです。
「DHCPサーバ」の構築
あとは、ラズパイのNICと接続して、インターネットに抜けられるかをチェックできればOKです。
その際に、IPを手動入力するのは面倒なので、「DHCPサーバ」を構築する場合は、以下の手順を進めてください。
以上で「LTEルータ」の構築は完了です!