ハイブリッド接続でまさかのあそこと繋がった

この記事は [さくらインターネット Advent Calendar 2016](http://qiita.com/advent-calendar/2016/sakura) 22日目の記事です。

# それにしても

なんでこのアドベントカレンダー、こんなにも盛り上がってるんですか！枠が全部埋まってる上に[さくらインターネット（その２） Advent Calendar 2016](http://qiita.com/advent-calendar/2016/sakura2)なんてのもあるんじゃないですか。なんでこんなにビッチリなの！

**※ ユーザさまにも寄稿いただいており、ありがたい限りです m((__))m**

えー、閑話休題閑話休題。

今回はハイブリッド接続の話です。実はこの話、まだ公にはなってないんですが、**AWS Direct Connect** を経由してさくらの各サービスからプライベート接続できるようにしようと検討している話となります。

# つまりどういうことなんだってばよ？

これをこうしてこうじゃ！

![WS001095-768x430.png](https://qiita-image-store.s3.amazonaws.com/0/108990/16c89e19-f0a4-b63b-9131-2820db8719ad.png)

引用元：http://nextcloud.tokyo/?p=374

**Direct ConnectによってAWSとさくらインターネットが閉域網接続されましたｗｗｗ**
※ちなみに詳細は全然決まってません。。正式発表をお待ちください。。

ユーザ視点での構成方法は、先日弊社のエバンジェリストが以下のブログを書いてくれましたので、

[AWS Direct Connectでまさかのあそこと繋がった | TOKYO NEXT CLOUD](http://nextcloud.tokyo/?p=374)

# 本稿はインフラ側のネットワーク構成を紹介しようかと思います

こんな感じでネットワーク作りました。
![c.png](https://qiita-image-store.s3.amazonaws.com/0/108990/7d8f87b0-06b7-469e-5045-1d7fb3d6af12.png)

AWS Direct Connectの申込方法とかはこちらの資料が詳しく書かれており、参考にさせていただきました。

AWS Black Belt Techシリーズ AWS Direct Connect
http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-aws-direct-connect

元々弊社、L3ゲートウェイを通じて他キャリアとの接続を行う[プライベートリンクサービス](http://cloud-news.sakura.ad.jp/privatelink/)というのがあり、閉域網のゲートウェイをEquinix TY4(大手町)まで張り出しておりました。そのため、Direct connectの受け口があるTY2(品川)までは、[メトロコネクト](http://www.equinix.co.jp/resources/data-sheets/odeo-metro-connect/)で簡単に10Gbpsで接続できました！

エクイニクスさまさまですね！

リンクアップすると、AWSマネジメントコンソールで **available** 表示に切り替ります。

![d.png](https://qiita-image-store.s3.amazonaws.com/0/108990/92c6f8ef-2bf0-24bb-7fb4-164d3103c292.png)

売れるかわからないので、今のところシングル(1本)です。正式メニュー化することになったら冗長構成(2本)にしようと思います。

# マルチテナント構成

せっかく10Gで繋いだので、帯域を分割して複数のユーザさんで共有できるようにしたいですよね。Direct Connectではきちんとマルチテナントに対応できる仕組みになっています。いわゆるOption-A方式でのキャリア間のIP-VPN接続形態になっていて、RFCにもちゃんと書かれているんですよ。[(RFC4364 Section 10. Multi-AS Backbones)](https://tools.ietf.org/html/rfc4364#section-10)

先日、弊社のイベントで発表したセッションでも紹介しておりました。スライドを以下にアップしておりますので、もしご興味ありましたらご覧ください。

[2016.7.6 さくらの夕べ＠沖縄 さくらインターネットの「閉域網サービス」の裏側](http://www.slideshare.net/ShuichiOhkubo/201676-63799088)

Interprovider IP-VPN Option-A
![b.png](https://qiita-image-store.s3.amazonaws.com/0/108990/17b9e2d4-7ac6-3e86-97be-8a4ded7a4026.png)

弊社側のルータ(プライベートリンクのゲートウェイ)はJuniperさんのQFXシリーズを使ってます。設定例を末尾に載せておきます。

極々普通のIP-VPN(VRF)の設定ですが、マルチテナントでDirect Connectする設定例があんまりネット上になかったので、何かの参考になれば幸いです。

# ということで、

最終的にどのような形でメニュー化されるのか？されないのか？全く決まってないのですが、現在お試し利用できる状態です。

もしご興味ありましたら個別にご連絡ください！

# 付録：Juniper QFXシリーズでの設定例

当方の環境ではQFXシリーズで試しています。

インターフェイスの割り当ては以下のとおりです。

- xe-0/0/0.1234
ハイブリッド接続側対象ユーザ用のサブインターフェイス

- xe-0/0/5.200
AWS Direct Connect側対象ユーザ用のサブインターフェイス

1ユーザごとに以下の設定を投入します。

```
interfaces {
    xe-0/0/0 {
        description hybrid-l2-segment;
        vlan-tagging;
        mtu 9000;
        unit 1234 {
            vlan-id 1234;
            family inet {
                mtu 1500;
                address 10.0.0.253/24 {
                    vrrp-group 1 {
                        virtual-address 10.0.0.254;
                        priority 100;
                        accept-data;
                    }
                }
            }
        }
    }
    xe-0/0/5 {
        description aws-direct-connect;
        vlan-tagging;
        mtu 9000;
        unit 200 {
            vlan-id 200;
            family inet {
                mtu 1500;
                address 169.254.252.2/30;
            }
        }
    }
}

policy-options {
    policy-statement bgp-aws-vrf1234-export {
        term origin {
            from {
                route-filter 10.0.0.0/24 exact;
            }
            then {
                metric 100;
                accept;
            }
        }
        then reject;
    }
    policy-statement bgp-aws-vrf1234-import {
        then accept;
    }
    policy-statement vrf1234-export {
        then {
            community add vrf1234-sakura;
            accept;
        }
    }
    policy-statement vrf1234-import {
        from community vrf1234-sakura;
        then accept;
    }
    community vrf1234-sakura members target:9370:1234;
}

routing-instances {
    vrf1234 {
        instance-type vrf;
        interface xe-0/0/0.1234;
        interface xe-0/0/5.200;
        route-distinguisher 9370:1234;
        vrf-import vrf1234-import;
        vrf-export vrf1234-export;
        vrf-table-label;
        protocols {
            bgp {
                log-updown;
                group ebgp {
                    type external;
                    graceful-restart {
                        disable;
                    }
                    neighbor 169.254.252.1 {
                        description aws;
                        import bgp-aws-vrf1234-import;
                        authentication-key aaaa
                        export bgp-aws-vrf1234-export;
                        peer-as 10124;
                    }
                }
            }
        }
    }
}
```

## 設定の補足

- interfaces xe-0/0/0.1234
ハイブリッド接続におけるL2ネットワークはVXLANのオーバレイで構成していますが、QFXに対しては内部でアサインしている802.1Q VLANで出てきます。そのVLANに対してユーザさん向けのゲートウェイとなるIPアドレスを設定しています。

- interfaces xe-0/0/5.200
AWS Direct Connect向けのインターフェイスで、IPアドレスやパスワードはAWSマネジメントコンソールで表示されるものを入力します。

- routing-instances vrf1234
ユーザ単位でルーティングテーブルを隔離するために、VRFを設定し上記インターフェイスの経路を閉じ込めます。また、VRFの中でAWSとBGPピアを張ります。

- policy-options policy-statement vrf1234-export / vrf1234-import
弊社環境ではIP-VPN収容ルータが他拠点にも存在し、iBGPにて経路情報を共有しています。VRFとBGPテーブル間で経路情報を伝搬させる際にターゲットコミュニティで識別するようにしています。