Bean Network Tester

Windows’ta ağ kaos testi

Kaos testi, yazılımınızın ne yaptığını öğrenmek için siz izlerken bilerek bir şeyi bozmak demektir. Ağ katmanında bu araç tam olarak budur: tek bir uygulamaya hata enjekte edip hayatta kalıp kalmadığını görmenin bir yolu.

Enjekte edebileceğiniz hatalar

HataNeyi modeller
Kayıp, bozulma, çoğaltmaBozulmuş bir yol. Paketler yok olur, hasarlı gelir ya da iki kez gelir.
Gecikme, jitter, sıçramalarYavaş ya da kararsız bir yol; zaman aşımlarını bozan çok saniyelik takılma dahil.
Bağlantı sıfırlamalarıBir güvenlik duvarının ya da yük dengeleyicinin bağlantıları aktarımın ortasında öldürmesi.
Bağlantı kesintileriYolun kaybolup bir döngüyle geri gelmesi.
Engellenmiş adres veya portHer şey çalışırken tek bir bağımlılığın erişilemez olması.
İnternet yok, LAN canlıCaptive portal biçimi: yerel çalışır, dünya çalışmaz.

Kaosu gürültüden ayıran şey: tekrarlanabilirlik

Yeniden oynatılamayan rastgele bir hata hata raporu değil, hikâye üretir. Buradaki her rastgele karar bir seed’den gelir; böylece aynı komut aynı çalıştırmayı yeniden üretir: aynı kaybolan paketler, aynı jitter, aynı sırayla:

BeanNetworkTester.exe --loss 15 --rst-prob 5 --seed 42 --target myapp.exe --duration 120

“Geçen salı bir kez çöktü” ile başkasının çalıştırabileceği başarısız bir test arasındaki fark budur.

Bir pipeline içinde

Komut satırı çıkış kodlarıyla bildirim yapar; böylece bir derleme “uygulama başarısız oldu” ile “araç başlatılamadı” arasındaki farkı ayırt edebilir ve oturum kendiliğinden biter: unutulacak bir temizlik adımı yoktur:

BeanNetworkTester.exe --loss 10 --rst-prob 5 --target myapp.exe --duration 90 --format json > chaos.ndjson

Tek bir hata yerine bir hata dizisi bir senaryo dosyasıdır ve bunlar da tekrarlanabilir. Çıkış kodları ve gereken runner için zamana bağlı senaryolar ve CI içinde ağ testleri sayfalarına bakın.

Etki alanının durduğu yer

İki sınır var ve ikisi de bilinçli. Bozulma, hedeflediğinizde tek bir işleme, PID’ye, adrese veya porta ulaşır; böylece üzerinde çalıştığınız makine çalışmaya devam eder. Ve bu tek bir makinedir: bu, bir küme için değil, bir istemci ve bağlantısı için hata enjeksiyonudur. Hizmetler ve düğümler arasında kaos arıyorsanız bu başka türden bir araçtır; bu ise tek bir Windows uygulamasının altındaki ağı bozan parçadır.

Her şey yerinde geri alınabilir. STOP ağı geri yükler, süre sınırı da aynısını yapar, aracın kendisi ölürse araç içindeki watchdog yakalamayı kapatır: enjekte ettiğiniz bir hata, onu enjekte eden çalıştırmadan uzun yaşamamalıdır.

Sonraki adımlar

Kendi ağınızı bilerek bozmaya hazır mısınız?

Windows için indir