Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Build Fullmesh VPN by VyOS with Serf! VyOS Users Meeting Japan #1 LT

Build Fullmesh VPN by VyOS with Serf! VyOS Users Meeting Japan #1 LT

「ドキッ!トンネルだらけのVPN大会(メッシュ編)」
VyOSとSerfでフルメッシュVPN!
@Yaggytter
VyOS Users Meeting Japan #1 LT

YAGASAKI Akihiro

July 26, 2014
Tweet

More Decks by YAGASAKI Akihiro

Other Decks in Technology

Transcript

  1. 「ドキッ!トンネルだらけの
    VPN大会(メッシュ編)」
    VyOSとSerfでフルメッシュVPN!
    @Yaggytter
    + 某SIer古城戸さん
    VyOS Users Meeting Japan #1 LT

    View Slide

  2. さっそくですがこんな状況
    ハッシュタグ #vyosjp にてつぶやいた
    URLをみていただくと?!
    すでに、4つのVyOSが!
    フルメッシュってる?!
    ここにさらにひとつ追加!

    View Slide

  3. さっそく追加してみます!

    View Slide

  4. まえがき
    LTはじめてです!
    ひとつよろしくお願いいたします!
    緊張しております!
    あせあせしてやります。
    LTということで、、、

    View Slide

  5. ベース
    Serfとはなに?
    オーケストレーションツール的なやつです。
    詳しくは、@zembutsuさんのスライドを見てみてください
    AWSとは?
    AmazonWebServicesです。クラウドコンピューティングです。
    詳しい使い方は、オフシャルサイトおよび
    classmethodさん、suz-labさんのサイトを見てみてください。
    VyOSとは?
    ご存知の通りです!

    View Slide

  6. 自己紹介
    @Yaggytter
    現在
    ・某SIerグループ会社で管理職もどき
    ・弱冠39歳(来年40歳)
    得意な仕事
    ・承認ボタンをひたすらクリック
    承認ボタンクリックの合間に技術的な仕事をしています
    (最近はAWSが多い・・・)
    自称プログラマ
    ・C++が好きです。最近は、Cocos2d-xに挑戦!
    いにしえのプログラマなので、ちょっと調べて気に入ったのが無いと作っちゃおうとす
    る悪い癖が・・・
    なので、今回はSerfに挑戦!

    View Slide

  7. Vyatta
    こんな感じでやってますなう中
    Region
    Vyatta Vyatta
    Vyatta
    Region
    Vyatta Vyatta
    Vyatta Vyatta
    Region
    Vyatta Vyatta
    Vyatta
    Region
    Vyatta Vyatta
    Vyatta Vyatta
    Operators
    Intranet
    (Enterprise systems)
    Developers
    virtual private
    gateway

    View Slide

  8. 経緯
    AWS上で、複数Regionを一つの固まりと見せるようにするためスター型風ト
    ポロジでVyattaにてVPNを構築し運用していてとっても便利でした。
    しかし!あたりまえですが、接続が集中しているVyattaが落ちると、そこから
    先の経路が全滅します。あたりまえですが!あたりまえですが!
    Failoverするようにしても、やっぱり全滅は痛い・・・
    そこで!やっぱ、フルメッシュでつないだ方がよくね?
    でも、、、トンネルの数!拠点増えた時めんどい?!
    あれ?こういう時にSerfって使うんじゃないの?
    ということで!今回は、
    「ドキッ!トンネルだらけのVPN大会(メッシュ編)」
    をお送りさせていただきます。

    View Slide

  9. こんな感じで作りました
    Region
    VyOS
    Region
    VyOS
    Region
    VyOS
    Region
    VyOS
    Region
    VyOS
    Web
    Server
    Serf Cluster
    どっかにJOINしたら、
    みんなの情報集めて
    つないじゃう!
    LEAVEとかFAILした
    ら、そいつへの接続
    情報は抹消!
    QUERYでみんなの
    状況を集めてきて
    可視化するのも簡単!

    View Slide

  10. いいことづくし?
    なにが利点か
    ・どれか1つのGlobalIPを知っていれば
    それでOK!万事休す!
    なぜJOINするのか?そこにNODEがあるから。
    ・あとはほとんど気にしなくてよい
    ・全VPNルータを設定しなくてもよい
    ・逆に、いつ切断してもOK
    ※悪いことにはマスクがかかっています

    View Slide

  11. 必要な情報
    今回のフルメッシュVPNをつなぐのにあたってVPN
    接続時に最低限必要だった情報は以下。
    ・PREKEY
    自分へのIPSec接続用のPreSharedKey
    ・SERFKEY
    SerfのEncription用のKey
    ・JOINIP
    Serfのメンバのどれか一つのIP

    View Slide

  12. 完成図
    うだうだ言っている間に
    出来ているか見てみましょう!
    出来ていなかったらご愛嬌・・・

    View Slide

  13. 今後
    今後の予定
    ・同一セグメント内に2台以上い
    た場合は勝手に冗長構成にす
    る⇒AWSのIAM Roleと
    RouteTableを使えばたぶんすぐ
    できる
    ・ROLEによる複数フルメッシュ
    VPN群の作成⇒フルメッシュVPN
    群同士をつなぐのも!
    ・同一セグメントも気にしないで
    つなぎたい⇒L2TPv3も組み合わ
    せる?
    課題
    ・セキュリティ
    Serfのencryptionのみなので・・・
    VyOSのFirewallで対応?
    最初のjoin先は手動で開ける
    他はjoinメッセージを受けたら対象
    GlobalIPを開ける???
    う~ん。。。
    ・品質
    本番環境への適用に向けて、もう
    少し安定するようにしたい雰囲気!

    View Slide

  14. あとがき
    最近聞く、Infrastructure as Code って、いまいちピンとこない。
    Chef(しかもsolo)だ〜なんだ〜っていう事例を見ても、
    Infrastructure as Code
    というか、OS設定、ミドルウェア設定、アプリケーションのデプロイを自
    動化しているイメージの例が多くて、
    あんまり「Infrastructure」 as Code な気がしない・・・
    もっと、低レイヤーを含めてコード化すればピンとくる気がする。。。
    ・仮想マシン構成のコード化 ⇒ まあ、よくあるよね
    ・コンテナ構成のコード化 ⇒ まあ、コンテナだからよくあるよね
    ・ネットワーク構成のコード化⇒SDN/NFVをベースとして!
    逆にこのへんがピンとくる!

    View Slide

  15. [email protected]:~$ sync
    [email protected]:~$ sync
    [email protected]:~$ sync
    [email protected]:~$ poweroffnow
    なんやかんやいいましたが
    VyOSっていいよね!
    つづきはWebで http://momiage.com/vyosserf
    逆にありがとうございました
    以上

    View Slide