Hocam Selam…!
Bu yazımda sizlere Fortigate üzerinde Virtual Server üzerinden LoadBalance özelliğini aktif edilerek kullanılmasını anlatmaya çalışacağım.
Öncelikle Loadbalance kavramını ile başlayalım.
LoadBalance Nedir?
Modern topolojilerde artık network mimarilerinte internet ve local trafikler artmaktadır. 100Gpbs – 200Gbps local networklerin döndüğü 1Gbps-10Gbps arası internet trafikleri artık normalleştiği zamanlardayız. Artık evlerimizde bile 1Gbps internet kullanımları sıradanlanmıştır. Böyle topolojilerin artık Dünya ve çağımıza uygunluğundan internet trafikleride paralel de büyümektedir. Büyüyen intenet trafikleri sanal ortamlara erişimler, internet haberciliği ve yayınıcılığı, internet üzerinden medya, videı ve platformları, internet üzerinden alış-veriş siteleri gibi bir çok sistemler bu altyapıları destelyebilmek için network mimarilerini genişletmektedir. İstemci sayısı artışlarına karşılık verecek sunucu isterleri de bu oranda artmaktadır.
İstemcilerine kesintisiz hizmet vermek isteyen yapılarda artık sunucu kaynaklarını (CPU,RAM,Disk..) artırmak ve sunucu yatırımı ile sayılarını artırmaları gerekemektedir. Bu tarz yapılara mevcut kaynak artırılmak isteniyorsa “scale-up” , yeni sunucular eklemek istiyorlarsa “scale-out” olarak bilinir.
İnternet trafikleri istemcilerden sunuculara doğru giderken önüne konulan yük dengeleyici(load-balancer) ile karşılanması gerekecektir. Yük dengeleyiciler bu trafikleri eşit miktarda ve belirli kurallara göre dağıtmaktadır.
Yük dengeleyiciler (LoadBalancer) yükü dağıttıları sunucuların sağlık durumlarını belirli aralıklarla izleyebilmektedirler. Çalışmayan sunuculara trafik yönlendirmezler ve yeni eklenen bir sunucuya ortak olarak trafiği bölmeye başlarlar. Bu özellikleriyle de yüksek erişilebilirliği (HA) sağlarlar. Sunucular içerisindeki kesinti yaratabilecek upgrade, reboot, güncelleme gibi durumlarda etkilenmemiş oluruz. Problem giderildikten sonrada trafikler sunucuya tekrar iletmeye başlayacaktır.
Yapılandırmalar da Load-Balancer izlemesi için bir çok protokolden faydalanabilmekteyiz. HTTPS, HTTP, PING, TCP gibi protokoller ile sunucu altyapımızı izleyerek buna göre trafik yönlendirmelerimizi yapabiliriz.
Load Balance yapan başlıca marka ürünleri F5, Citrix, Azure, Amazon gibi ürünler bilinenleridir. Bu yazımda paylaşcağım ise Fortigate Firewall ürünlerin de bu özelliğin desteklediğinden ve yaygın kullanılması gerekliliğini düşündüğümnden buna göre ilerleyeceğim
Load Balance Metodları Nelerdir?
Load Balance türleri üretici markaların mimarilerine göre değişkenlik gösterebilir. F5 ve Citrix Netscaler gibi öncü ve duayen üreticler de çok fazla seçenekler vardır. Round Robin, Ratio , Least Connections, Observed, Least Sessions Predictive, Least Connections, Fastest, Dynamic Ratio,URLHASH, DESTINATIONIPHASH, TOKEN… gibi çok fazla metod vardır, mimarinize göre biri metod belirleyebilirsiniz.
Fortigate Firewallar da ise 7 tane orta ve büyük ölçekli yapılarda kullanılabilecek metodları desteklemektedir.
- Static;
Bu metod ile, trafik yükü tüm sunuculara eşit şekilde dağıtılır. Sunucular ile açılan oturumlar sunucunun yoğunluğuna göre atanmaz. Bu yük dengeleme yöntemi bir miktar kalıcılık sağlar çünkü aynı kaynak adresinden gelen tüm oturumlar her zaman aynı sunucuya gider. Sunucuların dağıtım bilgisi bilemediğinden sunucu arızasında, çıkarılması eklenmesi gibi durumlar da dağıtıcılık değişebilir ve kalıcı olması kaybolabilir. - Round Robin;
Yeni gelen istekleri bir sonraki sunucuya ileterek devam eder. En çok kullanılan yöntemlerden birisidir. Bağlantı sayısına bakmadan tüm sunuculara eşit dağıtım yapmaktadır. Sunucu arızası gibi cevap vermeyen sunucularda istekleri iletmez.
3. Weighted;
Daha büyük isteklere cevap verebilecek CPU,RAM bakımdan güçlü olan bir cihazınıza daha yüksek oranda trafiği dağıtabilirsiniz. Konfigürasyon sırasında ağırlıklı networ trafiğini vermek istediğiniz sunucuyu seçmeniz gereklidir.
4.Least Session;
Gelen istekleri en az sayıda bağlantı kurulmuş sunucuya yönlendirir. Bu yapı aynı kaynakalara sahip özelliklerle verdiğiniz sunucularınızın olduğu ortamlarda en iyi performası veren bir metoddur.
5.Least RTT;
Oturumların gidiş-dönüş süresi en düşük süreye sahip sunucuya yönlendirir. Burda bir ping ile kontrol monitorü tarafından belirlenebilir.
5.First Alive;
Tüm oturumlar ilk canlı sunucuya yönlendirir. İlk sunucu arızalnması durumunda, oturumlar sonraki sunucuya yönlendirilir.
7.HTTP Host;
Yük dengeleyeci birden çok sunucu arasında HTTP header bilgisine göre yük dağılımını dengeler.
Şimdi Firewall da Metodları öğrendiğimize göre nasıl konfig edebileceğimzie geçebiliriz.
Fortigate Firewallarda Virtual Server Yapılandırılması Nasıl Yapılır?
- İlk olarak Firewall arayüzümüden System>>Feature Visibility kısmında Load Balance özelliğini açıyoruz.
2. Artık Policy&Object alanımızda yeni bir sekme daha görünecektir, burası da artık load balance konfigürasyonunu yapacağız yerdir.
3. LB ayarlarımız öncesi “Healt Check” alanında chazları nasıl izleyeceğimiz ayarlarımızı yapıyoruz. Tıpkı SD-WAN daki “Performance SLA” deki ayarlar gibidir.
Healt Check yapabileceğimiz 4 farklı metod vardır;
Ping: İlgili Load balance cihazlarına ping göndererek ayakta olup olmadığını izler.
TCP:Belirlediğiniz bir port üzerinden çalışan bir sisteminiz varsa spesifik olarak bu port izlnerek ayakta olup olmadığını izler.
HTTP: HTTP servisi açık bir LB yapmak istediğiniz servisiniz varsa 8080 ya da spesifik bir port varsa ayakta olup olmadığını izler.
HTTPS: LB etmek istediğiniz sunucularınızın HTTPS servisinin ayakta olup olmadığını izler.
Invertal: Kaç saniyede bir izleme yapmasını burdan girebilirsiniz
Timeout:Ne kadar saniye cevap vermezse paketi o cihaza iletmez.
Retry: Timeout aldıktan sonra kaç kere deneme yapsın.
Aşağıdaki örnekte 10 saniyede bir izlesin, 2 kere timout alırsa 3 kere denesin sonrasında bu cihazdan umudunu kessin diyebiliriz.
Ben testlerimde hem HTTPS hem de Ping olarak izleme yaptıracağım.
4- Artık Virtual Server adımlarına gereçerek buraları biraz kurcalayalım ve bize en uygun yapıyı seçelim. Burda önemli olan LAN-to-LAN ya da WAN-to-LAN olarak LB yaptırabiliriz.
Ben örnek olması için bir Virtual IPs gibi yani NAT kuralı yerine LB yapmak örneğini göstereceğim.
5. Yeni kuralımızı artık oluşturabiliriz.
Type:Burda WAN açacağımız cihaz ne ise onun servislerine göre yönlendirmeleri yapabiliriz. Bir web sitesi ise HTTP/HTTPS, mail sunucunuz varsa SMTPS, IMAPS, farklı bir port çalıştıran cihazınız varsa IP, TCP ya da UDP çalışan bir sunucunuzu da çalıştırabilirsiniz.
Interface: Public açacaksanız wan bacağınız, internal ise vlan yada internal interface seçebilirsiniz. Ben genellikle any seçiyorum yarın bir gün port değiştirebilirim, o portta LACP yapabilirim, ondan etkilenmemesi için böyle bir yöntemle işimi çözebiliyorum.
Virtual Server IP: Burda Publice açacaksanız WAN IP nizi yazabilirsiniz, eğer internalda yapacaksanız burda F5 ve citrix ürünlerindeki gibi sanal bir IP de yazabilirsiniz.
LoadBalance: Burda LB yapmak istediğiniz çeşitlerindne birini alabilirsiniz. Ben round-robin seçiyorum.
HealtCheck: Sunucuların durumlarını izlemek için metordlarım.
Kendi konfiğimde hem ping hem de HTTPS izleme yaptıracağım . Sadece ping izlemek yanıltabilmektedir, sunucu da ping olabilir ama https servisi down olduğunda LB etmeyecektir. Bundan dolayı izleme metodunuz önemlidir.
SSL Oflading: varsa bir wildcard sertifikamız karşıladğında https ekranında güvenilir olmasını sağlatabiliriz.
6. Artık LoadBalance arkasındaki gerçek sunucuları ekleyebilirsiniz. Burda Statik ve Dinamik Obje kullanabiliriz.
Statik klasiktir. Dynamic ise SDN Connetor ile bağlanığınız bir Vcenter Amazon Azure da kullanabilirsiniz.
Hatta LB arkasında başka bir LB da kullanıldığı yerler var. Örneğin Fortigate Firewall arkasında Sanal F5 ya da Citrix kullanarakta paketleri LB mimarinize göre paylaştırabilirsiniz Arka arkadaya bu kadar LB olması da orta ve büyük ölçekli firmalarda benecede gereksiz. Fakat trendyol.com , sahibinden.com , gazete ve haber siteleri gibi i hit oraını çok yüksek olan yerlerde bu topolojiler olması gerekir. Birde BlackFriday gibi bir etkinlik varsa 😀 LB gibi ürünler ile yükleri dağıtmak önemlidir.
7. Artık Firewall kuralımızı yazabiliriz. Burda kuralı yazarken Flow-Based da ise Virtual Server göremezsiniz. Proxy-Mode çekmeniz gereklidir.
Artık kuralımız hazır ve çalışması gerekcektir.
Bu yazımdaki asıl amaç NAT kuralı yazmak yerine daha esnek , kontrollü ve görünebilirliği yüksek kurallar yazabilmektedir. Bunu bir DC server bir Exchange server ilede ek maaliyet çıkarmadan LB yapabileceğiniz görmektedir.
T-shoot için aşağıdaki komutları takip edebilirsiniz.
diagnose firewall vip realserver
get test ipldbd 2
diagnose firewall vip virtual-server stats
Herkese kesintisiz günler dilerim…..