VXLAN Series – Part 1
Merhaba,
Son zamanlarda NSX ile ilgili yazılar yazdıkça VXLAN ile ilgili oldukça soru gelmeye başladı. Bundan dolayı VXLAN ile ilgili bir yazı yazmaya karar verdim. Aslında VXLAN kavramını network bilgisi olmayan birine anlatmak oldukça zor. Aşağıda belirteceğim 2 tane guide basic seviyede güzel bilgiler içeriyor.
Bu arada bu yazıyı yazmamda değerli arkadaşım Burak Vardar‘ın etkisi çok olmuştur. Kendisi sürekli VXLAN yaz diye diye bende hazırlamak durumunda kaldım :))
Öncelikle “Network virtualization Design Guide” ve “VXLAN Deployment Guide”,okumanızı tavsiye ederim. VXLAN teknolojisi ile ilgili oldukça güzel guide’lar. Bu guide’lar içerisinde VXLAN’ın adım adım uygulanmasını görebilirisniz. Ancak bazı senaryolar bu guide’lar içerisinde yer almamaktadır. Bu guide’ların haricinde bu makale serisinde VXLAN ortamında packet flow’ların nasıl gerçekleştiğini detayları ile tartışacağız.
İlk olarak VXLAN‘ın farklı bileşenlerini anlatacağım.
Yukarıdaki şema incelendiğinde 2 farklı cluster’ın olduğu görülüyor. Cluster’a dahil host’lar üzerinde VXLAN component’inin çalıştığını görüyoruz.
VXLAN bir overlay network teknolojisidir. Overlay network kısaca, mevcut bir veya daha fazla networkün üstüne bina edilen, katmanları sanal veya mantıksal olan network’lerdir. VXLAN, Layer 2 logical network üzerinde oluşan IP network’dur. Overlay teknolojisinin 2 önemli özelliği aşağıdaki gibidir:
- Bu header özgün paketleri içerir. Örneğin; IPSec VPN, overlay teknolojisi.
- Communication genellikle 2 tunnel end point arasında kurulur. Örneğin, Public internet üzerinde çalışan bir IPSec tabanlı VPN’e baktığımızda tunnel’ler her iki site arasında kurulur.
Siz VXLAN üzerinde overlay teknolojisini uyguladığınızda, orjinal MAC UDP header’inin VXLAN ‘da encapsulation olduğunu göreceksiniz. Ayrıca VXLAN’a eklenen tüm vSphere host’lar tunnel end point gibi davranır. Bunada Virtual Tunnel Endpoint yani VTEP denir.
VTEP node’ları encapsulation ve de-encapsulation fonksiyonu sağlar. Biz bir paket geçireceğimiz zaman, VTEP VXLAN tabanlı Layer 2 Logical network veya herhangi bir sanal makinada encapsulate ve de-encapsulate trafiğinin nasıl akacağını belirler. Virtual Tunnel Endpoint (VTEP) aşağıdaki 3 modül’den oluşur;
VMware Installation Bundle (VIB) veya vmkernel module:
VTEP aslında VDS’in yani Distributed Switch’in bir parçasıdır ve bu VMware Installation Bundle (VIB) olarak yüklenir. Bu module VXLAN data path processing, maintenance için table bilgilerini, paketler için encapsulation ve de-encapsulation işlemesinden sorumludur.
vmknic virtual adapter:
Bu adapter control trafiği için kullanılır, ayrıca multicast join, DHCP ve ARP request’lerini taşımak için kullanılır. Herhangi bir vmknic gibi, host başına benzersiz bir IP adres atanır. Bu IP adresi VTEP IP adresi olarak kullanılırken, VXLAN trafiğini taşımak için host-to-host tunnel’leri içinde kullanılır.
VXLAN port group:
Bu ilk VXLAN yapılandırma işlemi sırasında yapılandırılır. Bundan dolayı VXLAN Configure ederken bizden fiziksel nic, VLAN, teaming policy gibi bilgileri içerir. Bu port group parametreleri VXLAN trafiğinin nasıl taşınacağını ve host üzerindeki VTEP sayesinde fiziksel nic’ler üzerinden dışarıya nasıl aktarılacağını belirler. Yukarıdaki resimde de görüldüğü gibi VLAN 2000 transport VLAN’ı VXLAN trafiğini taşımak için kullanılır. Transport VLAN’ın logical layer 2 network ile veya oluşturduğunuz virtual wire ile bir ilişkisi yoktur.
Her vSphere host üzerindeki VTEP konfigurasyonu, vCloud Networking and Security Manager aracılığı ile yönetilmektedir. Burada aklıma şöyle bir soru geliyor. Bu manager benzer bir controller olan Openflow controller’ı ile aynı görevimi yapıyor? Bunu araştırdığımda cevabın Hayır olduğunu gördüm. VXLAN için özel bir controller’a veya control plane gerek yok. Bu durumda aklıma daha farklı bir soru geliyor 🙂 VXLAN Forwarding table nasıl oluşur? Bunuda araştırdığımda, fiziksel switch mimarisinde forwardind table bilgisinin destination’a teslim edildiğini öğrendim.
VXLAN kullanan bir sanal makinanın mac adresi ile VTEP IP ile ilişkisini fiziksel network desteği ile ancak görebilirsiniz. Fiziksel ağda kullanılan prokollerin biride IP multicast’dir. VXLAN, VTEP içindeki forwarding table’ları doldurmak için IP multicast protokolünü kullanır.
Umarım faydalı olmuştur.
Teşekkürler.