今回は、RaspberryPiでAndroidスマホのUSBテザリングを利用する、というちょっと変則的なことをやってみます。
ついでに、テザリングを利用して有線LANも含めた、家庭内ネットワーク全体でテザリングを利用できるように、
RaspberryPiをルーター化する方法も説明していきます。
ex1.1.RaspberryPiでAndroidスマホのUSBテザリングを利用する
実は、USBテザリングだけであれば案外簡単で、
RaspberryPiにAndroidスマホを接続したうえでUSBテザリングを有効にすればすんなり認識します。
後は、「/etc/network/interfaces」に以下のように追記すればOKです。
auto usb0 allow-hotplug usb0 iface usb0 inet dhcp
(「usb0」という名称は場合によって異なることがあるので、「ifconfig」コマンドを実行して確認しておくのがベター)
ex1.2.家庭内ネットワーク全体でテザリングを利用する
こっちの方はちょっと面倒です。
1.「ifmetric」をインストール
「ifmetric」はインターフェイスに優先順位をつけることができるようになるパッケージで、
これを利用して、外部への接続を家庭内ネットワークよりもテザリング側を優先させます。
「ifmetric」は以下のコマンドでインストールできます。
sudo apt-get install ifmetric
2.「/etc/network/interfaces」を編集
ifmetricによる優先順位をつけるために、
「/etc/network/interfaces」を以下のように編集します。
allow-hotplug eth0 iface eth0 inet static address (RaspberryPiに割り当てるIPアドレス) netmask (ネットワークのネットマスク) metric 1 auto usb0 allow-hotplug usb0 iface usb0 inet dhcp metric 0
3.「/etc/sysctl.conf」を編集
デフォルトでは、IPフォワード機能は無効になっているので、
「/etc/sysctl.conf」を以下のように編集し、IPフォワード機能を有効にします。
#net.ipv4.ip_forward=1 ↓ net.ipv4.ip_forward=1
4.iptablesの設定変更
filterテーブルのFORWARDチェーンに、ルールを追加し、
natテーブルのPOSTROUTINGチェーンに、出ていくパケットのソースIPを書き換えるルールを追加します。
sudo iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE sudo iptables -A FORWARD -i usb0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i eth0 -o usb0 -j ACCEPT
2.5.の通り、iptablesの設定の変更後は以下のコマンドで設定を記録しておくこと。
sudo iptables-save | sudo tee /etc/iptables/rules.v4
5.接続チェック
RaspberryPiを再起動し、LAN側から接続しきちんと接続できるかチェックします。
デフォルトゲートウェイはRaspberryPiに割り当てたIPアドレスにセットします。