TCP over ICMP / TCP over DNS 機能で通信不良の無線 LAN に対応
最近は公衆無線 LAN が普及しており、色々なところで無線 LAN が利用可能になりました。しかし、たくさんの人々が利用する公共の無線 LAN アクセスポイントでは、よく、TCP や UDP の通信が不安定になっている場合があるようです。
せっかく SSID に接続することができて IP アドレスも割当てられているのに、なぜか、インターネット上の Web サーバーにアクセスすると、HTTP 通信 (TCP を用いています) がうまくつながらずにエラーが画面に表示されたり、意図した接続先の Web サーバーとは異なる、よくわからないフィッシングのようなサイト (カード番号や料金を請求される) に勝手にリダイレクトされたりすることがあります。このような場合は、HTTP 以外にも、Skype やメッセンジャーなどの通信 (TCP や UDP を使用している) がうまくいかない場合があります。
前者のような「TCP 接続エラー」が発生する原因の多くは、公衆無線 LAN の利用者が多すぎ、共用の NAT が扱えるセッションテーブルが溢れてしまっていることが原因なのではないかと推測されます。この場合、これ以上新たな TCP/IP 通信を行うことができません。
後者のような「意図した URL とは明らかに違う、よくわからないフィッシングのようなサイト (カード番号や料金を請求される) に勝手にリダイレクトされる」という現象が、公衆無線 LAN の一部でよくあると聞いています。私は実際にあまり経験したことがないのですが、確かにそのような無線 LAN があるようです。そこで推測するに、恐らくその無線 LAN は付近に誰か別の悪いユーザーがいて、そのユーザーが偽の DHCP や DNS、ARP スプーフィングサーバなどを無線 LAN の同一 SSID のセグメント内で立ち上げ、小額料金を請求するフィッシング詐欺のようなものを企んでいるのではないかと思います。
上記のように、TCP/UDP の通信が不調となってしまっている無線 LAN アクセスポイントであっても、なぜか ICMP や DNS のパケットは通る場合があるようです。無線 LAN の先にあるルータなどでは TCP/UDP と ICMP/DNS とは別の処理が適用されるようになっているため、たとえばセッション数超過で TCP/UDP のマッピングテーブルがいっぱいになってしまっている場合でも、ICMP による Ping 通信は可能な場合が多いようです。
このような通信不良が発生している無線 LAN アクセスポイントで、VPN を ICMP または DNS パケット上に載せて通信することができればとても便利です。そこで、PacketiX VPN 4.0 には以下の図のような VPN over ICMP / DNS 機能を搭載しました。
たとえば、自社に VPN サーバーを立ち上げておき、グローバル IP アドレスを割当てておきます。そしてインターネット側からの ICMP や DNS のパケットが到達するようにしておきます。そうすれば、上図のように、通信が不安定な無線 LAN を利用するときに、まず VPN サーバーとの間で ICMP / DNS を用いて VPN チャネルを確立しておき、その上で好きな通信 (HTTP など) を行うということができます。
もちろん、自社の VPN サーバーを経由して、自社の社内 LAN 上のコンピュータにアクセスすることもできます。
VPN over ICMP / VPN over DNS 機能は、上記のように、TCP/UDP の通信ができない場合の最終手段としてとても便利です。