sidetech

(元)インフラエンジニアの寄り道メモ。

vCloud AirとCisco Meraki MX100 で VPNを張ったる!

今日はハマって予定の仕事全部終わってないけど、嬉しくなっちゃったんでブログ書きます[E:happy02]

多分、国内では例があるのかないのか・・・いや、誰もやらんでしょみたいな組み合わせをやってみました。

Cisco Meraki MXの3rdパーティーVPN(Non-Meraki VPN)を使って、
VMwareのvCloud AirVPNを張るという構成です。

何が真実か判らないステータスでVPNが張れちゃう結果になりました。
まず、結果から。
Vcloudairmeraki01
vCloudAirの「Edgeゲートウェイ」でVPNを組むんですが、ご覧の通りステータスは[E:wobbly]駄目になっている。だけどナレッジをみたら不具合でVPN接続が確立しているのにステータスがダメの表示になってしまう事があるらしいと・・・。[E:coldsweats01]

Vcloudairmeraki02
Meraki MXの方は今回MX100を使っていますが、動きはMXシリーズ同じです。
で、VPNステータスという項目がMerakiにはあるのですが、そちらはMerakiワールド専用になっていて、サードパーティーVPN(Non-Meraki)では、Route Tableで確認が・・・あるんですが、ステータスがグレーのダンマリです[E:weep]

で、この状態で、PINGの開通を確認しました[E:shock]

何と言っていいやら・・・。

これだと、VPNが生きているのか死んでいるのかどっちを見ても判らないという。
仕方ないので、ここで監視道具に頼りましょう。
監視ツールであれば何でもいいのですが、私はSystemAnswerG2で監視を追加してみます。
少々もったいない使い方になるのですが、SystemAnswerG2は基本的にはSNMP統計監視ツールなのですが、SNMPの応答がない端末でも「レスポンス監視」と言うのが行えます。他にもコマンド監視で駆使する方法もありますが、ここでは「レスポンス監視オンリーの方法」を。

Vcloudairmeraki03
新規にノードを追加する時に、「SNMP」の部分を「無効」を選択すると画像のような状態になります。これで、登録すると、

Vcloudairmeraki04
このノードはレスポンス監視の項目だけ設定が出来る様になります。今回はICMP的な死活と遅延値が見たいので、ICMP(PING)のレスポンスタイムを設定しました。

Vcloudairmeraki05
ちゃんと拾えていました。これでVPNが切断されても判るでしょう。今回はVPNの世界で言う「異機種間VPN」という事で、さらに曲者合わせですので、再Secなどの動きも気になります。これで安定している所が見られれば実用と判断出来ますかね。
とりあえず、Merakiにはリクエストはしておきましょう。せめてVPNステータスアップぐらいの情報はだしておくれと[E:coldsweats01]

Meraki MXのイベントログでは、とりあえず、なんとなくつながっている事は判ります。
Vcloudairmeraki06
こんな感じですね。どっちもクラウドの仕組みなんでなんだかはっきりするまでに時間がかかるんですよね。。。設定してみて30秒から1分は待って・・・いや2分待って・・・とかやりながらです。ミスったかな?と思っても「ちょっと待つ」というのがクラウド系全般で大事な事です[E:coldsweats01]

で、VPNの設定ですが、双方共に仕様が限られている関係がありまして、お互いの仕様をにらめっこして何が最適かを考えなければなりません。
Meraki MXは、クラウド系に対してはAmazonAWSやMicrosoft Azureに対しては専用項目がありますが、vCloudAirはありませんでした。
vCloudAirの方は、タンパクな仕様でして、Phare1の暗号方式に合わせるという仕様らしいので、こちらはナレッジを見ながら合わせやすい様にしていく必要があります。

VMware vCloud Air 内の IPsec VPN をリモート ネットワークに構成する (2094854)

厄介なのはパスフレーズの設定で、32文字以上という制約があります。

あと、このナレッジでの説明の後半にありますが、VPNの構成例の所で「Peer IDとPeer IP」というのがあります。これはNAT配下かそうでないかで設定条件が変わってくるので注意が必要です。

あと、IP-SecVPNにかならずある、ESPとIKEのポート開放ですが、vCloudAirもMeraki MXも通常のファイアウォール設定に書く必要はありません。勝手に空いてます[E:coldsweats02]
多分、VPNを使うと宣言すると開けてくれるのでしょう。

vCloudAirの方では、VPN開通後のファイアウォールルールを書く必要があります。
Vcloudairmeraki07
インターナルアドレスに対するファイアウォールルールを書いとかないと通信しません。

一方で、MX100についてなんですが、こちらは少しハマりました。
Vcloudairmeraki08
赤枠の所なのですが、デフォルトでは「All networks」というのが入っています。
この「All networks」は、Merakiの自分が管理しているMXシリーズ全てという意味になります。意味合いとしてはOverviewのNetoworksに出てくる一覧のMXが対象になります。
これが、どうにもID交換時に調子悪いらしく、今回使用しているMX100だけにする為のTAGを設定して、何とか乗り切りました。Merakiの中でTAGが彼方此方出てきますが、それぞれに意味が違うタグと言うのがあるようで、中々ピンと来なかったです。

さて、相性を合わせる為のVPN設定ですが、以下のような感じで張る事が出来ました。
Vcloudairmeraki09
PFSはoffでも繋がりましたが、PFS効かせられるなら効かせておきましょう。

あんまりドキュメントを見ずに必要な情報分だけで組んでしまったので、もしかしたら監視方法とか、もっと良い方法があるのやもしれませんが、取り敢えず・・・

VPN張れたったという事で…[E:happy02]

今週は、似たノリでAmazonAWSもやれる所までやってみよっかなと思っていますが、対向機器じゃない仮想機器相手というのは何だか不思議な感じですね。物理的に考えなくてよいと、全てセットアップがクラウド・・・(今回はクラウドとオンプレですが)。

vCloudAirでちょっと勝手が悪いなと思ったのは、対象セグメントの設定を事前にちゃんと入れておかないと、後から追加エントリ出来ない部分ですかね。対地となるセグメントは仕方ないとしても、L3配下にあるセグメントを後から追加出来ればいいのに、書き直さなければならないのはちょっとイタダケナイ。[E:despair]

そうそう、暫くはインフラ設計・VPN構築フィーバーです[E:wobbly]
頭の中が常にルーティングで混乱中っす。楽に出来ねーかなぁ…。

追記:8時間後の再Secに失敗しました(涙)