AyaFlow: Yüksek Performanslı eBPF Tabanlı Ağ Analizörü

AyaFlow: Yüksek Performanslı eBPF Tabanlı Ağ Analizörü

AyaFlow, Rust ile yazılmış yüksek performanslı bir eBPF tabanlı ağ trafiği analizörüdür. Kubernetes'te çalışmak üzere tasarlanmıştır.

Paylas

AyaFlow Nedir?

AyaFlow, Rust dilinde yazılmış yüksek performanslı bir eBPF (extended Berkeley Packet Filter) tabanlı ağ trafiği analizörüdür. Kubernetes ortamlarında çalışmak üzere tasarlanmış olan bu araç, minimum overhead ile node genelinde ağ trafiğini kernel seviyesinde gözlemlemeyi sağlar. AyaFlow, Aya eBPF framework'ü üzerine inşa edilmiştir ve bir DaemonSet olarak çalışır, bu da her bir uygulama pod'u için ayrı bir pod oluşturmak yerine her node için bir pod oluşturulmasını sağlar.

AyaFlow’un Temel Özellikleri

  1. Kernel Tarafı İşlem: AyaFlow, Ethernet, IPv4, TCP ve UDP başlıklarını işleyen bir Traffic Control (TC) sınıflandırıcısı kullanır. Bu sınıflandırıcı, trafik kontrol alt sistemine doğrudan bağlanarak hafif PacketEvent yapılarını bir paylaşılan ring buffer'a gönderir. Bu işlem, ağ trafiğinin yönü hakkında bilgi sağlar.

  2. Kullanıcı Alanı İşlemi: Asenkron bir Tokio ajanı, ring buffer'ı periyodik olarak kontrol eder, canlı bağlantı durumunu DashMap içinde tutar ve olayları SQLite veritabanına kaydeder. Ayrıca, REST API üzerinden Prometheus metrikleri sunar.

  3. Gerçek Zamanlı İzleme: AyaFlow, canlı bir kontrol paneli sunar ve WebSocket akışı ile istatistikleri gerçek zamanlı olarak iletebilir. Bu özellik, ağ trafiğinin anlık durumu hakkında bilgi verir.

  4. Derin L7 İncelemesi: Opsiyonel olarak, TLS SNI ve DNS sorgularını çıkararak şifreli trafiğin alan düzeyinde görünürlüğünü sağlar. Bu, kullanıcılara daha ayrıntılı analiz imkanı sunar.

  5. Prometheus Desteği: AyaFlow, kullanıcıların ağ trafiği ile ilgili çeşitli metrikleri toplamasına yardımcı olur. Örneğin, toplam paket sayısı, aktif bağlantı sayısı ve çözülmüş alan adları gibi veriler sağlar.

Kurulum ve Dağıtım

AyaFlow kurulumu için, öncelikle bpf-linker'ı kurmanız gerekmektedir. Bunun için aşağıdaki komutu kullanabilirsiniz:

cargo +nightly install bpf-linker

Ayrıca, çeşitli kullanım senaryoları için yerel, Docker veya Kubernetes ortamında AyaFlow'u kullanmak mümkündür. Kubernetes üzerinde dağıtımı gerçekleştirmek için aşağıdaki komutu kullanarak DaemonSet'i uygulayabilirsiniz:

kubectl apply -f k8s/daemonset.yaml

Performans ve Kaynak Kullanımı

AyaFlow, minimum kaynak kullanımı ile yüksek performans sunar. Örneğin, 2 vCPU ve 2 GB RAM'e sahip bir sanal makine üzerinde yapılan testlerde, kullanıcı alanı RSS (steady-state) 256 KB olarak ölçülmüştür. Hafıza büyümesi gözlemlenmemiştir, yani istikrarlı bir performans sergilemektedir.

Sonuç

AyaFlow, ağ trafiğini analiz etmek isteyen geliştiriciler ve sistem yöneticileri için son derece etkili bir çözümdür. eBPF'nin sağladığı avantajlar sayesinde, geleneksel yöntemlere göre çok daha az overhead ile kapsamlı bir analiz imkanı sunmaktadır. Özellikle Kubernetes ortamlarında kullanımı, modern mikroservis mimarilerinin gereksinimlerini karşılamak için idealdir.

Şevval Yüce

Yazar

Şevval Yüce

TechPusula yazarı. Teknoloji ve dijital dönüşüm üzerine içerikler üretmektedir.

Tüm yazıları gör

Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Yorum Yaz

0/2000

İlginizi Çekebilir

Tüm yazılar