VPNで「アドレス変換」を乗り越える!「NATトラバーサル」
はい、こんにちは。まるで専用線のように公衆回線を安全に利用して通信する「VPN」をお話しを連続で書いております。
前回は、VPNプロトコル「L2TP」についてご紹介しました。マイクロソフトのPPTPと、シスコのL2Fを取り込んで策定されたプロトコルであり、IPsecとともに使うことで安全性の高い通信を行うことができるのでした。
さて、今回は、すでに何度か言及した「NAT越え」(NATトラバーサル、NAT-T)がテーマです。VPNについて調べると、「NAT越えをどうするのか」がしばしば取り上げられることに気づきます。いったいこれは何が問題なのでしょうか?どうそれを解決するのでしょうか?
さっそく見ていきましょう!
VPNの妨げになる!?NATとは?
VPNを使った通信では、NAT(ネットワークアドレス変換)の存在が、しばしば障害になります。
ざっくりいうと、NATとは、内部機器にプライベートIPアドレスを割り当て、それらをインターネットとの境界で、グローバルIPアドレスに変換して外部との通信ができるようにする技術でしたね。
IPv4のグローバルIPアドレスが不足していることへの対応策の一つです。
このNATでは、複数のプライベートIPアドレスを、TCPやUDPのポート番号に転換することで、一つのグローバルIPアドレスを共有することがあります(NAPTというやつです)。
ところが、VPNは、このNATによって通信が妨げられることがあります。う~ん、どういことでしょう。
何が問題なのか?
典型的なVPN方式として、IPsecでESPトンネルモード利用する場合を前提に考えましょうか。
フレーム構成は、次の通りでした。
では、NATに必要なポート番号は、どこに持たせるのでしょう?
TCP/UDPヘッダと言いたいところですが、それは暗号化されて読めません。そうなら、ESPヘッダの中にあるのかな?と思いきや、ESPの中にはポート番号を持たせることができません。
そう、このままではNATに必要なポート番号がフレーム内にないのです。こうなると、NAT機器がフレームの送信元、送信先を適切に識別することができません。
「NAT越え」という解決策
この問題を解決するのが、「NAT越え」という技術です。
簡単にいうと、ESPフレームをUDPヘッダでさらにカプセル化するのです。絵にすると次のとおりです。
こうすれば、NAT機器がIPアドレスとポート番号の変換ができるようになるというわけです。
以上が、IPsecでのNAT越え(IPsec NAT-T)の簡単な解説です。
はい、本日は、ここまで!今回は、VPNでしばしば問題として取り上げられる「NAT越え」についてお話ししました。
次回は、もう一つの解決方法、VPNパススルーについてお話しします。
では!
この記事が気に入ったらサポートをしてみませんか?