5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ラズパイとAndroidスマホでルーター作った

Posted at

Androidスマホをラズパイでルーターつくった

引っ越しを控え、現宅のフレッツ光の移設手続きをしていたのですが、諸事情で1ヶ月以上回線が引けない状況になりました。
仕方ないので、ルーターを自作します。

USBテザリングを有線LANに変換させてみた

Androidスマホで有線LANテザリングが出来るとベストなのですが、あいにく手元に対応しているスマホがありませんでした。
結果、RaspberryPiでブリッジしてあげることで、これを実現しました。

環境

  • SHARP SH-M05 (Android 9)
  • RaspberryPi Model2B
  • 楽天モバイル(楽天回線)

やり方

USBテザリングを、ラズパイの有線LANポートとブリッジする事で実現しました。
具体的には、SH-M05が、USBテザリングのEnable/DisableでUSBデバイスIDが変わることをトリガーとして、udevを使いブリッジをコントロールします。

Clients ---> [[eth0]-[br0]-[usb0]] ---> [Android 9] ---> The Internet(Rakuten Mobile MNO)

LinuxからのSH-05のみえかた

DebianにSH-05を接続した際、以下のように認識されています。

root@raspberrypi:~# lsusb | grep Sharp
Bus 001 Device 007: ID 04dd:9ba2 Sharp Corp. SHM05

USBテザリングを有効にしたところ、デバイスIDが変化しました。

root@raspberrypi:~# lsusb | grep Sharp
Bus 001 Device 008: ID 04dd:9b9e Sharp Corp. SHM05

デバイスIDは、それぞれのモードの固定値のようで、再現性がありました。

また、USBテザリングを有効にした際、usb0という名前のNICが認識されており、DHCPでIPアドレスを取得しています。

実装

interfaces

interfaces内で、内蔵NIC(eth0)をメンバーとしたブリッジbr0を作っておきます。

bash /etc/network/interfaces.d/br0
auto br0
iface br0 inet dhcp
       pre-up /sbin/brctl addbr br0
       pre-up /sbin/brctl addif br0 eth0
       pre-up /sbin/ifconfig eth0 up

udev

USBテザリングを有効にした際のベンダーID:デバイスIDをトリガーとして、ブリッジのコントロールを行います。
ここでは、1つのトリガーに対し複数の処理をしたい為、いったん任意のシェルスクリプトを呼び出すことにします。

/etc/udev/rules.d/01-android.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="9b9e", ATTR{type}=="1", RUN="/root/bin/add.br0.sh"
SUBSYSTEM=="net", ACTION=="remove", DRIVERS=="?*", ATTRS{idVendor}=="04dd", ATTRS{idProduct}=="9b9e", ATTR{type}=="1", RUN="/root/bin/remove.br0.sh"

デバイス接続時

br0usb0をアタッチし、DHCPでアドレスを取得させます。
L2ブリッジだけが目的なのでdhclientの意味はありませんが、メンテナンスをする際などに必要でしょう。

/root/bin/add.br0.sh
#!/bin/bash
dhclient -r
brctl addif br0 usb0
sleep 1
dhclient br0

デバイス切断時

接続時とは逆に、DHCPCdを終了させ、usb0をデタッチします。

/root/bin/remove.br0.sh
#!/bin/bash
dhclient -r
brctl delif br0 usb0

使ってみた感想

1週間ほど使ってみているですが、思ったより安定しています。
ただ、所詮はLTEなホームルーターと変わり無いので、過剰な期待はしない方が良いかと思います。

おわりに

今回、フレッツ光が1ヶ月以上の開通待ちとなり、レンタルWiFiを借りるのも惜しいので、手持ちのモノで作ってみました。
レンタルWiFiと違い、安くて、無線APも好きなモノがつかえますし、VLANもVPNも好きに出来るので、玄人にはなかなか良いのではないでしょうか。

コロナがきっかけで、築50年の築古マンションへ引っ越ししようとしています。
安くて広くて、Hackのし甲斐もあり、なかなかに楽しいです。 笑

Happy Hacking!!

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?