2013年12月27日金曜日

ハイブリッドクラウドとMTU

すでにコロケーションサービスを利用したりして、データセンターには自前のサーバーがいて。でも、今のデータセンターの利用を拡張していったり、するのもどうかなー、資産化するのもなー。という時にはパブリッククラウドにVPN接続させて、オンプレミスとのハイブリッド。
ハイブリッドクラウドですよね。IaaSとしてのハイブリッドだけじゃなく、SaaS利用でのハイブリッドももちろん最大限活用していくのが重要だと思いますが、今回はIaaSで。

ちょっと図にするのは苦手なので拝借したものを貼り付けますー。


Amazon Web Services Blog: Introducing Amazon Virtual Private Cloud (VPC)

こんな感じのイメージですよね。
データセンターからパブリッククラウド(とりあえずAWSでどうぞ)へVPN(IPSec)を利用して経路確保。

で、プライベートアドレスを使った、データセンター拡張の出来上がり!
もともとデータセンター使ってて、がっつり移行する場合は、気にしなくても意外といけちゃうんですけど、まぁ、ね。IaaS上のサービスがいかにハイパフォーマンスになっても、利用料だといってもですよ、コンピューティングリソースは仕入れです!仕入れ値が閾値を超えない範囲なら全然大活用するんですけど、微妙だなー、オンプレもあるしなー、っていうときはどっこいせと全面クラウド移行しないで、ハイブリッドが都合いいと思うわけです。もちろん値段だけじゃないですけど、値段気にしなくていいならね、そもそも自分たちでデータセンタ作るとか、そういうところまで行き着くとおもうので、その辺バランス大事ですね。

でですよ、提供してるサービスがさらに外部サービスを呼び出す場合にですね、AWS VPCから直接外に向かう方法と、データセンター経由する方法とあると思うんですけど、シンプルなのはデータセンター経由させる方法でしょうか。既存の拡張という意味で。トラフィックが問題になったり、いろいろあるなら、VPCからNATインスタンス(NAT インスタンス - Amazon Virtual Private Cloud)よろしく。

ここで、ちょっとあれです。外部サービスでHTTPSのものをVPC内からVPN経由で呼び出す際に、全然接続できない問題が起きることがあります。ありました。起きました。

面白いですよね。

データセンター内のHTTPSサーバーにはつながるから、ふむー、ってなんたんで、しょうがないからNetwork Monitorで確認してみたんすよ。

SSL (Secure Sockets Layer) と TLS (Transport Layer Security)

ね。うまく接続できるサイトと出来ないサイトの違いはServer Helloが返ってこないところ。




上のフローが正常に接続できるとき。下がダメなとき。ハンドシェークの途中、ダメなときはServer Helloが返ってきてないでしょ。


Client Helloの後の、TLS:Continued Data見てみると、TCP: Segment Lostってなってるあるよ。

12.04 - Can't connect to certain HTTPS sites - Ask Ubuntu

なんだ、つまり、curl -vでやれば確認できたのね。じゃぁ、これどうしちゃえば、いいんすか。




おぉー。Client Helloでとまりよった。

TCP PREVIOUS SEGMENT LOST #REALLY RARE CASE# - Wireshark Q&A

と、いうわけでMTUです。

Windows Azure の VPN 接続が不安定になる問題

接続が不安定、っていうか特定サイトにまったく接続できないんですけどね。

これね、きっとね、先方のネットワーク内もIPSec的な事になってるとね、大きすぎるわー、ってなっちゃうんでしょうね。
ちなみに、今回接続できなかったところって、PINGでMTUチェックできなくてさー。もう、じゃぁ、いくつならいいんだよ!と、思ってたところで、Azureでのはなしが出てたのを思い出したんスよね。

んじゃ、1350にしとこかな、って。

一件落着でした。
自分のところがVPNなら相手のところもVPNっていうのは当然あり得ることですよねー。あれー、おやー、と思ったら、この辺チェックしてみるといいと思います。

dotnetConf2015 Japan

https://github.com/takepara/MvcVpl ↑こちらにいろいろ置いときました。 参加してくださった方々の温かい対応に感謝感謝です。