Huawei WiMAX 2+モデムをLinuxで使う

in Uncategorized

ローカルネットワーク環境

自宅のインターネット回線はISDNに始まりADSL、光、ときてここ数年はWiMAXを使っています。 WiMAXは現在移行期で、従来のWiMAXからWiMAX 2+という新規格に置き換えられつつあります。 ちょうど契約の更改時期がきましたので、先月末に発売されたばかりのWiMAX 2+最新鋭モデムhttp://consumer.huawei.com/jp/support/products/technicalspecs/w01-jp.htm[Huawei Speed Wi-FI NEXT W01](以下W01)を使う接続サービスに乗り換えることにしました

自宅では24時間Linuxサーバー(現在はUbuntu Server 14.04 LTS)を稼動させていて、インターネットとのゲートウェイはそのLinuxマシンが担当しています(このマシンはファイルサーバーでもあり、また過去にはkawauso.com自身であったこともあります)。 今回はゲートウェイの設定はそのままに、インターネットとの接続をW01へと置き換えます。

さてLinuxサーバーにW01をつなげるわけですが、その接続方法は大きくわけると次の3つになりました。

  • クレードルを使ってネットワークケーブルで接続する

  • USBで接続する

  • ブリッジモードにしてUSBで接続する

この記事では上記3つの接続方法を順番に見ていくことにしましょう。 なお参考のために、つなげた結果のネットワークが全体としてどのようになるかネットワーク図で示しておきます。

localnetwork

クレードルを使ってネットワークケーブルで接続する

WiMAXのモデムの主流はいわゆるモバイルモデムで、W01もモバイルモデムであり、それゆえに通信インターフェースはUSBまたはWiFiとなっています。 そのかわりWiMAXのモバイルモデムは別途クレードルといわれる専用のスタンドが用意されていることが多く、クレードルからイーサネットのネットワークケーブルを使って接続できる場合もよくあります。 W01も別売の専用クレードルがありネットワークケーブルを用いてLinuxサーバーと接続し通信することができます。 この接続方法の場合、Linux側はつなげるネットワークインターフェースに対してDHCPクライアントを設定しておくだけでよいでしょう。

$ cat /etc/network/interfaces
...
auto eth1
iface eth1 inet dhcp
Note
W01のクレードルのUSB端子の方には注意が必要です。 ここは本体のUSB端子と違って通信に使うことができませんでした。 充電専用のようです。 最初、つないだのに通信できない理由がわからずハマりました。

USBで接続する

W01本体をUSBでLinuxに接続すると以下のように認識されました。

$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 011: ID 12d1:1f01 Huawei Technologies Co., Ltd.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

上記 Bus 001 Device 011: ID 12d1:1f01 Huawei Technologies Co., Ltd. と認識されてはいますが、実はこの状態ではモデムではなくCD-ROMドライブとして認識されています。 これはW01のUSBがWindowsやMacにつなげられることを想定されていて、その際まずCD-ROMとしてつながり(Windowsのオートランなどにより自動的に)デバイスドライバーがインストールされ、そのドライバーにより改めてモデムと認識されるという親切設計、Linuxにとっては迷惑設計^^;になっていることによるようです。

対処としてCD-ROMドライブからモデムにモードを切り換えるために usb-modeswitch パッケージを導入して設定します。

# aptitude install usb-modeswitch
# tar xzf /usr/share/usb_modeswitch/configPack.tar.gz 12d1:1f01
# mv 12d1:1f01 /etc/usb_modeswitch.d/

Linuxを再起動して再度見てみましょう。

$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 011: ID 12d1:14db Huawei Technologies Co., Ltd.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

以前 ‘ID 12d1:1f01′ だったところが ‘ID 12d1:14db’ になりました。 これでモデムとして認識されているはずです。 起動メッセージを確認してみましょう。

$ dmesg
...
[   14.141065] usb 1-1: USB disconnect, device number 2
[   14.521195] usb 1-1: new high-speed USB device number 3 using ehci-pci
[   14.660383] usb 1-1: New USB device found, idVendor=12d1, idProduct=14db
[   14.660398] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[   14.660406] usb 1-1: Product: HUAWEI_MOBILE
[   14.660413] usb 1-1: Manufacturer: HUAWEI_MOBILE
[   14.729942] cdc_ether 1-1:1.0 eth1: register 'cdc_ether' at usb-0000:00:12.2-1, CDC Ethernet Device, 58:1f:28:XX:XX:XX
[   14.731076] usbcore: registered new interface driver cdc_ether
...

無事にネットワークインターフェース eth1 に割り当てられたようです。 このようにUSB接続といっても Ethernet over USB である CDC や、以前の経験だと RNDIS などが用いられていて、Linuxにも普通にネットワークデバイスとして認識され接続されるようです。 怖れることないですね!

あとは前記の方法と同様にDHCPクライアントを設定しておけばよいでしょう。

ブリッジモードにしてUSBで接続する

W01には面白い機能としてブリッジモードというのがありました。 前記2つの方法で接続するとLinuxのネットワークインターフェースにはIPアドレスの `192.168.100.100/24′ あたりが割り当てられることと思います。 これはモデムとLinuxの(モデムのWi-Fiへ接続している機器があればそれらも含む)間にローカルネットワークが形成されていることを意味します。 それに対してブリッジモードはモデムの外側のネットワーク(プロバイダによってグローバルネットワーク)をそのまま内側へつなぎます。

実際にモデムのコントロール画面からブリッジモードに変更してLinuxにつないでみましょう。

$ ifconfig eth1
          ...
          inet addr:106.155.X.X  Bcast:106.155.X.X  Mask:255.255.255.255
          ...

(IPアドレスは部分的にXで伏せてあります) 直にグローバルアドレスが割り当てられています。 モデムのルーティング処理をはさまない分通信が早くなるようで、実験したところPINGの値などが1,2割改善するようです。

ただこれはインターネットに直につながっていますので、この設定する際はLinux側に事前にファイヤーウォールを構築しておくなどセキュリティ確保に十分配慮する必要があります。 そのような知識が無いうちはブリッジモードでつなぐことは非常に危険です。 またもしかしたらブリッジモードでない方がトータルで良い可能性も0ではありません(W01の方がルーターやDHCPクライアントとしてプロバイダーとの相性がよいなどなど)。

Note
ブリッジモードでは最初からモデムとして認識されるようですのでusb-modeswitchは不要になります。
Note
ブリッジモードではWifiとUSBを含め1つでも接続が成立した機器があればその他はつながらなくなる仕様のようです。 つまり何かのタイミングで既につなげたことのあるWifi機器が復活して先につながってしまうと、USBではつながらなくなってしまいます。 ブリッジモードを使う際は余計な機器の接続が復活することがないようそれらの設定を全て削除しておく必要があると思われます。

まとめ

現在のところ上記の3番目の方法で1週間ほど運用しています。 接続の安定性など今後いろいろ検証していきたいと思っています。 ではでは〜。

Leave a Reply

*