通信事業者がユーザー向けに提供するサーバー・アプリケーションの中には,NAT処理の介在を想定していないものが存在します。例えば,メール・サーバーには「POP before SMTP」というしくみが備わっています。これは,メール受信用プロトコルのPOP(post office protocol)で一度アクセスできた端末からのSMTP(simple mail transfer protocol)のアクセスだけ許可するものです。では,POP before SMTPのようなしくみを,キャリア・グレードNATが導入されたネットワーク環境で使うと,どのような問題が起こるのでしょうか。
POP before SMTPでは,不正メール送信の踏み台としてサーバーが利用されてしまうことを防ぐため,POPでアクセスしてきた端末が持つIPアドレスからのSMTP接続を一定時間許可します。ここで現在のように,プロバイダがグローバル・アドレスを振ったメール・サーバーをプロバイダ網の中に設置・運用していると考えてください。キャリア・グレードNATを実施すると,グローバル・アドレスを不特定多数で共有します。そのため,複数のユーザーが同じIPアドレスからメールの受信操作したことになってしまうのです(図1)。これでは,POP before SMTP本来の意義が崩れてしまいます。

不具合が起こりそうな通信はNAT処理の対象外に
こうした問題を改善するために,キャリア・グレードNATには「パススルー」と呼ばれる機能を持たせています。パススルーは「特定のIPアドレス,特定のポート番号を使う通信は,送信元をプライベート・アドレスにしたままNAT処理をせずに転送する」というものです。このパススルーを有効にすることで,メール・サーバーはいちどPOPでアクセスしてきた端末を識別できるようになります(図2)。つまり,POP before SMTPが本来の効果を発揮できるようになるわけです。パススルーした際に,送信元のプライベート・アドレスはキャリア・グレードNAT装置が保持(記憶)しています。

パススルー機能は,POP before SMTP以外のNAT処理を得意としないプロトコルにも適用できます。例えば通信事業者のサービスとして,SIP(session initiation protocol)でIP電話サービスを行っており,そのSIPサーバーがNAT処理を得意としない仕組みだった場合が該当します。パススルーを設定することで,顧客端末からの特定SIPサーバーへのアクセスはNAT処理の適用外になり,問題の発生を回避できます。
パススルーを使うことの利点は,既存のアプリケーションを改修したり追加開発したりせずに済むことです。筆者はこの機能を,既存のアプリケーションをIPアドレス枯渇対策に対応させる“当面の救済策”もしくは“延命策”の一つと考えています。
ネットワークバリューコンポネンツ ニュービジネスチーム