V110M、MCX(WMCE54AG)のころの話です。現在はこちら

旧 光回線への道 2005年1月〜11月

三田でADSL試験サービスを使ってきた私ですが、引っ越して武蔵境、 そして与野に。 ずっとフレッツADSLでしたが、与野では公団がDION光化さればんざい、 けどやっぱりVDSLは光とは呼べないよなー、 と思って枕をよだれで濡らす日々が続いてきました… がそれも昨日までの私。 武蔵境に出戻りついに光回線を自宅に引くことに成功しました。 今日からはおしゃれな気分できれいに歩こう!

事前調査なしで工事には1人でやってきました。 作業ツールと手順がこなれてきたんでしょうか。 家のPF管に通線通して問題ないことを確認したら電柱で作業開始。
家から一番近くの電柱になぜか光クロージャ(末端)があります。 駅から10分と離れていないんですが 半径100mにあるクロージャはここだけだったりします。 このあたりはケーブルテレビを引き込んである家が多く 需要がなさそうなのはわかるんですが、なぜここに? さては私が引っ越してくるから引いておいたね?(違
作業は中に8分岐スプリッタらしきものを設置してました。 融着装置使っていたように見えなかったのでメカニカル接続でしょうか。 8/32占有!と思ってましたが、 すぐに工事されて小規模マンションまで青い線が引かれました。 マンションまで100m以上あり、 すぐ近くに別の光クロージャがあるんですが、光スプリッタの価格って高い?

あとは家まで引っ張って、分界箱でメッセンジャメンバがもぎ取られ、 通線をたぐって配管を通して、 メカニカルスプライスでケーブル付SCコネクタと接続して、 ONUに接続しておしまい。 屋内配線シングルモードファイバ(0.25mm心線)は黒色で、 クリーム色と違い引込み線共用の対候性のあるやつです。 信号レベルは…子守りしていて聞くの忘れました。(笑
ONUが置いてあるクローゼットから各部屋へのPF管にはCAT6を2本通しています。 何気ない写真ですが、 ワイド21では3連の1穴あきパネルや3穴あきパネルがないので、 自分で穴をあけますた。面倒ですた。
現在のメインマシンはSumicom S625Fです。 ルータとしても使用しているため常時電源ONです。 横にあるのは旧静音マシンですが電源が壊れて静音じゃなくなったので除去予定。
食事室にあるテレビにはMCXと4th MediaチューナとPS2がぶらさがっています。

ハイパーファミリーの要、GE-PON ONU<M>Aは三菱電機のAS-1000GNです。 下り1490nm、上り1310nmの1Gのデマンド時分割多重ですが、 LAN側は「公称」100BASE-TXです。 電源はONUの表記で11V0.9A、実測で8.25Wです。 FPGAが多用されているのでまだまだ改良の余地ありそうですな。
802.3ahチップはPassaveのPAS6001-B、 通信プロセッサにfreescaleのMPC852TVR50、 メモリがエルピーダのEDS1232AATA-75(16MB)、 フラッシュが富士通のMBM29DL322BE-90PFTN(4MB)、 グルーロジックにALTERA EPM3256ATC144-10です。 ギガビット光送受信変換にTIのTNETE2201B、 転送バッファとしてIDTの71V546-S133PF(128kx36bit)が2つ、 制御ロジックとしてALTERA EP1C20F400C6、 イーサネット側変換にALTERA EP1C12F256C6、 そしてイーサネットPHYにVITESSEのVSC8201RX…なんと1000BASE-T対応です。
現状ではギガビットハブにつないでも100Mでしかリンクアップしませんし、 無理矢理リンクアップさせても局側かISPで制限されるのか100M以上出ませんがねー。 ひかり電話ルータがギガ対応していない以上、 NTTとしてはギガを謳うわけにはいかないんでしょうけど。

ひかり電話ルータは沖電気製のWebcaster V110-Mです。 FT-STC-Va/gを刺して無線LAN親機として使っていますが、 ルータとしては使っていませんし、IPv6ブリッジも無効です。
プロセッサは私が大好きな Intel IXP425BC(400MHz) … こんなところで姿が拝めるとは。 フラッシュがIntelのTE28F128J3C-120(16MB)、 メモリがSumsungのK4S281632F-TC75が2つで32MB、 CardbusにTIのPCI1510、 イーサネット兼ハブにMarvellの88E6063-RCJです。
V110M起動時にPPPoEでguest@tk000155にログインし、 PPPoEのIPCPで一時的にIPアドレス(172.16.254.XXX)が割り振られます。 その後PPPoE上でhttp://add-con.mcas/ に以下の内容をPOSTします。

CompanyCode=&ServiceCode=&ControlCode=&TerminalID=008087XXXXXX
TerminalIDはMACアドレスです。すると以下の内容が戻ってきます。
ResultCode=0000
ip_addr=172.20.83.XXX
netmask=30
gateway=172.20.83.XXX
dest_nw_addr=220.210.59.0/22&220.210.63.0/24&220.210.32.0/24&220.210.33.0/22
sipsv_addr=220.157.32.1
sipsv_port=5060
regsv_addr=220.157.32.1
regsv_port=5060
sip_domain=220.157.32.1
username=
password=
ip_tel_num=0422XXXXXX
area_code=0422
url_update=http://www.cpeinfo.jp/
dscp=32
rtpport1=5004
rtpport2=5007
この後、PPPoEは切断され、V110MのWANポートにIPアドレスが振られ、 IPv4で直接通信が行われます。あとは通常のSIP/RTPの動作になり、 PPPoEは使われません。 このときのIPv4ルータはPPPoE ACとは違うCiscoルータです。 (なおファームアップデート時には通常のプロバイダ経由のPPPoEが必要です。) RTPのDSCP値は32なのでPowerConnect 2724では DSCPモードに設定すれば優先されます。 しかしフレッツ回線上のIPv4をこんなださい方法で使うとは… IPv6でやったほうが美しいと思うんだけどなあ。

沖電気製のStreaming Player (Pure Mate 100)、 中はSetaBox STB301です。 CPUはGeode SC1100UFH-233、 メモリはICSI IC42S16800-7Tが4つで64MB、 ビデオはPhilipsのPNX1302EH(200MHz)、 VRAMはIC42S16400-6Tが2つで16MB、 ネットワークはRTL8100Bです。 ATAコネクタにはシリコンディスク(32MB)が載ってます。 まんまAT互換機でつまらないですね。Linux2.4.22が載っているそうですが。 MCXにはDSPも無線もSecureチップも載っていて楽しいのに。
Flets.net契約をしていると150秒おきにRouter advertisementが来ますが、 30秒おきにPIMv2 SM helloメッセージ、 120秒おきにMLDv2 query (reportも) が PPPoE ACと同じCiscoのルータからやってきます。 StreamingPlayerは起動時にRouter Solを流してIPv6アドレスを割り付け、 2001:c90:6e00:1206::1をDNSサーバとして、 http[s]://www.4media-tv.flets.netにてメニュー表示を行っています。 フォーカス移動などはJavaScriptで制御していますが、 リモコンを押した時の反応もにぶく、 リモートデスクトップ技術を用いているMCXと大差ありません。 ビデオオンデマンドの場合は直接UDPで配信を受けます。 レートは公称4.2Mbps、フレーム含んだ帯域実測で約4.7Mbps、 まあまあだけど色分解能が低いです。16bit/pelなんでしょうか? テレビ放送の場合はMLDv2 reportを流して マルチキャスト受信をincludeし、終わるとexcludeします。 受信アドレスはff38::100で共通ですが、 送信アドレスはチャンネル別になっています。 レートはビデオオンデマンドとほぼ同じなのですが、 なぜかブロックノイズ多くて結構つらいです。

WMCE54AG、海外から届きました。基板は筐体面積の半分でこちらは電源内蔵です。 CPUはATI 215H25AGA1.3(XILLEON 225)…MIPSコアでビデオ周りも含んでいます。 メモリはHYUNDAI HY5DU281622が4つで64MB、 フラッシュはSAMSUNG K9F2808U0C(16MB)と MX 29LV040QC(512KB)が載ってます。 あとANALOG DEVICESのDSP ADSP-BF533が載っていて、 メモリはSAMSUNG K4S281632F(16MB)です。 ATMELのSecureAVR、AT98SC3232CSなんてのも載ってます。 ネットワークはRTL8101Lと、無線はA/G対応のMini-PCIドータが載ってます。 なんつーか想像よりもずっと重いハードであります。 XILLEONにはMPEGデコードも載っているはずなのでDSPは何しているんでしょうか?
CE5.0が使われているはずなんだけど、ライセンスラベルがどこにもないし、 なんていうかCEの香りが全然しないんですよねー。
Media Center Extenderという追加ソフト(たぶん全てのMCXで共通)を Media Center Edition 2005に導入するんだけど このときにアクティベート必要(PC3台まで可)です。 導入すると、MCE2005の設定にもともとあったリモートデスクトップがなくなりますが、 リモートデスクトップそのものは可能です。 ちなみにPC2台でMCE+MCExtenderの構成でも リモートデスクトップではテレビ再生不可でした。
対応する機器の認識は、MCXに表示された8桁のキー(乱数で都度生成)を、 ホストの登録時に指定すると、 ホストがネットワークからそのキーを持つMCXを探して登録、 みたいになります。 この時にMCXの固有情報がホストに渡るみたいで、 一度登録するとMCX側で完全に電源を落としても再度接続されます。 UPnP利用かと思ったらupnp:rootdeviceには無反応ですね。 なお、dhcpサーバがなく自動アドレスでも到達できない場合、 登録時にMCXのIPアドレスを指定します。 なお、ホスト1台に複数のMCXクライアントを 登録できるみたいですが詳細不明です。
テレビ視聴の転送スピードは800Kbyte/secほど必要みたいです。 802.11bでもつながりますが、 電波状況がGood程度では自動的に音声優先の紙芝居転送になります。 ホストがPen3-600MHz/256MBだと、 メモリはともかくCPU使用率が60%程度になってちょっとつらいものがあります。 レジストリかXMLでレートさげられそうですけど。



せっかくだから、俺はこのMCXと会社のMCEをフレッツ・ドットネットでつなぐぜ、 ということでRT57iあたりなら4over6トンネルあるし ひかり電話もv4アドレス振れば使えるしでいうことなさそうですが、 残念ながらMCXは同一セグメント内(レイヤ2転送)じゃないとだめなので、 自宅側はWin2003上のopenvpnクライアント+portproxyでIPv6に変換し、 それを会社側のLinux上の6tunnel経由でIPv4にしてopenvpnサーバで受けます。
LinuxはWoodyでIPv6とtapとbridgeを有効にしたカーネルに入れ替えます。 再起動すると、

# ifconfig -a
eth0      ...
          inet6 addr: 2001:c90:1:2:3:4:5:6/64 Scope:Global
          inet6 addr: fe80::207:aaaa:bbbb:cccc/10 Scope:Link
...
といった具合にONUに直接刺しているポートにipv6グローバルアドレスが振られます。 Flets.NETのアドレスは2001:c90で始まるものです。
# apt-get install bridge-utils
# ifdown eth1
# vi /etc/network/interfaces
...
#comment#auto eth1
#comment#iface eth1 inet static
auto br0
iface br0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        bridge_ports eth1
...
# ifup br0
まずeth1をbr0経由に組み込みます。 dhcpやdnsサーバは起動時にインターフェースを列挙するので、 /etc/default/dhcpの修正や再起動をおこなってください。 MCXの動作にはdhcpが必要です。
次にopenvpnをインストールし、設定ファイルを作成してopenvpnサーバを起動します。 なお/etc/openvpnに書いた設定ファイルは起動時に自動実行されます。
# lynx http://www.backports.org/debian/dists/woody/openvpn/
# dpkg -i openvpn_1.99+hogehoge_i386.deb                    インストール
# cd /etc/openvpn
# openvpn --genkey --secret ipv6.key                        暗号化キー作成
# vi ipv6.conf
cd /etc/openvpn
secret ipv6.key
proto tcp-server
port 5556
dev tap
ping 10                                                     keepaliveは動作せず?
ping-restart 180
up "bash -c 'brctl addif br0 $1;ifconfig $1 up' -"          UP時にbr0につなげる
down-pre
down "bash -c 'brctl delif br0 $1' -"                       DOWN時にbr0から削除
# /etc/init.d/openvpn start
最後にipv6:5555への接続をローカルのipv4:5556に振りなおします。
# apt-get install 6tunnel                                   インストール
# /usr/bin/6tunnel -64 5555 localhost 5556 >/dev/null 2>&1  同一ポートはエラー?
起動時に6tunnelが実行されるように/etc/init.dのどっかに つっこんでおいてください。

次にクライアント側。openvpn Windows版をインストールして、 portproxyでローカルの5555に接続されたら ipv6経由でサーバの5555につなぐように設定します。

C:\>netsh
netsh>interface ipv6 install
netsh>interface portproxy add v4tov6 listenport=5555 connectaddress=2001:c90:1:2:3:4:5:6
あとは以下のファイルipv6.ovpnをconfigurationディレクトリ内に作成し、 サーバで作成したipv6.keyも置きます。
secret ipv6.key
remote 127.0.0.1
port 5555
proto tcp-client
dev tap
ping 10
ping-restart 60
ファイルを選んでStart openvpn on this fileで起動して 接続できることを確認したら、 サービスのOpenvpnを自動起動に設定すると起動時に接続されます。 あとは、ネットワークのプロパティからtapデバイスとMCXのネットワークを選んで、 ブリッジするだけです。 この後、MCXの電源を完全に落とし、MCXを再登録すると、 問題なくMCXが使えます。
ipv6のフィルタは当面侵入されないでしょうからのんびり設定してください。 ip6tables -A INPUT -s fe80::/10 -j ACCEPTは開けておかないと ルータ通知が受け取れません。 NTT側CISCOルータのアドレス(route --inet6で表示、 Windowsならnetsh interface ipv6 show routes)だけ許可してもいいです。 XP SP2ではipv6 firewallや匿名アドレスが標準で有効、 2003はnetsh interface ipv6のset interface firewall= や set privacy、 SP1ではIPv6フィルタリングも提供されます。
サーバ側はLinuxなしでもMCE上にopenvpnを載せてもいいし、 ならSoftetherが簡単だとか、 でもopenvpnはUDP-ipv6パッチ適用すればUDPでも通信可能だとかありますが、 まあこれでプロバイダ料金なしに東京の放送を北海道で楽しめたりするかもしれない、 ということですね。 回線スピードが10Mbit/sぐらいあればMCX側はADSLでもイケルかもしれません。