Basit Yük Dengeleyici işlemleri

Bu kategoride basit bir yük dengeleme konfigürasyonu için gerekli adımları bulabilirsiniz

Örnek topoloji

Sistemlere giden yükleri dengelemek için, eğer servis ssl içeriyorsa aşağıdaki adımları içerir

  1. Yükü karşılayacak gerçek sunucuların adres ve port tanımları
  2. Gerçek sunuculardan oluşan havuzu ifade eden servis grubu tanımı
  3. Ssl trafiğini karşılayabilmek ve ssl terminasyonu yapmak için gerekli sertifikaların içeriye alınması ve ilgili sertifika template in tanımı
  4. Gelen http isteklerinin hep aynı sunucuya gönderilmesi için persistency tanımı
  5. Özellikle nat pool tanımı yapıldığında. kaybolan clientların ip adreslerini http header kısmına koymak için gerekli tanımın yapılması
  6. Servisi karşılamak için gerekli ve son tanımların bir arada toplanarak yapıldığı Virtual server, yani sanal servis tanımı

Bu işlemlerin sonucunda aşağıdaki gibi bir topolojiyi kurgulamış olursunuz.

Gerçek Sunucu tanımı

Kendi networkümüzde yer alan gerçek fiziksel veya sanal sunucularımızı ADC-SLB-Servers menüsü altından ekleyebiliriz.

Sağ üstten Create adımı altında Server ekleyebilir ve ilgili eklenilen Server'a port tanımı yapabiliriz.

Yapılan Konfigurasyonun CLI çıktısı aşağıdaki gibidir.

slb server SERVER-1 192.168.10.20 
 	port 80 tcp 
!
slb server SERVER-2 192.168.10.21 
	port 80 tcp 
!

Servis Grubu tanımı

Gui aracılığı ile gerçek sunucuları gruplamak üzere servis grubunun tanımlanması

A10 ADC cihazımızda Servis grubu tanımı yapmak için ilgili cihazımızda ADC-SLB -Service Groups tabı altından tanım yapabiliriz.

Create butonu ile önceden eklediğimiz server'larımı burada oluşturduğumuz Servis Gruplarına bağlayabiliriz.

yukarıdaki değişikliğin show çıktısı aşağıdaki gibidir.

slb service-group SERVERS tcp 
  backup-server-event-log 
  health-check ping 
  member SERVER-1 80 
  member SERVER-2 80 
!

Sanal Servis tanımı

Servis grubunu ve/veya templateleri bağlamak için virtual slb server tanımı

A10 ADC cihazımızda Virtual Service oluşturup buna göre ilgili bir destination IP servisini dinleyip buna gelen paketleri istediğimiz Servis grubuna yönlendirebilir ve bu trafik üzerinde istediğimiz gibi manipülasyon yapabiliriz.

Sırasıyla A10->>ADC->>SLB->> Virtual-Service ;

Virtual Servis oluştururken, istersek oluşturuğumuz bir nat pool'unu bu servise bağlayabiliriz. Oluşturduğumuz bir HTTP Headerını bu servise bağlayıp trafiği istediğimiz gibi manipüle edebiliriz.

Yukarıdaki değişikliklerin show çıktısı aşağıdaki gibidir.

slb virtual-server VIP 5.5.5.5 
  port 80 http 
    name VIP_80_http 
    source-nat pool Local-Pool 
    service-group SERVERS 
    template persist source-ip Sticky-Local 
    template http X-forwarded 
!

Sertifika Yönetimi

Cihaza sertifika yükleme silme ve değişiklik işlemleri Decryption veya ssl-offload işlemleri için cihaza sertifikalar yüklememiz gerekebilir.

Bu işlem için aşağıdaki adımları izleyebilirsiniz.

Sertifika ekleme

  1. Logon olduktan sonra ADC -> SSL Management ekranına geçiyoruz

  2. Import butonuna tıklıyoruz

  3. Certtificate opsyionunu seçip sertifikaya bir isim veriyoruz bu ismi kopyalamayı unutmayın, düzenli görünmesi için key adımında da aynı ismi kullanacağız.

  4. Bu adımda da yine importa bastıktan sonra bu sefer key opsiyonunu seçip sertifika adımınındaki isimle aynı ismi veriyoruz.

  5. Sertifika ve key inin birbirlerine uygun şekilde görüntülendiğine emin oluyoruz.

New Persistency tanımı

Load Balancer cihazımızda dışarıdan gelen istekleri source-ip header'ına bakılarak senaryo veya alt yapımıza göre aynı source ip'ye sahip istekleri sürekli aynı server'a yönlendirmek isteyebiliriz. Bunun için öncelikle Persistence template'i hazırlayıp bu template i ilgili virtual servis' e bağlamamız gerekiyor. Sırayla SLB-Template-Persistence altına gidiyoruz. Ardından Persistence altında source-ıp' ye göre template oluşturuyoruz.

Create ->>>> Persist Source IP

Source Ip template Detaylarını ekliyoruz.

Bu aşamada oluşturduğumuz Persiste Source IP template'ini virtual servise bağlamamız gerekiyor.

ADC->>>SLB->>>Virtual Services İlgili daha önceden oluşturulan Virtual Service i editleyip ilgili template bağlamamız gerekiyor.

Yukarıdaki değişikliklerin show çıktısı

slb template persist source-ip Sticky-Local 
!
slb virtual-server VIP 5.5.5.5 
  port 80 http 
    name VIP_80_http 
    source-nat pool Local-Pool 
    service-group SERVERS 
    template persist source-ip Sticky-Local 
    template http X-forwarded 
!

XFF yada x forwarded for tanımları

saklanan client ip nin header içinde iletimi

Load Balancer cihazımız dışarıdan gelen isteği içeriye alırken NAT yapıyor olabilir.Bu durumda default olarak dışarıdan gelen talebin orjinal source IP bilgisi içeriye gönderilen paketin içerisinde yer almayacaktır.Bu durumda orjinal source ip imizi kaybetmiş olacağız.Bunu önlemek ve orjinal source ip header'ını pakete eklemek için L7 Template oluşturup, bu oluşturduğumuz template'de """ Client IP Header Insert """ fonksiyonunu açmamız gerekiyor.

Ardından bu oluşturulan Layer 7 Template'i ilgil virtual-service bağlamamız gerekiyor. ADC-SLB-Virtual Services

Yukarıdaki değişikliklerin show çıktıları aşağıdaki gibidir.

slb template http X-forwarded 
  insert-client-ip replace 
!
slb virtual-server VIP 5.5.5.5 
  port 80 http 
    name VIP_80_http 
    source-nat pool Local-Pool 
    service-group SERVERS 
    template persist source-ip Sticky-Local 
    template http X-forwarded 
!

Nat pool tanımı

Yük dengeleyiciler, varsayılan ağ geçidi -default gateway- olmadıklarında, erişmeye çalıştıkları sunucuların, trafiği kendilerine geri gönderebilmeleri için, erişim talebi yaparken, kaynak adreslerini değiştirirler.

Nat Pool oluştururken ADC->>>Ip Source Nat kısmına gidiyoruz.

Create kısmından yeni NAT poolumuzu oluşturabiliriz.

Ardından bu yaptığımız NAT pool tanımını ADC-SLB-Virtual Services altında ilgili Virtual Service' e bağlamamız gerekiyor.

Yukarıdaki değişikliğin show çıktısı aşağıdaki gibidir.

ip nat pool Local-Pool 192.168.10.50 192.168.10.55 netmask /24
slb virtual-server VIP 5.5.5.5 
  port 80 http 
    name VIP_80_http 
    source-nat pool Local-Pool 
    service-group SERVERS 
    template persist source-ip Sticky-Local 
    template http X-forwarded 
!