BBルータ解剖
 
NTT-ME MN9300

個人的な雑感

なんと言っても、ギガビット対応でしょうか。今となっては、ポツポツと ギガビット対応ルータが発売されていますが、MN9300 発売直後は、 ほとんど存在していなかったので、覚えています。
デザインは MN8300 を継承したものですが、少し落ち着きがなくなった感じが します。2004.9.22

OEM 元

ファームウェアを見るとわかるのですが、MN8300 と同じ Sumitomo Electric Networks のようです。これは、 GapNAT 対応と いうことからもわかります。 この MN9300 はファームウェア内で [MegaBit Gear MR1012] と記述されています。 MN8300 は MR1010 でしたので、型番が少しあがっています。しかし、 住友電工ネットワークスのページには該当製品は存在しないので、 OEM 向けの 製品と思われます。


OS と CPU

OS は VxWorks のようで、バージョンは VxWorks5.5 です。CPU は Intel の IXP422 で XScale のアーキテクチャです。


アップデートファームの取り出し
ファームウェア : Ver.1.02

このページから Ver.1.02 の ファームウェアをダウンロードします。9300v102.exe ファイルを解凍すると FMR1012_0102X.dlm というファイルになります。 このファイルからイメージファイルを取り出します。コマンドにすると

dd if=FMR1012_0102X.dlm of=image.gz bs=1 skip=32

です。この取り出したファイルは gzip 形式ですので、 gunzip などで解凍します。 すると、 vxWorks.bin というファイルが取り出すことができます。

これ以上は分解することが出来なかったので、あとは strings コマンドなどで 眺めます。ファイルの概要は、以下のような感じです。

VxWorks5.5
FMR1010_0102X
Fri Sep 10 13:43:54 JST 2004
Copyright(c) 1998-2004 Sumitomo Electric Networks, Inc.

中の漢字コードは珍しく EUC なので、バイナリエディタなどで眺めるときは、 切り替えましょう。
中のファイル構成は、ざっと以下の感じです。
.
|-- dram
|   |-- cgi-bin
|   |   |-- debugcmd.cgi
|   |   |-- ftestcmd.cgi
|   |   |-- main.cgi
|   |   |-- syscmd.cgi
|   |   `-- voip_setup.cgi
|   |-- help
|   |-- htconf
|   |   |-- HTTPD.PID
|   |   |-- STATUS
|   |   |-- access.cnf
|   |   |-- htpasswd
|   |   |-- httpd.cnf
|   |   |-- httpd.err
|   |   |-- httpd.trc
|   |   |-- mime.typ
|   |   `-- srm.cnf
|   |-- htdocs
|   |   |-- cgi_in
|   |   |-- cgi_out
|   |   |-- choice.html
|   |   |-- index.htm
|   |   `-- wan.html
|   `-- icons
|       |-- help_squ.jpg
|       |-- linea.jpg
|       |-- squ1.jpg
|       |-- squ2.jpg
|       |-- spot.jpg
|       `-- title.jpg
`-- tmp
    `-- logs
        |-- dhcp.log
        |-- error.log
        |-- ntpc.log
        |-- system.log
        `-- warning.log
このファイルの中から、 httpd.cnf と思われる内容のファイルを、下に 記します。
<Directory /dram/htdocs>
AllowOverride None
AuthUserFile /dram/htconf/htpasswd
AuthName Config
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
order deny,allow
deny from all
allow from all
</Directory>

<Directory /dram/cgi-bin>
AllowOverride None
AuthUserFile /dram/htconf/htpasswd
AuthName Config
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Options None
</Directory>

<Directory /dram/help>
AllowOverride None
AuthUserFile /dram/htconf/htpasswd
AuthName Config
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Options None
</Directory>

<Directory /dram/icons>
AllowOverride None
AuthUserFile /dram/htconf/htpasswd
AuthName Config
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>
Options None
</Directory>
mbg-g3:dc28804800605860
Port		80
ServerName	MegaBitGear
application/x-httpd-cgi		cgi
image/gif			gif
image/jpeg			jpeg jpg jpe
image/png			png
text/html			html htm HTM
text/plain			txt
DocumentRoot	/dram/htdocs
DefaultType	text/plain
Alias		/icons/		/dram/icons/
Alias		/help/		/dram/help/
ScriptAlias	/cgi-bin/	/dram/cgi-bin/
ScriptAlias	/voip_setup.cgi	/dram/cgi-bin/voip_setup.cgi
ErrorDocument	401		<H2>Not Authorized!</H2>
Please try to login with "root" as the user name and its password you set to the system.
ErrorDocument	403		Requested page not found.
ErrorDocument	404		Requested page not found.

どうやら、デバッグ用の cgi があるようです。動作するのか確認はしていませんが、 そこで telnetd が動くみたいです。デバッグコマンドの詳細は以下の感じです。

/cgi-bin/debugcmd.cgi?cmd=menuメニュー表示
/cgi-bin/debugcmd.cgi?cmd=mbglogmbglog表示
/cgi-bin/debugcmd.cgi?cmd=mbglog+clearmbglogクリア
/cgi-bin/debugcmd.cgi?cmd=exclogexclog表示
/cgi-bin/debugcmd.cgi?cmd=debugpppPPPログ状態表示
/cgi-bin/debugcmd.cgi?cmd=debugppp+onPPPログON
/cgi-bin/debugcmd.cgi?cmd=debugppp+offPPPログOFF
/cgi-bin/debugcmd.cgi?cmd=telnetdtelnetd起動状況表示
/cgi-bin/debugcmd.cgi?cmd=telnetd+ontelnetd起動
/cgi-bin/debugcmd.cgi?cmd=syslogsyslogの表示

さらに、工場テスト用コマンド、なるものが存在するようです。動作の確認は していませんが、以下のコマンドがあります。

/cgi-bin/ftestcmd.cgi?cmd=menuメニュー表示
/cgi-bin/ftestcmd.cgi?cmd=reboot機器再起動
/cgi-bin/ftestcmd.cgi?cmd=linereboot回線再接続
/cgi-bin/ftestcmd.cgi?cmd=dodsptestDSPテスト実行
/cgi-bin/ftestcmd.cgi?cmd=dopingtestPINGテスト実行
/cgi-bin/ftestcmd.cgi?cmd=dooamtestOAMテスト実行
/cgi-bin/ftestcmd.cgi?cmd=getdlmverDLMバージョン表示
/cgi-bin/ftestcmd.cgi?cmd=gettestresultテスト結果表示
/cgi-bin/ftestcmd.cgi?cmd=getspeed回線速度表示
/cgi-bin/ftestcmd.cgi?cmd=getattspeed最大速度表示
/cgi-bin/ftestcmd.cgi?cmd=getdhcpsDHCP状態表示
/cgi-bin/ftestcmd.cgi?cmd=dothermotest温度センサーテスト実行
/cgi-bin/ftestcmd.cgi?cmd=ftestreboot工場テスト設定で機器再起動
/cgi-bin/ftestcmd.cgi?cmd=doescheckESチェック

システムコマンド、なるものも存在するようです。動作の確認は していませんが、以下のコマンドがあります。

/cgi-bin/syscmd.cgi?cmd=menuメニュー表示
/cgi-bin/syscmd.cgi?cmd=ieee8023IEEE8023パケット送信状態表示
/cgi-bin/syscmd.cgi?cmd=ieee8023+onIEEE8023パケット送信ON
/cgi-bin/syscmd.cgi?cmd=ieee8023+offIEEE8023パケット送信OFF
/cgi-bin/syscmd.cgi?cmd=date現在時刻表示(時刻セット:cmd=date+YYYY+MM+DD+hh+mm+ss)

面白そうなコマンドがあります。 telnetd が動作するようでしたら、 CUI でルータの設定ができそうな感じです。


Team Yokohama X-VACCINE
もどる