2011年10月12日から14日の日程で開催されている「ITpro EXPO 2011」展示会。その主催者企画として行われている「IPアドレス枯渇対策ワークショップ」において10月12日、インテック 先端技術研究所の廣海緑里氏がIPv6対応アプリケーション開発の注意点について講演した。
インターネットにIPv6環境が並存するようになると、インターネットを利用するアプリケーションは動作しなくなるなどの不具合が発生する可能性があると、廣海氏は話す。具体的には、現在のアプリケーションのなかには、IPv4アドレスを扱うコードが潜んでいるものもあり、こうしたアプリケーションでは改修が必要になるという。
IPv6へとインターネット環境が変わることで、アプリケーションは三つの問題を抱えることになるという。一つ目は、CGN(キャリアグレードNAT)によってNAT(アドレス変換)が多段化されることだ。NATトラバーサルが必要になるため、アプリケーションの動作で不具合が起きる可能性がある。また、多段化することにより、アプリケーション提供者が取りたいと思っているユーザーログの取得に不具合が出るかもしれないと話す。
二つ目は、IPv4とIPv6が混在する点だ。これにより、端末やサーバーがつながらないといった問題や、環境によってレスポンスがまちまちになったりするかもしれない。三つ目が、今回の講演の内容である、アプリのIPv6対応が必要になるという点だ。プログラムコードを見直したり、ミドルウエアを更新したり、システムの見直しが必要になることもあるだろうと指摘した。
具体的な事例として廣海氏は、アプリケーションのコードの中にIPアドレスを入力する欄があるケースと、IPv4依存のコードがある場合にこれをIPv6でも使えるコードに書き換える必要があるケースを紹介した。しかし、IPv6対応アプリケーションの開発は、「IPv6の仕様を理解していれば大変ではないはず」と話す。開発時のポイントとして、IPv6アドレスの長さ、IPv4での通信に先立ってIPv6で通信するといった処理の順序、DNSのIPv6専用のレコード(AAAAレコード)などを挙げた。
廣海氏はまとめとして、三つの項目を紹介した。第1は、開発前の準備事項について。これはアプリケーションの仕様やシステム構成、運用方法におよぶ確認事項である。
第2は、新規にIPv6対応アプリケーションを開発を際の注意点だ。廣海氏は、デュアルスタック対応の開発言語を使ってプログラミングすることが重要だと話す。現在のバージョンでデュアルスタックに対応している言語であっても、古いバージョンの場合はデュアルスタックに対応していないものもあるという。もちろん、開発環境もIPv6に対応しているものを使うことが大切だ。
第3は、IPv4で動作しているアプリケーションのプログラムを改修する際のポイントだ。コードにIPv4アドレスが直接書き込まれているアプリケーションもあるので、こうしたアプリケーションではコードを見直さなくてはならないという。例えば、DNSによる名前解決を使わずに、決まったIPアドレスにアクセスしてレスポンスを上げることを目的としたアプリケーションでこうした事例は見られるという。廣海氏によると、こうしたIPv4アドレス入りコードを使っているWebアプリケーションは、全世界のWebサイトで0.02%ほどあるという。
なお廣海氏のこの講演は、14日(金)の12時40分からも、ITpro EXPO 2011展示会場内の同じステージで行われる予定となっている。