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 の筐体には、 「ステータス」 「電話サービス」 「電話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。
More...