アメリカ発、IPv6専用モバイルネットワーク問題。あなたのVOIP機器は大丈夫?
IPv6、次世代のインターネットプロトコルとして普及すると言われて早20数年(?)経ちますが、そろそろその足音が聞こえてきたようです。まあ、勿論、これまでも着実に普及してきたのですが、IPv4メインであまり意識していないエンジニアも多かったのではないでしょうか。2018年に入り、今回はそろそろIPv6を意識しようというお話です。
なぜ今更、IPv6?
そもそも、今まで20年間、無視してOKだったのになぜそろそろ意識する必要があるのでしょう?VOIPエンジニア目線で幾つか理由を挙げてみます。
1 .モバイルキャリアでのIPv6の普及率が上がった。
2. AppleのApp StoreアプリでIPv6対応が必須。
3. iOSなどでIPv4よりIPv6が優先されている。
4. IPv4よりIPv6のパフォーマンスが良いとするレポートが多数報告されている。
どれもごもっともな理由ですが、まだ「IPv4でもいいんじゃない?」と思ってしまいますよね。しかし、ここに来てもう一つの理由が2年ほど前から忍び寄っています。
5. IPv4に対応していない、IPv6専用のネットワークにモバイルキャリアがシフトしている。
どういうことかというとお手元のスマートフォンからwifiではなく、モバイルキャリアのネットワーク経由でネットに接続する場合、IPv4は使えないということです。そう。「そろそろIPv6に目を向けよう」と言った本当の理由はIPv6が便利だからではなくIPv4が切られるからです。
ちなみに日本のキャリアはIPv6の普及は進んでいますが、依然、IPv4も提供しています。しかし、アメリカでは既にいくつかのキャリアがIPv6専用ネットワークに舵を切っています。特にT-Mobile.
VOIPへのインパクトは?
スマホからモバイルキャリアへの接続は現在はIPv4、IPv6のどちらからでもできます。(日本では恐らくまだ多くはIPv4で接続しているはず。) しかし、もしキャリアがIPv4接続を提供しなくなった場合はどうなるでしょうか?
実は大部分のアプリはそのまま動きます(IPv4を前提としたAPIなどを使用していない限り)。しかしながら現在のVOIP機器はIPv6に対応していないものが多く、問題が発生する可能性があります。
ここではスマホで動くSIPフォン(アプリケーション)がモバイルネットワーク経由でSIP Proxyサーバに接続する例を使用して説明します。
これまでの場合(IPv4)
以下の図に示す通り、スマホ内のSIPフォンはIPv4ベースでモバイルキャリアのネットワークに接続し、インターネットを経由してSIP Proxy サーバとやり取りします。この際、SIPメッセージは勿論、その後のオーディオ、ビデオといったメディアのやり取りも可能です。
キャリアがIPv6ネットワークしか提供しない場合(具体的には米国T-Mobileなど)
スマホはIPv6ベースでモバイルキャリアのネットワークに接続します。途中”NAT64”と呼ばれるトランスレータを介してTCPパケットはIPv6->IPv4に変換され、IPv4ネットワークを経由してSIP Proxy サーバに到達することが可能です。
そのためSIPメッセージをTCPベースで送出した場合、サーバとのやり取りが可能ですが、ここで問題になるのはSDPの記述内容です。例えばスマホ側から送出されたINVITEのSDP内にはメディア用の宛先としてガッツリIPv6のアドレスが記述されています。しかしながらこれは当然”NAT64”では変換されないまま(IPv6のアドレスのまま)SIP Proxyサーバーに届いてしまいます。そのためSIP ProxyサーバがIPv6に対応していない場合、メディアUDPパケットのやり取りが出来ない問題が発生します。
この問題はSIPベースのアプリケーションに限らず、WebRTC技術などを利用してブラウザ経由でサーバにアクセスした場合にも同様の問題が発生する可能性があります。
解決策1
Androidの場合はOSの機能であるCLAT(customer-side translator)を利用して一旦IPv4->IPv6に変換することが出来ました。これによりSDPの記述はIPv4となり、問題は発生しなくなります。
しかし、iOSについてはAppleはこの機能を提供していません。
解決策2
VOIP機器がIPv4とIPv6両方をサポートし、どちらでの接続も許可している状況であれば問題は発生しません。が、こちらにはしばらく時間がかかりそうです。
結論
日本ではモバイルキャリアはまだまだIPv4ネットワークを提供するとは思いますが、まとめとして、
- 米国でiPhone + T-Mobileの組み合せでSIPアプリを利用する際は注意が必要。
- IPv4が切られる前にアプリケーション側またはVOIP機器側で何かしら手を打とう。