Application Centric Infrastructure (ACI) Forwarding & Operation

Tag

, , ,

Leaf Packet Flow

Screen Shot 2015-12-13 at 5.23.52 AM

Ketika paket masuk ke VTEP (Ingress) dari user space, maka VTEP akan melakukan :
  1. Mengambil informasi EPG
  2. Melakukan Station Lookup
  3. Melakukan Policy Lookup
  4. Enkapsulasi
  5. Bounce
Ketika paket keluar dari VTEP (Egress) dari fabric space, maka VTEP akan melakukan :
  1. Terminasi VxLAN
  2. Melakukan Station Lookup
  3. Melakukan Policy Lookup
  4. Memilih port untuk egress

Distributed Forwarding Control Plane

Setiap VTEP memiliki Local Station Table (LST) yang berisi informasi identitas (IP Address dan MAC Address) dari sebuah endpoint. Misalkan terdapat 2 Endpoint yang terkoneksi ke VTEP yang berbeda. Endpoint A memiliki IP A dan MAC A. Endpoint B memiliki IP B dan MAC B.
Ketika Endpoint A ingin berkomunikasi dengan Endpoint B, Endpoint A akan mengirimkan Address Resolution Protocol (ARP) Request untuk mendapatkan informasi MAC address Endpoint B. Ketika VTEP mendapatkan ARP Request dari Endpoint A, maka VTEP tersebut mengetahui bahwa terdapat Endpoint A dengan informasi IP A dan MAC A. Informasi tersebut akan dicatat pada LST. Setelah VTEP mengetahui informasi mengenai Endpoint, maka VTEP akan melakukan Station Lookup. Jika tujuannya sudah tercatat pada LST, maka paket akan langsung diforward. Namun jika tidak, maka paket akan diteruskan ke Spine sebagai proxy untuk mencari identitas Endpoint B. Spine memiliki Global Station Table (GST) yang berisi informasi dari semua endpoint di semua Leaf. Jika Spine memiliki informasi yang dicari, maka Spine akan meneruskan paket ke Leaf yang memiliki Endpoint B. Endpoint B akan membalas ARP Request dari Endpoint A dengan ARP Reply yang mengikuti path yang sama. Setelah mendapat balasan dari Endpoint B, Leaf Endpoint A mengetahui Leaf mana yang memiliki Endpoint B. Informasi ini diupdate ke dalam LST sehingga untuk paket berikutnya, Leaf Endpoint A tidak perlu bertanya ke Spine.

L2/L3 Forwarding

Screen Shot 2015-12-13 at 5.49.02 AM

Forwarding dari Endpoint A ke Endpoint B sudah dibahas pada bagian sebelumnya. Bagaimana jika Endpoint A memiliki network segment yang berbeda dengan Endpoint B? Siapa yang akan melakukan routing antar segment?
Endpoint di-mapping ke dalam Bridge Domain (BD). Default gateway untuk setiap BD adalah Pervasive Switch Virtual Interface (SVI) atau dikenal sebagai Pervasive Gateway. Pervasive Gateway ini tidak hanya terletak pada 1 VTEP, namun terletak secara distributed pada setiap VTEP. Endpoint akan melakukan anycast untuk mencari gateway terdekat, yaitu VTEP yang terkoneksi langsung dengan Endpoint. VTEP tersebut akan melakukan routing antar segment. Perlu diingat bahwa segment ini hanya berlaku untuk BD yang spesifik.

Unicast/Multicast Forwarding

Karena semua traffic dalam user space akan dienkapsulasi ke dalam VxLAN, maka unicast/multicast yang terjadi dalam user space akan dimapping ke dalam VxLAN ID. Dengan demikian, forwarding di dalam ACI Fabric akan menjadi Unicast karena trafficnya adalah dari VTEP ke VTEP lainnya.

Bounce Forwarding

Screen Shot 2015-12-13 at 6.05.02 AM

Misalkan terdapat VM1 di VTEP 1 dan VM2 di VTEP3. Traffic akan berjalan dan LST akan berisi informasi mengenai IP dan Mac address dari masing-masing VM. Di dalam Data center, sangat dimungkinan sebuah VM untuk pindah ke host lain yang berbeda rak, misalnya dengan menggunakan VMotion. Misalkan VM2 pindah ke host yang terletak pada VTEP5.
Setelah VM2 pindah ke VTEP5, hal pertama yang dilakukan oleh VM tersebut adalah mengirim Gratituous ARP (GARP) yaitu ARP Reply yang dikeluarkan tanpa ARP Request. GARP dikeluarkan untuk memberitahu VTEP5 bahwa ada host VM2. Karena LST di VTEP1 belum berubah, maka VTEP1 tetap akan mengirim paket ke VTEP2. VTEP2 mengetahui bahwa VM2 sudah tidak ada dan tidak tahu pindah kemana. Maka VTEP2 akan mencari ke Spine dimana lokasi baru dari VM2. Spine akan memberitahu bahwa VM2 pindah ke VTEP5. Setelah itu VTEP2 akan melakukan forwarding ke VTEP5. Forwarding seperti ini disebut Bounce Forwarding karena VTEP1 tidak langsung mengetahui lokasi sebenarnya dari VM2. Informasi terakhir yang dimiliki VTEP1 adalah VTEP3 sehingga paket masih dikirimkan kesana. Setelah VTEP5 mendapat paket yang berasal dari VTEP1, maka VTEP5 akan langsung membalas ke VTEP1, kemudian VTEP1 akan melakukan update terhadap LST nya.

Sumber

  1. Cisco ACI Fundamental
  2. A Summary of Cisco VXLAN Control Planes: Multicast, Unicast, MP-BGP EVPN