仙石浩明の日記

2013年3月30日

UCOM光電話の VoIP アダプタ (Aterm BH812V) を LAN 内に設置してみた

UCOM光が導入されているマンションに住んでいるので UCOM光電話を使っている。 UCOM から貸与された VoIP (Voice Over IP, IP 電話) アダプタは、 グローバル IP アドレスが必要と説明書にあった。 UCOM光で各戸に割当てられるグローバル IP アドレスは 5個しかないのに、 うち 1個を VoIP アダプタごときに専有されるなんてトンデモナイ。 なんとか VoIP アダプタを、 次図のように LAN 内に設置することはできないか?

                    宅内 ←:→ UCOM
                        :       :
      LAN    ┌─────┐  DMZ   :       :
           │NAT 機能付│      :       :
───┬────┬──┤ルータ  ├──┬───────┬────→ インター
   │    │  └─────┘  │   :   │   :  ネット
┌──┴─┐┌─┴─┐   :   ┌─┴─┐ : ┌─┴─┐ :
│ VoIP ││ PC等 │   :   │公開 │ : │SIP  │ :
│アダプタ│└───┘   :   │サーバ│ : │Proxy │ :
└────┘        :   └───┘ : └───┘ :
              :
プライベート IP アドレス  :    グローバル IP アドレス

SIP (Session Initiation Protocol, VoIP で使われるプロトコル) は NAT と相性が悪いとはよく言われるが、 それは UA (User Agent) 同士が直接通話する場合の話。 SIP Proxy 経由で通話する場合であれば、 端末 (VoIP アダプタ等) は特定の SIP Proxy に接続すれば事足りるので、 端末が NAT の内側 (つまり LAN 内) でも何の問題もない。 だから VoIP アダプタにグローバル IP アドレスが必要と言われても納得しかねる。

私の場合、 VoIP アダプタとして Aterm BH812V (UZ) を貸与された。 このアダプタに、 フツーの (アナログ) 電話機をつなぐとフツーの (050 な電話番号ではなくフツーの市外局番な番号の) 固定電話として使える。 BH812V は VoIP アダプタなのに VoIP 関連の設定項目が全く無く、 ましてプライベート IP アドレスで使うための設定方法など望むべくもない。 仕方がないのでとりあえずそのまま BH812V を LAN につないでみた。 上図中 「NAT 機能付ルータ」 は実際は Linux マシンで、 このマシン上で DHCP (Dynamic Host Configuration Protocol) サーバを走らせている。 つまり、 この DHCP サーバから BH812V に対してプライベート IP アドレスが割当てられる。

BH812V 前面

BH812V の筐体には、 「ステータス」 「電話サービス」 「電話1」 「電話2」 「インターネット」 と書かれた 5 つのランプがあり、 正常な定常状態では全て緑色に点灯する。 ところが、 BH812V を LAN につないで電源を入れると、 「ステータス」 が橙点滅、 「インターネット」 が橙点灯したままになり、 「電話サービス」 他のランプは消灯したままになってしまった。 もちろん、 BH812V につないだ電話機は使用不能。 BH812V のログはこんな感じ:

2013/03/29 00:39:15 NAT GET 192.168.10.130 (IP-PORT=1)
2013/03/29 00:39:15 WAN  Port is UP for Local Router mode
2013/03/29 00:39:15 WAN  Connect request from 192.168.19.1 for Local Router mode
2013/03/29 00:39:15 DHCP_Client IP ADDRESS Get 192.168.10.130 (IP-PORT=1)

プライベート IP アドレス 192.168.10.130 が配布されたことは分かるが、 SIP 関連のエラーは全く出力されていないので、 このログではなぜ電話機が使えないか何も分からない (>_<)

ちなみに、 BH812V にグローバル IP アドレス 122.218.XX.XX を割当てて正常に動作したときのログはこんな感じ:

2013/03/29 00:51:09 NAT GET 122.218.XX.XX (IP-PORT=1)
2013/03/29 00:51:09 WAN  Port is UP for Local Router mode
2013/03/29 00:51:09 WAN  Connect request from 192.168.19.1 for Local Router mode
2013/03/29 00:51:09 DHCP_Client IP ADDRESS Get 122.218.XX.XXX (IP-PORT=1)

電話が使えない異常状態と、正常状態とで、 ログが (割当てられた IP アドレス以外は) 全く同じというのはいかがなものか。

そこで、 BH812V にグローバル IP アドレスを割当てたときと、 プライベート IP アドレスを割当てたときとで、 どのような挙動の違いがあるか調べてみる。 まず UCOM DHCP サーバから グローバル IP アドレスを割当てるとき、 BH812V と UCOM との間でどのような通信が行なわれるか? BH812V と UCOM との間にブリッジ (という名の Linux マシン) を挟んで、 どのようなパケットがやりとりされているか tcpdump (ネットワークを流れるパケットを表示するツール) で調べてみる。

   ┌────┐  ┌─────┐  宅内 ←:→ UCOM
   │ VoIP ├──┤ブリッジ ├──┐   :
   │アダプタ│  └─────┘  │   :       :
   └────┘  ┌─────┐  │   :       :
           │NAT 機能付│  │   :       :
────────┬──┤ルータ  ├──┼───────┬────→ インター
        │  └─────┘  │   :   │   :  ネット
      ┌─┴─┐       ┌─┴─┐ : ┌─┴─┐ :
      │ PC等 │       │公開 │ : │SIP  │ :
      └───┘       │サーバ│ : │Proxy │ :
                  └───┘ : └───┘ :

上図のように 「VoIP アダプタ」 (BH812V) を LAN から (ブリッジを介した) DMZ へつなぎ替えたわけだが、 このようなネットワーク構成の変更が、 物理的な配線変更を行なわずにできるのが、 スマートスイッチならでは (^^)v。

BH812V に UCOM が配布するグローバル IP アドレスを割当てるときの、 BH812V と UCOM との間の通信は以下のような感じ:

BH812VUCOM 
DHCP Request →
← DHCP Reply グローバル IP アドレスの割当て
DNS Query → ntp.121ware.com の IP アドレスは?
← DNS Response IP アドレスは 211.4.244.178
NTPv4 → 211.4.244.178 へ現在時刻を問合わせ
← NTPv4 現在時刻は 17:26:26
DNS Query → voipsetup.fttx.co.jp の IP アドレスは?
← DNS Response IP アドレスは 61.122.116.158
HTTPS Request → 61.122.116.158 への SSL 通信開始
← …… → 61.122.116.158 との SSL 通信
SIP REGISTER → SIP Proxy への REGISTER 要求
← SIP Response SIP REGISTER 完了

一方、 BH812V を LAN 内に設置したときは、 voipsetup.fttx.co.jp の IP アドレス問合わせが行なわれず、 当然その後に続く SSL 通信も、 SIP REGISTER も行なわれない。

BH812V と 61.122.116.158 (voipsetup.fttx.co.jp) との SSL 通信は、 暗号化されているため覗き見することができないが、 ホスト名からしていかにも VoIP の設定情報 (電話番号, ユーザID, パスワード, SIP Proxy など) をダウンロードしているように見える。 つまり、 BH812V はグローバル IP アドレスを割当てると、 https://voipsetup.fttx.co.jp から設定情報を取得するが、 ローカル IP アドレスを割当てると、 設定情報の取得が行なわれず、 したがって電話も使えない、 ということなのか?

仮にそうだとして、 ではなぜローカル IP アドレスだと設定情報の取得が行なわれないのか? BH812V は割当てられた IP アドレスがグローバルかプライベートか判断して、 動作を変えているのか? また、 取得先であるこの URL は元々 BH812V 内部に持っているのか? URL のようないつ変わるかも知れないようなものを VoIP アダプタに書込んで出荷するというのは考えにくい、 などと思いつつ、 tcpdump が表示したパケットの内容を詳しく見ていくと、 UCOM からの DHCP Reply (グローバル IP アドレスの割当て) が、 普通の DHCP サーバとは異なっていることに気付いた:

17:26:31.004413 00:1a:6c:YY:YY:YY > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 391: (tos 0x0, ttl 255, id 32054, offset 0, flags [none], proto UDP (17), length 377)
    122.218.YY.YY.67 > 255.255.255.255.68: [udp sum ok] BOOTP/DHCP, Reply, length 349, hops 1, xid 0x29d6048, Flags [Broadcast] (0x8000)
	  Your-IP 122.218.XX.XX
	  Gateway-IP 122.218.YY.YY
	  Client-Ethernet-Address 1c:b1:7f:XX:XX:XX
	  Vendor-rfc1048 Extensions
	    Magic Cookie 0x63825363
	    DHCP-Message Option 53, length 1: Offer
	    Server-ID Option 54, length 4: 61.122.127.121
	    Lease-Time Option 51, length 4: 21600
	    Subnet-Mask Option 1, length 4: 255.255.255.248
	    Default-Gateway Option 3, length 4: 122.218.YY.YY
	    Domain-Name Option 15, length 10: "usen.ad.jp"
	    Domain-Name-Server Option 6, length 8: 61.122.127.122,61.122.116.174
	    T201 Option 201, length 6: 21321,20525,20299
	    T202 Option 202, length 49: 104.116.116.112.115.58.47.47.118.111.105.112.115.101.116.117.112.46.102.116.116.120.46.99.111.46.106.112.47.115.101.116.117.112.46.97.115.112.120.63.99.105.100.61.38.114.105.100.61

122.218.YY.YY が UCOM のルータ (DHCP Relay Agent を兼ねる) の IP アドレス、 1c:b1:7f:XX:XX:XX が BH812V の MAC アドレスで、 122.218.XX.XX が BH812V に割当てられたグローバル IP アドレス。 「Magic Cookie 0x63825363」 の行以降が、 DHCP オプション。 DHCP オプションとは、 DHCP サーバがクライアントにネットワーク設定情報等を伝えるためのもの。 つまり、 デフォルトゲートウェイや DNS サーバ等。 DHCP オプションを見ていくと、 見慣れないものが... 「T201 Option 201」 「T202 Option 202」 って何だ? これらオプションの値が (tcpdump が表示する際に) 10進数値に変換されてしまっているので、 文字に戻してみると:

	    T201 Option 201: "SIP-OK"
	    T202 Option 202: "https://voipsetup.fttx.co.jp/setup.aspx?cid=&rid="

何のことはない、 グローバルかプライベートかが問題なのではなくて、 UCOM の DHCP サーバが VoIP 設定情報の URL を BH812V へ提供していただけだった。 つまり、 プライベート IP アドレスを割当てる際、 UCOM DHCP サーバと同じ設定情報を提供すれば BH812V は VoIP アダプタとして機能するはず。 DHCP サーバ (前述した図の 「NAT 機能付ルータ」 上で走らせている) の設定ファイル dhcpd.conf に、 以下のような感じで T201/T202 の設定を書き加えてみた:

authoritative;
option T201 code 201 = text;
option T202 code 202 = text;

option domain-name "gcd.org";
subnet 192.168.10.0 netmask 255.255.255.0 {
	option domain-name-servers 192.168.10.1;
	option routers 192.168.10.1;
	option subnet-mask 255.255.255.0;
	option broadcast-address 192.168.10.255;
	option T201 "SIP-OK";
	option T202 "https://voipsetup.fttx.co.jp/setup.aspx?cid=&rid=";
	range 192.168.10.129 192.168.10.159;
}

すると、 この DHCP サーバからプライベート IP アドレスを割当てられた BH812V は、 https://voipsetup.fttx.co.jp/setup.aspx?cid=&rid= から VoIP 設定情報を取得して VoIP 機能が使用可能になった。 ここ数日、 Aterm BH812V を LAN 内に設置したまま様子を見ているが、 今のところ特に問題は起きていない。 もっとも、 固定電話を使う機会はほとんど無いのだけれど (^^;)。

なお、 この VoIP 設定情報のページは Basic 認証で保護されている。 つまり BH812V はこのページにアクセスするためのユーザID とパスワードを内蔵していると考えられる。 Basic 認証なので生パスワードが送出されてしまうが、 BH812V は 「信頼できる」 HTTPS サーバにしか接続しないことでパスワードの漏洩を防いでいる。 例えば、 voipsetup.fttx.co.jp は 「C=JP, ST=Shizuoka, L=Kakegawa, O=NEC AccessTechnica Ltd, CN=NEC AccessTechnica Ltd」 によって認証されている。 ただ、 ミスによって大穴があいてしまうことは有り得る。 Digest 認証など、 生パスワードを送出しない認証方法を採用すべきだったのではなかろうか?

Filed under: システム構築・運用 — hiroaki_sengoku @ 22:53

7件のコメント »

  1. こんばんは(同時期に日立の研究所に在籍していたのですが、ご挨拶するのは初めてです)。

    固定電話に着信できているのでしょうか?
    VoIPアダプタは自分のユーザIDとアドレスを載せたREGISTERリクエストをSIP Proxyに送信し、電話番号とIPアドレスを紐つけます。プライベートアドレスを知らせても、SIP Proxyから着呼できない気がするのですが。
    そもそも電話サービスランプが点灯=VoIPアダプタがREGISTERにOK応答を受信できたのが謎です。

    コメント by kie — 2013年3月31日 @ 00:22

  2. 発着信はもちろん、通話もできます。

    NAT にもよると思いますが、SIP を解釈する NAT であれば SIP メッセージ内のプライベート IP アドレスをグローバル IP アドレスで書き換えて送ってくれます。

    Linux マシンで NAT する場合であれば、nf_nat_sip モジュールを組み込むことにより SIP に対応できます。

    コメント by hiroaki_sengoku — 2013年3月31日 @ 01:25

  3. 単純なポートフォワードではなくて、ルータに仕込みがあったのですね。nf_nat_sipを試してみます。ありがとうございました。

    コメント by kie — 2013年3月31日 @ 13:01

  4. 興味深く読ませて頂きました。

    当方もマンションの都合でUCOMしか選択出来ませんでした。
    同様にUCOMの環境になってVOIPアダプタの存在がネックになっているものです。

    VoIP 設定情報をvoipsetup.fttx.co.jpから取得して・・とあったのですが、同情報を使ってSIPソフトフォンなどで接続実験されていたりしますでしょうか?

    ASTERISKをつかっているのですが、上記を確認することで直接SIP回線をレジスト出来たらいいな~と考えてます(アナログ回線接続だと通話品質が悪いので)

    コメント by 杉山 — 2013年4月4日 @ 14:27

  5. 初めまして。
    当方の自宅の固定電話をブラステルのIP電話を使いたいと思っています。
    VoIPアダプタが必要とのことで、「VoIPアダプタ」で検索したところ貴サイトをみつけました。
    実は当方のマンションもUCOM光が入っており、UCOM光電話を使っています(ルータは Aterm WH822N)。
    基本的のことで申し訳ないのですが、UCOM光電話を解約する場合、VoIPアダプタ付きのルータでおすすめのものはありますでしょうか? あるいはルータとVoIPアダプタは別々に購入しないといけないでしょうか?
    当方はルータ・VoIPアダプタ等のことに関しては詳しくありません。
    宜しくお願い致します。

    コメント by Yosho — 2014年3月8日 @ 19:02

  6. ググッたら、HT702 を紹介しているページを見つけました。
    私自身は、イエデンの必要性を感じていないため (イエに居ないし ^^;)、UCOM 以外の IP電話はケータイでのみ使っているので、HT702 の使い勝手は分かりません (_o_)。使用するルータによっては着信しない場合まであるようで、注意が必要ですね。

    コメント by hiroaki_sengoku — 2014年3月9日 @ 10:26

  7. UCOM光で使ってる「BH812V」の上手い収納法を探そうとググっててこちらに辿り着きました

    現在居住中の新築マンションは、ここの記事エントリー「2012年9月4日」にあるタイプと異なり、玄関脇に設置された下駄箱最上部に宅内分電盤と共に電話とテレビ配線とマンション内LANが引き込まれ、それぞれ各部屋の三連コンセントボックスに低圧線と共に「電話・テレビ・LAN」がココからそれぞれの分配器を通り配線されています。

    そこで、下駄箱分電盤脇にルーターとコンセントが配置されてるのをいい事にBH812Vを単純に配置済みルーターのWANから差し替え、『BH812V→ルーター』で設置しても良いのか判断に迷ってます。>宅内向けに電話配線が2分割で引き込む方式で尚更…

    肝心の設置方法例がプロバイダ含め何処にもないため、IP電話のためだけにリビングのLAN端子にWANつないで家庭FAXに直結してる有様で見た目も悪いですし、パソコンとLAN端子で繋がってないためVoIPアダプタの管理も出来ないんですw

    …貴殿はネット周辺機器は特段収納スペース工夫などはしないで室内に無造作に放置状態でしょうか?

    コメント by 緋浦 — 2014年4月30日 @ 23:07

この投稿へのコメントの RSS フィード。

コメントする