写真1●キャリア・グレードNATのミドルウエアを開発したネットワークバリューコンポネンツ(NVC)ニュービジネスチームの松本直人氏
写真1●キャリア・グレードNATのミドルウエアを開発したネットワークバリューコンポネンツ(NVC)ニュービジネスチームの松本直人氏
[画像のクリックで拡大表示]
写真2●1つのグローバルIPアドレスを複数のユーザーで共有するNAT処理のISP向け拡張版「キャリア・グレードNAT」
写真2●1つのグローバルIPアドレスを複数のユーザーで共有するNAT処理のISP向け拡張版「キャリア・グレードNAT」
[画像のクリックで拡大表示]
写真3●キャリア・グレードNATの要件
写真3●キャリア・グレードNATの要件
[画像のクリックで拡大表示]

 1つのグローバルIPアドレスを,インターネット接続サービス事業者(ISP)内の複数の加入者(ユーザー)で共有する「キャリア・グレードNAT」は,IPv4アドレス枯渇対策の1つとして策定が進んでいる技術である。NAT(Network Address Translation)自体はブロードバンド・ルーターなどでおなじみの枯れた技術だが,これをISP側に実装するとなると話は別だ。2009年2月23日,ITproテクノロジ・カンファレンス「プロバイダ/データセンターのIPv4アドレス枯渇対策」において,キャリア・グレードNATのミドルウエアを開発したネットワークバリューコンポネンツ(NVC)ニュービジネスチームの松本直人氏(写真1)が,キャリア・グレードNAT実装の“現実解”を披露した。

 キャリア・グレードNATは,TCP/IPのポート番号を識別子に使うことで1つのグローバルIPアドレスを複数のユーザーで共有するNAT処理のISP版である(写真2)。IPv4サービスのユーザーはローカルIPアドレスを割り当ててもらい,1つのグローバルIPアドレスに複数のユーザーがぶら下がる形になる。このため「ユーザーから『既存のIPv4機器はどうなるのか』『組み込み機器の延命策になるのか』といった問い合わせがある」(松本氏)という。

RFCドラフトの枠外にある「ログ管理」

 松本氏の講演では,NVCが「RFCドラフトに基づく実装に国内ユーザーの要望を反映」して開発したミドルウエアを軸に,キャリア・グレードNATに求められる要件を紹介した(写真3)。

 まずNATの基本処理は「フルコーン(full cone)NAT」と呼ぶタイプを採用した。NATによる通信が発生した後は,端末からの通信がある限りセッションを維持し,外部からの通信を通す。グローバルIPアドレスとポート番号の組み合わせを知る端末であれば,外部からの新規接続も可能だ。「キャリア・グレードNATで『P2Pは通らない』と言われているが,(フルコーンNATであれば)通らないのは一部の通信だけ」(松本氏)となる。「99%とは言えないが,通る可能性は高くなる」。

 通信先のグローバルIPアドレスが同じISPのローカル・ネットワーク内に存在する場合には,キャリア・グレードNAT装置内でパケットを“折り返す”「ヘアピニング」もキャリア・グレードNATを実現する際に求められる要件である。ブロードバンド・ルーターであれば「LAN内通信」として直接接続が可能だが,キャリア・グレードNATでは「グローバルIPアドレスを持つ別ユーザー」として処理する必要がある。

 RFCドラフトにない機能として松本氏が挙げたのは,「ポート・フォワード」と「ロギング」に関する機能である。ポート・フォワードはグローバルIPアドレス/ポート番号と,ローカルIPアドレス/ポート番号を1対1でひもづける機能。ブロードバンド・ルーターではおなじみの機能だが,外部から内部への接続性を担保する機能として「ユーザーの要望に応じて独自実装した」(松本氏)。

 ロギングについては「ユーザーにとって最も重要な要件であるにもかかわらず,こなれていない」と松本氏は指摘。「トラブル発生時の問題解決に不可欠だが,海外のエンジニアに『ログはMUST』だと言うと,怪訝な顔をされる」(松本氏)のだという。このためNVCはポート・フォワードと同様に,キャリア・グレードNATのログ仕様などを定めて独自実装した。

1グローバルIPアドレスにひもづけるユーザー数の目安は「5から8」

 続いて,松本氏はキャリア・グレードNATミドルウエア開発時に得られた知見として,ユーザーに割り当てるポート番号の範囲や,1グローバルIPアドレスに対するユーザー数の目安を紹介した。「ウェルノウン・ポートや既知のポート番号は割り当てるべきではない。開発時の検証で,それらのポートは即座にポート・スキャンされた」(松本氏)。また収容ユーザー数の目安については「NATセッションを維持する時間を60秒にすると,一番問題が少ないのは1グローバルIPで収容できるユーザー数は5ないし8」(同氏)とした。

 最後に松本氏は,IPv4枯渇対策として「IPv6/IPv4トランスレータを利用する手もある」と指摘。エンドユーザーの機器がIPv6対応であれば,IPv4ネットワークへのゲートウエイとなるIPv6/IPv4トランスレータを設置することでIPv4アドレス枯渇に対処できる。松本氏は「数ある選択肢の中から,中長期的な事業継続性を検討すべき」として講演を締めくくった。