概要
Raspberry Piで富士ソフトのUSBモデム FS01BUなどを使いSORACOM Airの3G通信(PPP接続)ができます。その際、 Raspberry PiにLANケーブルまたはWi-fiドングルを接続して、LAN上のイーサーネット(有線)かWi-fi(無線)に接続しつつ作業している場合が多いのではないでしょうか (少なくともRaspbianインストール後の仕込みの時点ではPPPでサーバ接続+LANでラズパイにSSH接続というというシチュエーションがよくある)。
デフォルトゲートウェイの設定によってはサーバやクラウドへの接続がLAN経由になって肝心のSORACOM AirによるPPP接続が使われていないことがあります。
この記事では、デフォルトゲートウェイを確認しデフォルトゲートウェイを切り替えPPP接続を優先させる手順を示します。
#手順 【前提・確認】
FS01BUなどをRaspberry Piに差します。Wi-fiドングルやイーサーネットケーブルが接続された状態でRaspberry Piを立ち上げてターミナルで操作を行います。ターミナルはRaspberry Pi直接でも、LAN接続されたPCのターミナル画面でも構いません。
ifconfig
でネットワーク接続のデバイスを確認します。
$ ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:XX:XX:XX
inet addr:192.168.1.96 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe1f:7d6c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9934 errors:0 dropped:0 overruns:0 frame:0
TX packets:775 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:929803 (908.0 KiB) TX bytes:72810 (71.1 KiB)
lo …(中略)…
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.205.163.61 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:46 errors:0 dropped:0 overruns:0 frame:0
TX packets:57 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:3172 (3.0 KiB) TX bytes:3161 (3.0 KiB)
イーサーネット(有線)接続のインターフェース・デバイス名(以下「デバイス名」と呼びます)がeth0
、SORACOM Airの3G通信(PPP接続)のデバイス名はppp0
になっています。
Wi-fiドングルでWi-fi(無線)接続をしている場合、デバイス名はwlan0
などになっているでしょう。
次に、netstat -r
コマンドで現在のルーティングテーブルを確認します。
$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
Destination(受信先サイト)
列がdefault
になっている行に着目します。
Destination Gateway Genmask Flags MSS Window irtt Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Iface(インタフェース)
列がeth0
になっており、インターネットにアクセスする場合eth0
のゲートウェイ(=ルータのこと)経由で接続されます。これをPPP接続経由に変更したいと思います。
#手順 【デフォルトゲートウェイの切り替え】
route del
コマンドでeth0
デバイスのデフォルトゲートウェイの削除を行い、route add
コマンドでppp0
デバイスのデフォルトゲートウェイの追加を行います。
$ sudo route del default dev eth0
$ sudo route add default dev ppp0
route del
コマンドで既存のデフォルトゲートウェイの削除を行った後、route add
コマンドで新たなデフォルトゲートウェイの追加を行う手順を行う必要があります。
その後、netstat -r
コマンドで変更後のルーティングテーブルを確認します。
$ netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default * 0.0.0.0 U 0 0 0 ppp0
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
またDestination(受信先サイト)
列でdefault
になっている行に着目します。
Destination Gateway Genmask Flags MSS Window irtt Iface
default * 0.0.0.0 U 0 0 0 ppp0
Iface(インタフェース)
列がppp0
になっていればデフォルトゲートウェイが変更され、PPP接続経由に変更されています。
#手順 【Wi-fi(無線)接続での切り替え】
Wi-fiドングルでWi-fi(無線)接続をしている場合、デバイス名はwlan0
などになっているので、以下のコマンドを打つことになります。
$ sudo route del default dev wlan0
$ sudo route add default dev ppp0
#接続確認
デフォルトゲートウェイの表示で確認は取れていますが、実際に接続して確認を取ってみたいと思う方は、traceroute
コマンドで適当なサイトを指定してみればいいでしょう。
$ traceroute www.yahoo.co.jp
traceroute to www.yahoo.co.jp (xxx.xx.xx.xxx), 30 hops max, 60 byte packets
1 ec2-yyy-yy-yyy-yyy.ap-northeast-1.compute.amazonaws.com (yyy.yy.yyy.yyy) 366.993 ms (以下略)
現時点(2015年11月時点)では最初のホップが、EC2の東京リージョンのIPアドレスになっていればOKです。インターネットへはSORACOM Airの3G通信(PPP接続)を経由して接続されています。
#参考サイトURL
-
Linuxルーティング追加
Linuxでのルーティングテーブルの設定方法を様々なシチュエーションから取り上げられています。 -
SORACOM Airで色々と検証してみる。
株式会社マイニングブラウニーの得上さんが、SORACOM AirのアクセスするIPアドレス周りをイロイロ調べられています。
では、SORACOM AirでIoTをお楽しみください