メリークリスマス!
Yahoo! JAPANでインフラ・ネットワーク領域の技術責任者をしている高澤です。
昨年に続き2回目の試みとなったYahoo! JAPAN Tech Advent Calendar、みなさまお楽しみいただけましたでしょうか。今年も広範囲な技術領域の記事が公開されてきましたが、昨年に比べてiOS/Android関連の記事が増えた印象です。
Yahoo! JAPANは今年、スマートフォン版のトップページをリニューアルするなどアプリ戦略をより推進してきました。
これはユーザーが利用するデバイスの変化に対応した形となりますが、これからもデバイスの多様化は進み、さまざまなモノがインターネットに繋がるようになるでしょう。
Yahoo! JAPANはこれからもその変化に対応し、新しい技術領域にチャレンジし続けていきたい思っていますが、それを支えるのがインフラ・ネットワークだと思っています。これはいつの時代も変わらないと思っています。
EVPN
Yahoo! JAPAN Tech Advent Calendar 2015の最終日は、ネットワーク業界ではホットなEVPN(Ethernet VPN)について書きたいと思います。
今回、日商エレクトロニクスの高橋さん(ShowNetではコントリビューターとしても活躍されている方です)と共同でバックボーンへのEVPN導入に向けて検証を行いました。
その結果、今後のYahoo! JAPANのネットワークに活かすことが出来ると分かり、その内容について今回共同で書かせていただく事になりました。
1.EVPNってなに?
今年の2月にRFC 7432で策定され、大手ネットワークメーカーを中心に実装が進んでいる新しい標準化ベースの次世代VPN技術です。(Interop 2015のShowNetにおいて、相互接続試験が行われ話題となりました)
これまで広域イーササービスやDC間のLayer 2 network延伸技術はVPLSやPBBといった技術が有りました。しかし、スケールや拡張性、可用性についていくつか問題がありました。そこで出てきたものがこのEVPNという技術になります。
2.特徴
従来のL2 延伸技術と比較して以下の特徴があります。
- Multi-home: Active-ActiveおよびActive-Standbyの冗長が可能
- Control Plane: BGPを使用しMAC addressを広報するため、Communityを用いた制御が可能
- Service: Integrated Layer2 and layer3 service(L2/L3のサービス統合)
- Data Plane: 用途に応じ最適なData Planeを選択可能(VXLAN/ MPLS/ PBB)
- Fault Tolerance: Fast Convergence 対応
3.仕組みについて
EVPNは下記のようにコントロールプレーンとデータプレーンが分離されています。
各々の説明は後述します。
3-1.コントロールプレーンについて
EVPNの特徴として、BGPのシグナリングを用いてIPおよびMACアドレスを互いに広報し合います。
BGPでIPおよびMACを広報するフォーマット(MAC/IP Advertisement Route)は以下の通りです。
EVPNで新たに定義されたEthernet Segment Identifier(以下ESI)とは、PEをMulti-homeする場合に必要な識別子となります。
これを用いる事で、MC-LAG等の技術を使用しなくとも、マルチホーム(Active-Active)やシングルホーム(Active-Standby)の実装が可能となりました。
また、BUM対策としてEVPN網内はSplit Horizonにより、ループを回避する事ができます。
3-2.データプレーンについて
Encapsulation typeとしてはVXLAN , MPLS, PBBの3種類あります。
それぞれの違いと適用例は以下の通りとなります。
VXLAN
VMwareのNSXにより一躍有名になったOverlay技術になります。
(NSXの場合はOVSDBというプロトコルを用いてMACアドレスの情報をコントローラーに伝達する仕組みになります)
昨今のDC networkはネットワークをよりスケールさせるために、BGPを用いたIP FABRICというLayer 3のネットワークデザイン手法を用いることが増えてきました。しかし、一部のシステムに置いてLayer 2のネットワークを求められることがあり、その場合にこのVXLANのトンネリング技術を用いることができます。VXLANは単純にIP の到達性があれば実装可能なため、既存のネットワーク環境を変更する事無く必要な箇所のみL2を延伸する事が可能なデータプレーンとなります。
MPLS
VXLANと何か違うの? と思う方がいらっしゃるかと思います。端的に言いますと、MPLSはVXLANと違いトラヒックエンジニアリングができることがメリットとなります。
トラヒックエンジニアリングとは、コストに左右されず自由に経路制御ができる技術のことです。
例えば、キャリアやISPなど全国に通信拠点がある会社の場合、鹿児島から東京への通信をするには複数の経路があります。そのため、用途やSLA(遅延や帯域など)に応じ、最適なパスを選択することが可能な技術を持ったデータプレーンのためWANネットワークに適していると言えます。
弊社の東北から九州までのバックボーンはMPLSで構築されています。
PBB
PBBは、広域イーササービスをよりスケールさせるための技術となります。
上記2つのデータプレーンの場合、各サイトのPE Routerは収容するカスタマーのMAC addressを全て学習する必要があります。
しかし、PBBの場合、MACフレームにPBB用のMACフレームを新たに付けて加えるため、CE(収容するカスタマーのSW)のMACだけを学習すれば良い(最小限のMAC学習で済む)ため、よりスケールさせることが可能となります。
一方、これにより上記2つのデータプレーンでは実装できるL3のserviceは提供できないというデメリットはあります。
4.実際に触ってみた
以下のようにjuniper networksのMX80およびMX240を使用し、4台構成で環境を作ってみました。
4-1経路の見え方
下記のように/304という形で経路が見えます。どのルータから広報されているかMAC単位で確認することが可能です。
ARP解決している経路は下記のようにMAC addressの後にIP addressも一緒に表示されます。
4-2. ユーザー単位でのMACの制御の仕方
MACを経路として広報している場合に、どうやってユーザー単位で通信を制御するのかと疑問に思う方もいらっしゃるかと思います。そちらに関しては、BGPの拡張Communityを使用することで実現しています。これを使用することでユーザーAはCommunity A、ユーザーBはCommunity Bという仕組みで通信を制御しています。
4-3.CEの冗長構成について
冗長しているMX240同士、単純にESI IDとLACPのsystem IDを同じ設定にするだけで簡単に筐体間の LAG(MC-LAG のような動作)を実現できます。
対向側のEX4300は通常のLink Aggregationの設定です。
4-4. EVPN(MPLS)のsample configuration
参考までにEVPN周りのsample configurationを記載します。従来のVPLSと設定はほとんど変わらないです。
EVPN特有の設定部分を赤文字にしております。BGP配下でevpn signalingを設定することにより、MAC addressをbgpで広報することが出来るようになります。また、緑文字の部分でCommunityを指定することにより、4-2で紹介しましたユーザー(instance)
単位の通信制御を可能としています。
5.Yahoo! JAPAN におけるEVPNの検討
Yahoo! JAPANの拠点は北は東北から南は九州まで全国に渡り、データセンターを配置しております。
その、拠点を結ぶバックボーンはJuniperで構築されております。
バックボーンはJunosのLogical Systemを利用した階層構造をもったバックボーンを構築されており、www.yahoo.co.jp等Yahoo! JAPANのサービスを運用しているプロダクション層、社内NW等の内層と多層の構造をとっています。
この層の一つとして、EVPNの層を検討しています。
データセンター間でのL2延伸が可能となり、いろいろな状況下でどうしてもL2延伸をしなければならなくなった際に、拡張しやすいEVPNを利用して全国の拠点に延伸をしていきたいと考えています。
これまでも、様々な技術で社内L2延伸の要望に応えるため、いろいろ機能を組み合わせて実現しておりました。
今後はEVPNで全国の拠点へスマートにL2を延ばしていけるものと思います。
さいごに
いかがでしたでしょうか。
今後はEVPNが業界のスタンダードになっていくことを祈り、こういった新しい技術が今後のYahoo! JAPANのネットワークを支えていきます。
Yahoo! JAPAN Tech Advent Calendar 2015を最後まで読んでいただきありがとうございました。
それではみなさん良いお年をお過ごしください。
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました