
XIT-AIR100Wを
設置して
設定まで済ませました。
動作的にはピクセラの
商品説明の動作を問題なくこなしています。
が、設定の際にルータの設定を変更しなくても外部から簡単に接続できるなど、気になる点が浮かんできました。
万人向け製品としては、難しい設定などしなくても簡単に設置・運用ができるという点は素晴らしい利点かと思います。
が、その昔からネットワーク関係の設定に苦しめられてきた技術屋から見ると、何の説明もなく自分のネットワーク環境から自由に出入りできる存在の製品は不気味以外の何者でもありません。w
今回はXIT-AIR100Wの動きをパケットキャプチャして調べてみようというお話です。
解析には次の機器を使用しました。
・ポートミラーリング機能付きのスイッチングHUB
・
Wiresharkの動くPC
XIT-AIR100WへのLAN配線をポートミラーリング機能付きのスイッチングHUBで中継します。
XIT-AIR100W側のLANポートをミラーリングして、PCのLAN端子に接続します。
これでXIT-AIR100WのEtherNet通信内容が全てPCで確認可能になります。
Etherパケットのキャプチャ・解析にはWiresharkを使用します。
●まずは、電源投入時のXIT-AIR100Wの動きです。
主な動きは次の4点
①電源投入直後にDHCPを使って自IPアドレスの取得
②マルチキャストIPアドレスグループに参加
③ドメインbr3103.stationtv.netのIPアドレス 54.248.225.95 をDNSから取得
④取得したIPアドレスから、br3103.stationtv.netと何やらやりとり開始
①に関しては予想どおりというか、②をするためにもルータや同一セグメント内の機器とIP通信をするためにも必要な作業です。
今回は「192.168.128.130」というIPアドレスをDHCPサーバから取得しています。
取得したIPアドレスを使って、マルチキャストIPアドレスグループ「239.255.255.250」に参加します。
これでマルチキャスト通信が使えるようになるわけですが、これは設定・視聴アプリである Xit wireless にて、同一セグメント内に存在するチューナーを探す際に使用されます。
次に br3101.stationtv.net なるドメインですが、おそらくこれはピクセラが運営しているインターネット上に存在するサーバです。
54.248.225.95 を whois してみましょう。
54.248.225.95 は ARIN の管轄IPアドレス範囲になりますので
ARIN で検索します。
Organization Amazon.com, Inc.
Net Range 54.248.0.0 - 54.249.255.255
AWS(Amazon Web Services, Inc.)のサーバでした。
う~ん、ある程度予測はしていましたが、ピクセラのこの製品も外部にサーバがないと動かない仕組みのようです。
本製品導入のきっかけになったのは、それまで使っていたVULKANO FLOW(ボルカノフロー)の接続先サーバが利用者がいるにも関係なく停止されてしまったのが原因です。これによりVULKANO FLOWはただの箱になってしまいました。
ピクセラが「サーバ運営や~めた」と決断したり、ピクセラが潰れてAWSの利用料が払えなくなれば、XIT-AIR100Wも同じ運命を辿るわけです。
少なくともこういった可能性のある製品に関しては、製品説明の中に「運用が中止になる」可能性について明記すべきだと思います。
④でのやり取りの内容までは解析できませんが、おそらく製品番号を br3101.stationtv.net に伝えて、そのグローバルIPアドレスをデータベースに登録を行っている可能性が高いです。
インターネット上にて Xit wireless を実行した端末は、おそらく br3101.stationtv.net に登録時に取得した製品番号を伝えて、その XIT-AIR100W のグローバルIPアドレスを教えてもらって接続に行くことで、インターネット上からの視聴を可能にしている筈です。
ちなみに④で使用しているポートはポート80を使っています。
http通信で使うポート番号なので、ルータは普通に中継をしてしまいます。
また、br3101.stationtv.net からの通信もルータでNAT設定をする必要もなく中継されます。
●br3101.stationtv.netとのその後の通信
主な動きは次の3点
①br3101.stationtv.net (54.248.225.95)とポート5222でTCPセッションを開始
②サーバ/クライアント通信にはXMPPを使用
③5222でセッションを開始したので当然ながら5222ポートを使ってやりとりを行う
必要な情報をデータベースに登録した後に、XMPPを使ったTCP通信を確立します。
XMPPはExtensible Messaging and Presence Protocolの略で、インスタントメッセンジャーを提供するプロトコルです。
これを使って何をしているのかは不明なのですが、その後の動きを監視していると、br3101.stationtv.net と XIT-AIR100W のKeepAlive代わりにXMPPを使用しているようです。
何もチューナーに接続されていない状態でも、定期的に5222ポートを使って通信がやり取りされています。
TCP/IPのKeepAlive機能を使ってもよい気がしますが、XMPPであれば何らかのメッセージを埋め込むことができるので、これを使っているの…かな?
その後のやり取りも XIT-AIR100W から通信を開始して br3101.stationtv.net に接続に行っています。このため、ルータ側でわざわざ5222ポートを停めていない限りはこのやり取りはNAT設定する必要もなく筒抜けです。
電源投入から接続待機している様子を確認しましたが、これならルータ設定は必要ないことがわかりました。
が、Xit wireless の自動/手動の設定やUPnPって何を変えているのだろう…。
●同一セグメント内(宅内LAN)での視聴
主な動きは次の5点
①端末がマルチキャストIPアドレスグループを探す
②端末がマルチキャストIPアドレスグループ「239.255.255.250」に参加
③XIT-AIR100Wから端末に連絡が来る
④端末からTCPセッションを確立
⑤データのやりとり開始
マルチキャストIPアドレスグループ「239.255.255.250」は決めうちのようなので、何故いきなり②の動作に行かず①の動作をするか謎なのですが、ひょっとしたらここで同一セグメント内かインターネット網上にいるかの判断をしているのかもしれないです。
いずれにしても同一セグメント内で「239.255.255.250」に参加することでXIT-AIR100WからUDP通信で何らかの連絡が来ます。
これを元に、端末はXIT-AIR100Wに接続に行って、データのやりとりが開始されるようです。
●ルータ外(インターネット網)からの視聴
主な動きは次の6点
①XIT-AIR100WがSTUNをbr3101.stationtv.netにリクエスト
②br3101.stationtv.netから成功の通知
③XIT-AIR100WがSTUNで100.72.217.14にバインドをリクエスト
④XIT-AIR100WがSTUNで端末(210.148.125.120)にバインドをリクエスト
⑤XIT-AIR100Wと端末がSTUNでやりとり
⑥XIT-AIR100Wと端末がUDPでデータのやりとり開始
同一セグメント内(宅内LAN)での視聴にはTCP/IPが使われていましたが、ルータ外(インターネット網)からの視聴にはUDPが使われているのが肝になります。
NAT越えにUDPを使う目的なのか、STUNプロトコルを使用しています。
STUNプロトコルはrfc3489の旧仕様ではUDPでNATを超えるためのプロトコルとして定義されました。
新仕様のrfc5389ではUDPに限らずNATを超えるためのUtilityとして定義されています。(ちょっと強引な解釈かな)
インターネット上にて Xit wireless を実行した端末は、おそらく br3101.stationtv.net に登録時に取得した製品番号を伝えます。br3101.stationtv.net ではDB内を調べて該当する製品番号のグローバルIPアドレスを端末に伝えると共に、XMPPのメッセージ内に端末から接続の要求が来た旨と、そのグローバルIPアドレスを通知していると思われます。
100.72.217.14とSTUNしているのは謎です。
ちなみに100.72.217.14はちょっと特別なIPアドレスで、ARINのアドレスブロックになります。ARINではこのブロックをSHARED-ADDRESS-SPACE-RFCTBD-IANA-RESERVEDと定義しています。
詳しい説明は以下を参照してください。
CGN用途のISP Shared Address - 100.64.0.0/10 (Geekなページ)
シェアードアドレス (日経XTECH)
BiglobeのSIMでInternet接続はできるがVPN接続できない (情報通信技術コンサルタント くわ)
100.64.0.0/10はサービスプロバイダネットワーク内でのみ利用できるプライベートIPv4アドレスと思えばいいのかな。
でもこのIPアドレスを使ってSTUNで何をしているのかは、ちょっと理解できません。
その部分は謎としても、①~⑤でNAT越えUDPの準備をして、⑥以降でUDPで開始といった具合で視聴を可能にしています。
STUNで定義されたポート3478をきちんと使ってやりとりしてるので、これまた意図的にルータでポートを埋めておかなければ筒抜けです。
●まとめ
気持ち悪いと感じていた謎な部分もある程度理解できましたので、調査はこれぐらいにて一旦終了です。
とりあえず自分の理解の範囲内の動作をしていましたので、運用を続けても大丈夫そうです。
しかし家庭で使うので説明不要といえばそれまでですが、こんなもの会社の中にこっそり設置されてしまったらネットワーク管理者としてはたまったものではありませんね。