• EVPN – VXLANコントロールプレーンの新たな選択肢(前編)

 
 
Print Friendly, PDF & Email

本記事では、EOSが4.18.1Fからサポートを開始したEVPNを扱います。厳密に書くと、RFC7432で定義されている BGP MPLS-Based Ethernet VPN ですが、本記事ではEVPN表記で統一します。 この前編では、我々のEVPNへのアプローチ、EVPNの基礎知識、そしてアリスタネットワークスの製品でEVPN をお使い頂く際に参考にして頂ける基本例(トポロジー及びコンフィグレーション)をお伝えします。  

 

はじめに

アリスタネットワークスは、ネットワーク仮想化のテクノロジーの一つであるVXLANに標準策定の初期段階から深く携わっており、他社に先駆けてVXLAN対応製品を提供してまいりました。その後データセンターを中心とした様々なネットワーク環境で実績を積んできたVXLANですが、マルチベンダー環境でのコントロールプレーンを実現する仕組みが非常に限定されていた(*)のが課題でした。後述しますが、その課題を解決するべく期待されているのが EVPNである為、我々も今般、満を持してEVPNのサポートを開始しました。 (*) RFC7348では、マルチキャストベースのコントロールプレーンが述べられています。 EVPNは文字通り、L2あるいはL3のEthernet VPNサービスを提供する仕組みですが、各種情報の交換、つまりコントロールプレーンにMP-BGPを用います。また、実際にトラフィックを運ぶデータプレーンに関しては、VXLANやMPLSなどを柔軟に選択できるようになっています。  

EVPN の用語と動作概要

EVPNにはいくつかの耳慣れない用語がありますので、以下の図にて解説します。 EVPN-terms 動作についてですが、大別して2つのカテゴリーに分けられます。一つ目が L2 EVPN、もう一つが L3 EVPN です。 前者はVXLANの代表的なユースケースであるL3のIPファブリック上をトンネリングしてL2 オーバー L3、つまりL2ネットワークの延伸を行う際に用いられます。ここでは、EVPNにてMACアドレス等のL2ブリッジングの為の必要情報を交換します。 後者はこれまでBGP + MPLSなどで行っていたL3 VPNサービスと同様な仕組みを、EVPN + VXLANなどで実現するものです。ここでは、EVPNにてIPプレフィックス等のL3ルーティングの為の必要情報を交換します。  

新たなNLRI – 5つのEVPN Route Type

前述の通り、EVPNではNVE/VTEPの配下に存在するクライアントのMACアドレスを広報したり、IPプレフィックスを広報したりしますが、そのオペレーションの為に新たなNLRIがBGPに追加されました。それぞれ、以下の図にて解説します。 EVPN-Routetypes  

EVPN + VXLAN の基本例

それでは実際のオペレーションのイメージを掴んで頂く為に、具体的なトポロジーと設定するコンフィグレーションをご紹介します。

L2 EVPNの場合

この例では2つのVTEP間で、EVPNのRoute Type 2とType 3 を用いてL2ブリッジングの為の情報を交換しており、それらの情報を元にVTEP間をVXLANでトンネリングします。 l2-sample 以下に片側のVTEP(VTEP-1)に設定された主要箇所を抜粋します。

-- skip --
interface Ethernet6
switchport trunk allowed vlan 10, 20
switchport mode trunk
-- skip --
interface Loopback0
ip address 1.1.1.1/32
interface Loopback1
ip address 2.2.2.1/32
interface Ethernet99
no switchport
ip address 192.168.3.1/30
-- skip --
interface Vxlan1
vxlan source-interface Loopback1
vxlan udp-port 4789
vxlan vlan 10 vni 1010
-- skip --
router bgp 65001
router-id 2.2.2.1
neighbor 1.1.1.2 remote-as 65002
neighbor 1.1.1.2 update-source Loopback0
neighbor 1.1.1.2 ebgp-multihop 5
neighbor 1.1.1.2 send-community extended
neighbor 1.1.1.2 maximum-routes 12000
neighbor 192.168.3.2 remote-as 65002
neighbor 192.168.3.2 maximum-routes 12000
redistribute connected
vlan 10
rd 2.2.2.1:10
route-target import 2.2.2.2:1010
route-target export 2.2.2.1:1010
redistribute learned
!
vlan 20
rd 2.2.2.1:20
route-target import 2.2.2.2:1020
route-target export 2.2.2.1:1020
redistribute learned
address-family evpn
neighbor 1.1.1.2 activate layer-2

 

L3 EVPNの場合

この例では2つのVTEP間で、EVPNのRoute Type 5を用いてL3ルーティングの為の情報を交換しており、それらの情報を元にVTEP間をVXLANでトンネリングします。 l3-sample 以下に片側のVTEP(VTEP-1)に設定された主要箇所を抜粋します。

-- skip --
vrf definition blue
rd 2.2.2.1:1000
!
vrf definition green
rd 2.2.2.1:2000
-- skip --
interface Vlan10
no autostate
vrf forwarding green
ip address 10.10.1.254/24
interface Vlan11
no autostate
vrf forwarding Blue
ip address 20.10.1.254/24
-- skip --
interface Loopback0
ip address 1.1.1.1/32
interface Loopback1
ip address 2.2.2.1/32
-- skip --
interface Vxlan1
vxlan source-interface Loopback1
vxlan udp-port 4789
vxlan vrf blue vni 2000
vxlan vrf green vni 1000
-- skip --
router bgp 65001
router-id 1.1.1.1
neighbor 192.168.1.1 remote-as 65000
neighbor 1.1.1.2 remote-as 65001
neighbor 1.1.1.2 remote-as 65001 ebgp-multihop 5
neighbor 1.1.1.2 send-community extended
neighbor 1.1.1.2 maximum-routes 12000
address-family evpn
neighbor 1.1.1.2 activate
vrf green
rd 2.2.2..1:1000
route-target import 2.2.2.2:11
route-target export 2.2.2.1:10
redistribute connected
!
vrf blue
rd 2.2.2.1:2000
route-target import 2.2.2.2:21
route-target export 2.2.2.1:20
redistribute connected

 

まとめ

いかがでしたか?VXLANもEVPNも比較的新しいテクノロジーですので、今まで「難しそうだ」あるいは「とっつきにくい」等のイメージを抱いていらっしゃった方も、「思ったほど難しくないかも」と感じて頂けたのではないでしょうか? その理由としては、VXLANの根底にあるのは我々が普段から慣れ親しんだVLANであり、またEVPNもその本質は十分に枯れたテクノロジーであるBGPに過ぎないからではないかと思います。 ただ、この前編では扱いませんでしたが、これまでのBGPにはない新たな概念が盛り込まれているのも事実です。 次回はそのあたりのEVPN特有の勘所(冗長手法やピアリング方式など)に焦点を当てた後編をお届けしますので、乞うご期待ください。

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: