VXLAN について簡単にまとめてみる

ざっくりとしたVXLAN の概要。

VXLAN とは

VXLAN とは Virtual eXtensible Local Area Network の略で、L2フレームを IP でカプセル化する Data Plane の技術です。L3 ネットワーク上に仮想的な L2 ネットワークを構築できる技術です。

何ができるのか?

f:id:naoki029:20190107203732p:plain

セグメントが異なるスイッチ間で仮想的な L2 ネットワークを構築することができます。端末Aと端末Bは物理的に異なるネットワークセグメントにあるスイッチに接続しています(172.16.0.0/21 と 172.16.8.0/21 )。VXLAN を用いることで端末Aから見て端末Bは同じ 10.0.0.0/24 のネットワークに接続しているように見え、あたかも同一のL2セグメントにいるかのように通信することができます。

よく使われる用語

f:id:naoki029:20190107203759p:plain

  • アンダーレイ(ネットワーク)
    • VXLAN を構築する基盤となるネットワーク。
  • オーバーレイ(ネットワーク)
    • VXLAN によって構築された仮想ネットワーク。
  • VTEP (Virtual Tunnel EndPoint)
    • 端末が接続する VXLAN を提供するスイッチ。仮想ネットワークの出入り口(トンネル)。上図だとLeafA1, LeafA2, LeafB1, LeafB2。
  • VNI (Vxlan Network Identifier)
    • 仮装ネットワークの識別番号。従来のネットワークにおける VLAN のようなもの。24 bit で表現されるため、およそ1600万の仮想ネットワークセグメントを作成できる。

どうやって実現しているのか?

VXLAN の仕組みを理解する際は、Control Plane と Data Plane を分けて考える必要があります。Control Plane と Data Plane はネットワーク的に一般的な用語なので、VXLAN に限って使われる用語ではありません。VXLAN は Data Plane の技術です。

Control Plane

f:id:naoki029:20190107203813p:plain

VXLAN を構成している物理スイッチは、仮想ネットワークに所属している端末がどの物理スイッチの配下にいるかを知る必要があります。端末Aから端末B宛のパケットが送信された場合、LeafA1 は端末B がどの物理スイッチに接続されているかを知る必要があります。

これを実現するための方法の1つが BGP EVPN です。この方法は、BGP を利用して仮想ネットワークに所属している端末の情報を物理スイッチ間でやりとりします。

Data Plane

f:id:naoki029:20190107203920p:plain

端末Aから端末Bへ送信されたパケットは、LeafA1 で VXLAN カプセル化されます。端末Aから送信されたパケットは、LeafA1によってVXLAN ヘッダーが付加され LeafB2 に対して送信します。端末Bが LeafB2 の配下にいることは、上述のControl Plane の仕組みを使って LeafA1 は知ることができます。LeafB2 は受け取ったパケットのVXLAN ヘッダーを外して、端末Bに転送します。