【OpenWrt】USB接続でRakuten WiFi Pocketを使う

  • 投稿 : 2021-05-19
自己責任で!!

WZR-HP-G301NH
OpenWrt 19.07.7

Rakuten WiFi Pocket
R310_V3.19_20210302

上記で確認しました

参考にした記事

OpenWrtでRakuten WiFi PocketをUSB接続で使う - Qiita
https://qiita.com/konosuke/items/ed30775dd85704e0b1af

パッケージの追加

opkg update
opkg install usb-modeswitch
cat /sys/kernel/debug/usb/devices
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=19d2 ProdID=1557 Rev= 1.01
S:  Manufacturer=DEMO,Incorporated
S:  Product=DEMO Mobile Boardband
S:  SerialNumber=1234567890ABCDEF
C:* #Ifs= 3 Cfg#= 1 Atr=c0 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=06 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=(none)
E:  Ad=87(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=125us

Vendor=19d2 ProdID=1557がRakuten WiFi Pocketだと思われます。

opkg install kmod-usb-net-cdc-ether
dmesg | grep cdc_ether
root@OpenWrt:~# dmesg | grep cdc_ether
[ 1400.825067] cdc_ether 1-1:1.0 eth2: register 'cdc_ether' at usb-ehci-platform-1, ZTE CDC Ethernet Device, 34:4b:50:00:00:00
[ 1400.836665] usbcore: registered new interface driver cdc_ether
root@OpenWrt:~#

メッセージから、物理インターフェースがeth2であるこことを確認

※環境によって違うと思います

インターフェースの追加

uci set network.wwan=interface
uci set network.wwan.ifname='eth2'
uci set network.wwan.proto='dhcp'
uci set network.wwan6=interface
uci set network.wwan6.ifname='eth2'
uci set network.wwan6.proto='dhcpv6'
uci commit network

uci add_list firewall.@zone[1].network='wwan'
uci add_list firewall.@zone[1].network='wwan6'
uci commit firewall

/etc/init.d/network restart
/etc/init.d/firewall reload

wwan(eth2),wwan6(eth2)が追加されてるのを確認できます

この状態で、LANに接続した機器からインターネットができます。ただしIPv6は無理なようです。IPv4で問題ないのなら、この状態でも使えると思います。

IPv6対応

なにをやってるのか、私には理解できません。参考にした記事そのままです。

「ND Proxy」を使ってるようです。

uci add_list network.lan.ip6addr="$(uci get network.globals.ula_prefix | cut -d'/' -f 1)1"
uci delete network.lan.ip6assign
uci commit network

uci set dhcp.wwan='dhcp'
uci set dhcp.wwan.interface='wwan'
uci set dhcp.wwan.ignore='1'
uci set dhcp.wwan.ndp='relay'
uci set dhcp.wwan.ra='relay'
uci set dhcp.wwan.master='1'

uci set dhcp.lan.dhcpv6='server'
uci set dhcp.lan.ndp='relay'
uci set dhcp.lan.ra='relay'

uci add_list dhcp.lan.dns="$(uci get network.lan.ip6addr)"

uci commit dhcp

/etc/init.d/network restart
/etc/init.d/odhcpd restart

https://test-ipv6.com/index.html.ja_JP

ちゃんと想定通りに設定されてるかどうかは、上記で確認可能です。

動画での説明

スポンサーリンク