F5 Persistence, SSL Sertifika ve iRule kavramları
Merhabalar,
Bir önceki makalede Virtual Server oluşturmuştuk, bu makalemizde Persistence hakkında kısa bir bilgi verdikten sonra Persistence konfigurasyonunu gerçekleştireceğiz ve SSL sertifika konfigürasyonumuzu yaparak irule konusunu işleyeceğiz.
Bir önceki makalemizde LB sunucularımıza gelen isteği eşit bir şekilde yönlendirmişti.
Fakat bir web sitesine kullanıcı adı ve şifresi ile giriş yapmamı gerektiren özel bir uygulamam olabilir veya başka bir şekilde tasarlanmış özel bir uygulamam olabilir.
Mesela, client bir istekte bulunduğunda istek LB gelecek ve arkadaki Web-Server-1 isteği yönlendirecek. Client burada token bilgisini girdikten sonra token bilgisi artık sunucuda olacağı için client açılan sayfaya erişebilecek. Fakat client açılan sayfada gezinirken herhangi bir obje ye tıklayabilir ve tıkladığında yeni bir session olacağı için bu sefer LB trafiği Web-Server-2 yönlendirecektir. Trafik Web-Server-2 geldiğinde kendi üzerinde client’ ın token bilgisi olmadığı için tekrar client tan token bilgisini isteyecektir.
Bu gibi durumların önüne geçebilmek için client bir session oluşturduğunda ilk trafiği karşılayan sunucuda session kalması gerekmektedir. Burada devreye session persistanc giriyor ve client’ın ilk atandığı ve session’ın başladığı sunucuyu persistancy tablosuna yazıp kullanıcıyı her seferinde aynı sunucuya yönlendiriyor.
Yukardaki yapıyı kafamızda canlandırdıktan sonra F5 tarafına geçerek konfigürasyonumuzu yapabiliriz.
Persistence için bir adet Persistence Profile oluşturmamız gerekiyor. Bunun için F5 ara yüzünden Local Trafik sekmesi altından Profillere gelerek bir adet Persistence profile oluşturuyoruz. Default ta tanımlı profiller mevcut bunları da kullanabiliriz.
Persistence tipi olarak “Source Address Affinity” seçiyoruz. Timeout tarafında spesifik olarak süre belirleyebiliriz. Fakat biz session açan kullanıcının o sunucuda kalmasını istediğimiz için timeout “idenfinite” olarak seçerek ilerliyoruz.
Persistince konfigürasyonumuzu yaptıktan sonra oluşturduğumuz Profili Virtual Server ımıza ekliyoruz. “Virtual Servers →Web-Server-VS ( daha önce oluşturduğumu VS) →Resource” tabı altında Persistence Profile kısmına yeni eklediğimiz “Source_Persistence” profilini seçiyoruz.
Ayarlarımızı yaptıktan sonra “www.ozel.local” web sitemize gittiğimizde load balancer bizi “Web Server 2 “ üzerinde tutuyor.
Oluşturduğumuz trafiği monitor etmek için “Statistics ›› Module Statistics : Local Traffic “ sekmesine gelerek “ Statistic type” ni “Persistence Records” seçiyoruz. Persistence monitor default ta kapalı olarak geliyor ve açmak için
shell üzerinden “modify sys db ui.statistics.modulestatistics.localtraffic.persistencerecords value true” komutunu çalıştırarak açıyoruz.
“Persistence Records” aktif ettikten sonra monitor ekranımıza geldiğimizde artık trafiği görüntüleyebiliyoruz.
Persistence Konfigürasyonumuzuda yaptıktan ve trafiği monitor ettikten sonra SSL Sertifika tarafına geçebiliriz.
SSL Sertifika
Satın aldığımız bir ssl sertifikasını “System ›› Certificate Management : Traffic Certificate Management : SSL Certificate List” kısmına gelerek buraya import edebiliriz. Ben test ortamında olduğum için F5 üzerinden bir adet self sertifika create ederek devam ediyorum.
“System ›› Certificate Management : Traffic Certificate Management : SSL Certificate List” sekmesine geliyoruz ve sağ üstten “ Create” tıklayarak yeni bir sertifika oluşturuyoruz.
Sertifika için gerekli bilgileri doldurduktan sonra oluşturduğumuz sertifika için bir profile oluşturmamız gerekiyor. Sizde satın almış olduğunuz ssl sertifikasını import ettikten sonra profil oluşturmanız gerekiyor.
“Local Traffic ›› Profiles : SSL : Client” sekmesine gelerek sağ üst köşeden “Create” tıklıyoruz.
Konfigürasyon kısmında “Certificate Key Chain” kısmından “Add” butonunu tıklayarak oluşturmuş olduğumuz “Ozel_SSL” sertifikasını seçiyoruz.
Oluşturduğumuz SSL profilini yeni bir virtual server oluşturarak oraya ekliyoruz.
Resources bölümünde “Default Pool” sekmesinden daha önce oluşturmuş olduğumuz “Web-Server-HTTP-POOL” seçiyoruz.
Burada load balancer client tan istekleri 443 ten alıp arkadaki sunucularla 80 portu üzerinden konuşacak. Sizin ortamınızda web serverlar için https konfigürasyonu yapıldı ise yeni bir HTTPS pool oluşturarak burada “Default Pool” sekmesinden yeni oluşturduğunuz HTTPS pool unu seçmeniz gerekiyor.
www.ozel.local web sitemizi “https:// www.ozel.local” olarak test ettiğimizde sitemiz artık HTTPS olarak ta hizmet vermeye başladı.
SSL konfigürasyonumuzu yaptıktan sonra iRule tarafına geçebiliriz.
iRULE
İrule, olay tabanlı script yazdığımız F5 in bir modülüdür.
Örneğin, “http://www.ozel.local” web adresimize gelmek isteyen bir kullanıcıyı irule kullanarak “https://www.ozel.local” https adresine yönlendirebiliriz veya www.ozel.local web adresini “Web-Server-1 ve Web-Server-2” sunucularına yönlendirirken www.ozel.loca/uyelik subdirectory kısmını başka bir sunucuya yönlendir gibi konfigürasyonlar yapabiliriz.
irule konfigürasyonunu yapabilmemiz için “Local Traffic ›› iRules : iRule List” sekmesine gelerek “create” tıklayarak yeni bir irule oluşturuyoruz.
irule bir isim verdikten sonra “Defination” kısmına
when HTTP_REQUEST {
HTTP::redirect https://www.ozel.local
}
Ne zaman HTTP isteği gelirse isteği “https://www.ozel.local” yönlendir dioruz ve yazdığımız irule Virtual Server ımıza atıyoruz.
“Local Traffic ›› Virtual Servers : Virtual Server List “ gelerek Virtual Server ımızı seçiyoruz ve “Resource “ sekmesinde “irules” kısmını açıyoruz.
Oluşturmuş olduğumuz “ HTTPS_Redirect “ irule seçiyoruz.
web browser üzerinden “ http://www.ozel.local” yazdığımda beni otomatik https yönlendirmesi gerekiyor.
Redirect işlemimizde başarılı bir şekilde sonuçlandı.
Bu makalemizde Persistence,SSL Offload ve iRule kavramları inceledik. Bir önceki makalemize buradan erişebilirsiniz.
Bir sonraki makalede görüşmek üzere…