インターネットブレークアウトを支えるCisco SD-WANの3つの仕組み

この数年間にネットワーク界隈で話題となったソリューションの1つとして、SD-WANを挙げることができると思います。当初、SD-WANの導入がいち早く進んだ米国とはWANの市場構造が大きく異なることから、日本での普及を疑問視する声も多くありましたが、この1年で日本の企業の導入数も大きく伸びてきました。その背景として、日本でのSaaS利用の急激な広まりにともない、SD-WANがSaaSへのアクセスの最適化に効果的なソリューションであるとの認知が進んだ点があります。その中心ともいえるユースケースがインターネットブレークアウトです。

従来、各拠点からのインターネットへのアクセスは全てデータセンターに集約され、プロキシサーバを介して企業ネットワークの外に出ていく構成が一般的でした。しかしながら、最終的にインターネットにでていくトラフィックは各拠点のインターネット回線から出す方が、トラフィックがたどるパスが最短ですむ可能性が高く、WANやプロキシサーバを圧迫しないというメリットもあります。インターネットブレークアウトは、このような考え方にもとづいて、SaaSにアクセスするトラフィックを各拠点（もしくは各拠点になるべく近いところ）からインターネットに出すというユースケースです。

今日は、Cisco SD-WANでインターネットブレークアウトを実現し、効果を最大化するために実装されている仕組みを3つご紹介したいと思います。


■ディープパケットインスペクション (DPI)

最終的にインターネットにでていくトラフィックは各拠点のインターネット回線から出す方が効率的とはいっても、各拠点から全てのインターネットアクセスを直接だしてしまうことはセキュリティやコンプライアンスの観点から不安も残ります。そのため、特定のアプリケーション (SaaS) に限ってインターネットブレークアウトするという仕組みが重要になります。

アプリケーション (SaaS) を限定するには、流れているトラフィックがどのアプリケーションのものなのかを識別する必要があります。Cisco SD-WANのvEdgeルータにはトラフィックのアプリケーション識別を行うためのDPI (Deep Packet Inspection) エンジンが搭載されています。昨今のSaaSは基本的に全てhttpsでアクセスされますので、データの中身をみることはできません。このため、Cisco SD-WANでは複数の方法を組み合わせてSaaSを適切に識別しています。

実は、インターネットブレークアウトにおいて、DPIはただアプリケーションを識別できれば良いというものではありません。企業においてインターネットへのトラフィックは通常出口でNATされますが、このNATに関連して2つの大きな技術的な困難を解消する必要があります。

1つ目はファーストパケットの問題です。SaaSに対してhttpやhttpsでアクセスする際、まずはTCP 3ウェイハンドシェイクから始まります。この時点ではDPIはトラフィックがTCPであることは分かっても、それ以上のことはわかりません。TCP 3ウェイハンドシェイクが終わり、その後のやり取りが発生して初めてそのトラフィックがどのSaaSのものなのかを識別することができます。SaaSを識別する前(ファーストパケット)はデータセンター経由でインターネットに出て行ったトラフィックが、識別後にインターネットブレークアウトで拠点から出るとなると、データセンターと拠点でNAT後のIPアドレスが異なるため、SaaSのサーバからセッションがリセットされてしまい、結果的にそのSaaSが使えないということになります。

この問題を解決するもっとも単純な方法は、あて先IPアドレスやポート番号といったファーストパケットから確認できる情報だけを使ってSaaSの識別をするというものです。しかしながら、SaaSによってはIPアドレスが頻繁に追加されるケースもあり、DPIエンジンやシグニチャを頻繁に更新しないと適切にアプリケーション分類することができず、あまり望ましい方法とは言えません。
Cisco SD-WANでは独自のしくみを使って、より詳細なアプリケーションの識別方法を維持しながら、ファーストパケットの問題を解消しています。

2つ目はSaaS間の共有サービスの問題です。SaaSプロバイダによっては、非常に多くのサービスを提供しているケースがありますが、ユーザ認証のように複数のサービスで共通に使われるサービスが使われているケースはめずらしくありません。仮に、サービスAとサービスBがあり、ユーザ認証は共通化されているとします。ここで、サービスAはインターネットブレークアウトの対象とし、サービスBは対象外とした場合を考えてみます。ユーザがサービスAにアクセスしたあとにサービスBにアクセスしようとすると、サービスAでユーザ認証は終わっているため、クライアントはサービスBにアクセスする際にはその流れで継続的にアクセスを発生させようとします。しかしながら、認証サービスからは、それまで拠点側のIPアドレスから接続にきていたセッションが、データセンタ側のIPアドレスからくることになり、接続できないなどの原因となることがあります(SaaS側の実装に依存します)。

このように、あるSaaSへのアクセスをインターネットブレークアウトの対象としたいと考えた際に、相互に関与するサービスをまとめてインターネットブレークアウトの対象に抜けもれなく含めるように考えられている必要があります。Cisco SD-WANでは、DPIをつかったトラフィックの識別の観点では非常に細かい可視化を実現しながら、インターネットブレークアウトの対象の指定はインターネットブレークアウトに合わせた「まとめて」の指定が簡単にできるようになっています。


■Split DNS

インターネットブレークアウトの利点の1つは、拠点からトラフィックをインターネットに出すと、トラフィックが最短の経路で（データセンターなどを経由しないで）SaaSのサーバに到達できる点です。この利点を最大化するために重要な仕組みがSplit DNSです。

グローバルに顧客をもつSaaSでは、DNSでの名前解決の際に、クエリの送信元のIPアドレスに基づいて、よりネットワーク的に近いサーバのIPアドレスを優先して回答するようになっているケースはめずらしくありません。そのようなSaaSをインターネットブレークアウトで使う場合、そのSaaSに関する名前解決をデータセンタのDNSサーバに問い合わせてしまうと、結果的にデーターセンタにちかいSaaSのサーバのIPアドレスに名前解決してしまいます。せっかく拠点の近くにSaaSのサーバがあったとしても、インターネットブレークアウトしたあとにトラフィックはインターネット上をデータセンタの近くまで運ばれていくことになります。海外拠点などの場合には非常に非効率な状況です。

そこで、インターネットブレークアウトで使用するSaaSについては、関連するDNSクエリも拠点でインターセプトして、拠点で名前解決できるようにする仕組みがSplit DNSです。これにより、拠点からインターネットにでるトラフィックが拠点に近いSaaSサーバで処理されることが期待でき、インターネットブレークアウトの効果を最大化することができます。


■SaaSへアクセスのQoE (Quality of Experience)

拠点からインターネットにアクセスすると効率的とはいっても、拠点にあるインターネット回線が常に安定していて高速にアクセスできるとは限りません。拠点のインターネット回線がダウンしたような場合に、データセンタや地域の他の拠点にインターネットへの出口を切り替えることは重要ですが、それに加えて、拠点のインターネット回線のパフォーマンスが悪化している場合に、よりパフォーマンスのよい出口に切り替えることでユーザのSaaS使用のユーザエクスペリエンスを高く保つことができます。

Cisco SD-WANでは各拠点やデータセンタから、SaaSに対して実際にHTTPでのアクセスを行って、ネットワーク上の遅延やパケットロス率を監視しています。これによって、拠点のインターネット回線の品質が悪化している場合には、その回線がダウンしていなくても、自動的にデータセンタや他の拠点に出口を切り替える（そこまでは、WANを通って通信する）ことができるようになっています。


以上のように、SD-WANの代表的なユースケースであるインターネットブレークアウトを実現するために、Cisco SD-WANの裏側では様々な技術が使われています。