Ders 08 / 13
Yaygın Arıza Kalıpları
Ad çözümleme, güvenlik duvarı ve yol arızalarının imzaları ile kanıtın kendiliğinden kaybolması: aralıklı arıza 600 saniyelik pencerede 84 saniye sürerken 300. saniyede başlayan kayıt 42/84, 500. saniyede başlayan 13/84 yakalıyor ve düşürülen paketin izi kayıt kapalıyken 0 satır kalıyor.
İçindekiler
Önceki dersin bütün ölçüsü tek bir varsayıma yaslanıyordu: yakalama, arıza başlamadan önce çalışır durumdaydı. Bu ders o varsayımı kaldırır ve kursun üçüncü iddiasını öder: kanıt beklemez. Bir arıza sürerken toplanmayan kayıt sonradan toplanamaz; kaydı olmayan bir olay tanı için hiç olmamıştır.
Dersin ilk yarısı ise geriye kalan pratik soruyu bitirir. Önceki üç ders sınamaları ve sıralarını ölçtü; elde bir yanıt demeti var. Şimdi ters yönden bakılır: belirli bir arıza hangi yanıt demetini üretir, yani imzası nedir. Üç kalıp ayrı ayrı ele alınır — ad çözümleme, güvenlik duvarı ve yol — çünkü üçü de sık görülür ve üçü de birbirine benzeyen belirtiler üretir.
Üç Kalıp ve İmzaları
Bir arızanın imzası, sınamaların ona verdiği yanıtların demetidir (SG17). İmza, tanının aradığı şeydir: aday kümesini adım adım daraltmak yerine, gözlenen demeti bilinen demetlerle karşılaştırmak.
Ad çözümleme kalıbı en belirgin imzaya sahiptir. Ad sorgusu yanıtsız kalır, ama adresle yapılan her şey çalışır: yankı döner, bağlantı kurulur, büyük paket geçer. Kullanıcı tarafında görüntü tuhaftır — hizmet “bazen” çalışır, çünkü önbellekte duran bir kayıt kullanıldığında sorgu hiç yapılmaz. Ad çözümleme protokolünün kendisi Bilgisayar Ağları müfredatının konusudur ve burada açılmaz; buradaki konu yalnız imzadır.
Güvenlik duvarı kalıbının imzası sessizliktir. Paket düşürüldüğünde karşı taraftan hiçbir yanıt gelmez ve bağlantı denemesi zaman aşımına uğrar. Reddedilmekten ayrıldığı yer tam da budur: reddetmek bir yanıt üretir, düşürmek üretmez. Sessizliğin kaynağı bu kez yolda değil, hedefin önündeki bir kuraldır ve yol sınamaları sağlam der.
Yol kalıbı üçünün en sinsisidir. Küçük paketler geçer, büyükler kaybolur. Yankı sağlam der, bağlantı kurulur, ilk alışveriş çalışır; iş büyük veri aktarımına gelince durur. Kullanıcı bunu “yavaş” ya da “bazen kopuyor” diye bildirir ve tanı, hızla ilgili bir yerde aranmaya başlanır.
# ornek dokum , calistirilmis degildir $ getent hosts <sunucu-adi> # ad cozumleme imzasi $ nc -z -w 3 <hedef> <bag-noktasi> # reddedildi mi , zaman asimi mi $ ping -c 3 -M do -s 1400 <hedef> # yol imzasi $ nft list ruleset # kurallar ve sayaclar okunur
SAGLAM = {"arayuz_acik": True, "adres_var": True, "ag_gecidi_dogru": True, "rota_var": True, "cozumleyici_yanit": True, "servis_dinliyor": True, "guvenlik_duvari_gecirir": True, "yol_bozulmadan": True} ARIZA = { "arayuz-kapali": {"arayuz_acik": False, "adres_var": False}, "adres-yok": {"adres_var": False}, "ag-gecidi-yanlis": {"ag_gecidi_dogru": False}, "rota-eksik": {"rota_var": False}, "cozumleyici-sessiz": {"cozumleyici_yanit": False}, "servis-dinlemiyor": {"servis_dinliyor": False}, "guvenlik-duvari-dusuruyor": {"guvenlik_duvari_gecirir": False}, "buyuk-paket-dusuyor": {"yol_bozulmadan": False}, } ADAYLAR = tuple(ARIZA) def durum(a=None): d = dict(SAGLAM) if a: d.update(ARIZA[a]) return d def yol(d): return (d["arayuz_acik"] and d["adres_var"] and d["ag_gecidi_dogru"] and d["rota_var"]) SINAMA = { "ad-cozumleme": lambda d: "cozuldu" if d["cozumleyici_yanit"] else "cozulemedi", "dinleyen": lambda d: "dinliyor" if d["servis_dinliyor"] else "dinlemiyor", "baglanti": lambda d: ("ulasilamaz" if not yol(d) else "zaman-asimi" if not d["guvenlik_duvari_gecirir"] else "reddedildi" if not d["servis_dinliyor"] else "kuruldu"), "buyuk-paket": lambda d: ("geciyor" if yol(d) and d["yol_bozulmadan"] else "gecmiyor"), } UST = list(SINAMA) # SG17: imza = sinama yanitlari demeti def imza(a, kume=UST): return tuple(SINAMA[s](durum(a)) for s in kume) def obekler(kume, adaylar=ADAYLAR): o = {} for a in adaylar: o.setdefault(imza(a, kume), []).append(a) return o print("ariza ad-cozumleme dinleyen baglanti buyuk-paket") for a in ADAYLAR: i = imza(a) print(f" {a:26s}{i[0]:14s}{i[1]:12s}{i[2]:13s}{i[3]}") o = obekler(UST) print("ayri imza:", len(o), "| ayrilamayan obek:", len([v for v in o.values() if len(v) > 1]), "| en buyuk obek:", max(len(v) for v in o.values())) print() print("bir sinamanin eleme gucu yanitina gore degisiyor") for s in SINAMA: for yanit, uyan in sorted(obekler([s]).items()): print(f" {s:13s} {yanit[0]:12s} elenen {len(ADAYLAR) - len(uyan)} kalan {len(uyan)}") print() def aralikli(pencere=600, donem=45, sure=6): # SG18 return [t for t in range(pencere) if t % donem < sure] def kayit_yakalar(olaylar, baslangic): # SG19 y = [t for t in olaylar if t >= baslangic] return len(y), round(len(y) / len(olaylar), 4) def dusen_paket_izi(kayit_acik): # SG20 return 128 if kayit_acik else 0 OLAY = aralikli() print("aralikli ariza: pencere 600 sn , olay", len(OLAY), "saniye ,", len(OLAY) // 6, "atak x 6 saniye") for bas in (0, 100, 300, 500): y, oran = kayit_yakalar(OLAY, bas) print(f" kayit {bas:3d}. saniyede basliyor -> yakalanan {y:3d} / {len(OLAY)} = {oran}") print("dusen paketin izi: kayit kapali ->", dusen_paket_izi(False), "satir , kayit acik ->", dusen_paket_izi(True), "satir") print() print("aday kumesi supurmesi: ad-cozumleme sinamasinin iki yaniti") kume = ["cozumleyici-sessiz"] for a in ADAYLAR: if a not in kume: kume.append(a) o = obekler(["ad-cozumleme"], tuple(kume)) olumsuz = len(o[("cozulemedi",)]) olumlu = len(o.get(("cozuldu",), [])) print(f" aday {len(kume)} 'cozulemedi' elenen {len(kume) - olumsuz} kalan {olumsuz}" f" 'cozuldu' elenen {len(kume) - olumlu} kalan {olumlu}")
ariza ad-cozumleme dinleyen baglanti buyuk-paket arayuz-kapali cozuldu dinliyor ulasilamaz gecmiyor adres-yok cozuldu dinliyor ulasilamaz gecmiyor ag-gecidi-yanlis cozuldu dinliyor ulasilamaz gecmiyor rota-eksik cozuldu dinliyor ulasilamaz gecmiyor cozumleyici-sessiz cozulemedi dinliyor kuruldu geciyor servis-dinlemiyor cozuldu dinlemiyor reddedildi geciyor guvenlik-duvari-dusuruyor cozuldu dinliyor zaman-asimi geciyor buyuk-paket-dusuyor cozuldu dinliyor kuruldu gecmiyor ayri imza: 5 | ayrilamayan obek: 1 | en buyuk obek: 4 bir sinamanin eleme gucu yanitina gore degisiyor ad-cozumleme cozuldu elenen 1 kalan 7 ad-cozumleme cozulemedi elenen 7 kalan 1 dinleyen dinlemiyor elenen 7 kalan 1 dinleyen dinliyor elenen 1 kalan 7 baglanti kuruldu elenen 6 kalan 2 baglanti reddedildi elenen 7 kalan 1 baglanti ulasilamaz elenen 4 kalan 4 baglanti zaman-asimi elenen 7 kalan 1 buyuk-paket geciyor elenen 5 kalan 3 buyuk-paket gecmiyor elenen 3 kalan 5 aralikli ariza: pencere 600 sn , olay 84 saniye , 14 atak x 6 saniye kayit 0. saniyede basliyor -> yakalanan 84 / 84 = 1.0 kayit 100. saniyede basliyor -> yakalanan 66 / 84 = 0.7857 kayit 300. saniyede basliyor -> yakalanan 42 / 84 = 0.5 kayit 500. saniyede basliyor -> yakalanan 13 / 84 = 0.1548 dusen paketin izi: kayit kapali -> 0 satir , kayit acik -> 128 satir aday kumesi supurmesi: ad-cozumleme sinamasinin iki yaniti aday 2 'cozulemedi' elenen 1 kalan 1 'cozuldu' elenen 1 kalan 1 aday 3 'cozulemedi' elenen 2 kalan 1 'cozuldu' elenen 1 kalan 2 aday 4 'cozulemedi' elenen 3 kalan 1 'cozuldu' elenen 1 kalan 3 aday 5 'cozulemedi' elenen 4 kalan 1 'cozuldu' elenen 1 kalan 4 aday 6 'cozulemedi' elenen 5 kalan 1 'cozuldu' elenen 1 kalan 5 aday 7 'cozulemedi' elenen 6 kalan 1 'cozuldu' elenen 1 kalan 6 aday 8 'cozulemedi' elenen 7 kalan 1 'cozuldu' elenen 1 kalan 7
Kâhin, Sınama, Elenen Aday
Üç sayı yan yana durur. Kâhin: gerçek arıza cozumleyici-sessiz. Sınama: ad
çözümleme sorgusu cozulemedi yanıtını veriyor. Elenen aday: bu yanıt 7 adayı
eliyor ve geriye 1 aday bırakıyor; imza tektir ve tanı biter.
Aynı sınama, kâhin guvenlik-duvari-dusuruyor olduğunda cozuldu der ve yalnız 1 aday
eler. Yani ad çözümleme sınaması bir derste en zayıf araçtı, burada en güçlüsü. Değişen şey
araç değil, yanıt.
İmza tablosu dört üst katman sınamasıyla sekiz arızayı 5 ayrı imzaya ayırır. Ayrılamayan tek öbek alt katmandaki dörttür: arayüz, adres, ağ geçidi ve rota arızalarının dördü de bu dört sınamada aynı demeti üretir. Bu, ikinci derste ölçülen sonucun tersidir; orada erişilebilirlik sınamaları üst dörtlüyü tek öbekte bırakıyordu. Sonuç simetriktir: her sınama kümesi kendi katmanının dışını körleştirir ve ayrım ancak iki katmandan da sınama alındığında tamamlanır.
Olumsuz Yanıt Eler, Olumlu Yanıt Elemez
İkinci tablo dersin en genellenebilir bulgusudur. Bir sınamanın eleme gücü sabit bir sayı
değildir; yanıtına göre değişir ve fark büyüktür. Ad çözümleme cozulemedi derse 7,
cozuldu derse 1 aday eler. Dinleyen listesi dinlemiyor derse 7, dinliyor derse
1. Bağlantı denemesinin dört yanıtı sırasıyla 6, 7, 4 ve 7 aday eler.
Kalıbın nedeni kurgunun yapısındadır: her arıza sağlam durumun tek bir alanını bozduğu için, bir alanın bozuk çıkması o tek arızayı işaret eder; sağlam çıkması ise geri kalan yedisiyle uyumludur. Pratik karşılığı doğrudan bir öğüttür: iyi haber az bilgidir. “Ad çözümleme çalışıyor” satırı tanıyı neredeyse hiç ilerletmez; “ad çözümleme çalışmıyor” satırı tanıyı bitirir.
Bu, sınama seçimini de değiştirir. Bir sınamanın beklenen eleme gücü, yanıtlarının aday kümesi üzerindeki dağılımına bağlıdır. Yanıtları dengeli dağılan bir sınama her durumda benzer iş görür; yanıtları çok dengesiz dağılan bir sınama nadiren çok, çoğunlukla az iş görür. Bağlantı denemesinin dört yanıtı bu bakımdan en dengelisidir ve en kötü durumda bile 4 aday eler.
Aralıklı Arıza: Kanıt Beklemez
Buraya kadar bütün sınamalar arıza sürerken yapıldı. Aralıklı arızada bu garanti yoktur. Kurguda arıza her 45 saniyede bir 6 saniye sürüyor; altı yüz saniyelik pencerede 14 atak ve toplam 84 saniye arıza var (SG18). Kayıt bir anda başlar ve pencerenin sonuna kadar sürer (SG19).
Sayılar açıktır. Kayıt sıfırıncı saniyede başlarsa 84 olayın 84’ü görülür. Yüzüncü saniyede başlarsa 66 (0,7857). Üç yüzüncü saniyede başlarsa 42 (0,5000). Beş yüzüncü saniyede başlarsa 13 (0,1548). Kayıt penceresinin yarısında başlamak olayların yarısını, altıda beşinde başlamak altıda beşini götürür.
Buradan iki sonuç çıkar. Birincisi, geç başlayan kayıt yanlış bir sıklık ölçer. Beş yüzüncü saniyede başlayan bir kayda bakan operatör on üç saniyelik arıza görür ve olayı “ara sıra” diye niteler; gerçek süre seksen dört saniyedir. Yanlış olan gözlem değil, gözlemin ne kadarlık bir pencereyi temsil ettiği varsayımıdır.
Aralıklı arızanın imza yöntemine verdiği zarar daha da ağırdır. İmza, ancak arıza sürerken alındığında doğrudur. Kurguda arıza pencerenin 84 saniyesini kaplar, yani 600 saniyenin 0,1400’ünü; rastgele bir anda yapılan tek bir sınamanın arızaya denk gelme payı budur. Geri kalan yüzde seksen altıda sınama sağlam yanıtını verir ve o yanıt, önceki bölümde ölçülen kurala göre gerçek nedeni eler. Aday kümesinden elenen aday doğru adaydır ve bu, tanı boyunca hiçbir yerde belirti vermez: bütün sınamalar tutarlıdır, imza sağlıklı bir sistemin imzasıdır, yine de hizmet çalışmamaktadır.
Bu yüzden aralıklı arıza karşısında yapılacak şey sınamayı yinelemektir, ama önceki derste yazılan uyarı burada geçerliliğini yitirir: orada aynı sınamanın yinelenmesi yeni aday elemiyordu, çünkü sistemin durumu sabitti. Durum zamanla değişiyorsa yineleme yeni bilgi üretir ve üretilen bilgi artık bir yanıt değil, bir yanıt dağılımıdır. Üç denemenin ikisinde sağlam, birinde bozuk çıkan bir sınama, hiçbir tek yanıtın söyleyemeyeceği şeyi söyler.
İkincisi, kaydın başlama anı bir tanı kararıdır ve arıza bildirilmeden önce verilir. Bir arıza duyulduğunda kayıt açmak, o andan sonrasını görmeyi sağlar; o ana kadarki on dört atağın hiçbiri geri gelmez. Sistem yönetimi kursunda günlük döndürmesi kanıtı silerken ölçülmüştü; burada kanıt silinmiyor, hiç yazılmıyor. İkisinin ortak sonucu aynıdır ve ikisinin de çaresi aynı yerdedir: karar arızadan önce verilmiş olmalıdır.
Düşürülen Paketin İzi
Son sayı en kısa olanıdır. Güvenlik duvarı bir paketi düşürdüğünde varsayılan davranış iz bırakmamaktır: kayıt kapalıyken düşen paketin izi 0 satır, açıkken 128 satırdır (SG20). Arıza her iki durumda da aynı arızadır; değişen tek şey bir ayardır.
Bu, üçüncü iddianın en sert biçimidir. Sessiz düşürme, tanının en pahalı arızasıdır çünkü hiçbir sınama onu doğrudan görmez; yalnız zaman aşımı imzasından çıkarsanır. İz açıkken aynı arıza tek satırda okunur. Yani 128 satırlık fark, altı sınamalık bir çıkarımın yerine geçer.
İzin bedeli de yazılmalıdır. Her düşen paket satır üretiyorsa, yoğun bir düşürme kaydı kendisi bir yük hâline gelir ve günlük döndürmesini hızlandırarak başka kanıtı siler. Doğru kurulum sürekli iz değil, sınırlı iz: belirli bir kural için, belirli bir süre boyunca ve sayısı sınırlanmış biçimde. Bu, arıza öncesinde alınmış bir karardır; arıza sırasında alındığında geç kalmıştır.
Aynı hesap aralıklı arızayla birleştiğinde en kötü durum ortaya çıkar: sessizce düşürülen bir paket, arıza da aralıklıysa ne izde ne de imzada görünür. Böyle bir arıza yalnız yinelenen sınamanın yanıt dağılımından okunur ve o dağılım, kimse yinelemediği sürece hiç oluşmaz.
Aday Kümesi Süpürmesi
Süpürme, olumsuz ve olumlu yanıt arasındaki açığın kümeyle nasıl büyüdüğünü gösterir. İki
adaylı kümede iki yanıt da 1 aday eler; fark yoktur. Küme sekize çıktığında cozulemedi
7 aday eler, cozuldu hâlâ 1 aday eler. Olumsuz yanıtın gücü küme büyüdükçe
doğrusal artar, olumlu yanıtınki sabit kalır.
Bu, kurguya bağlı olmayan bir sonuçtur ve nedeni yapısaldır: bir alanı yalnız tek bir arıza bozduğu için, o alanın bozuk çıkması aday sayısından bağımsız olarak tek adayı gösterir. Aday listesine yeni bir arıza eklemek olumlu yanıtın değerini düşürür, olumsuz yanıtınkini yükseltir. Listeyi genişletmek bu yüzden “daha dikkatli olmak” değildir; ölçünün kendisini değiştirir ve hangi sınamanın işe yarayacağını da değiştirir.
Özet
- Bir arızanın imzası, sınamaların ona verdiği yanıtların demetidir; dört üst katman sınaması sekiz arızayı 5 imzaya ayırır ve alt katmandaki dört arıza tek öbekte kalır.
- Bir sınamanın eleme gücü yanıtına göre değişir: ad çözümleme
cozulemediderse 7,cozulduderse 1 aday eler. İyi haber az bilgidir. - Aralıklı arıza 600 saniyelik pencerede 84 saniye sürer; kayıt 300. saniyede başlarsa 42/84 (0,5000), 500. saniyede başlarsa 13/84 (0,1548) yakalanır.
- Geç başlayan kayıt yalnız az görmez, yanlış sıklık ölçer; on üç saniyelik gözlemden “ara sıra” sonucu çıkar.
- Düşürülen paketin izi kayıt kapalıyken 0 satır, açıkken 128 satırdır; arıza aynı arızadır, görünürlük bir ayardır ve o ayar arızadan önce açılmış olmalıdır.
- Olumsuz yanıtın eleme gücü aday kümesiyle birlikte büyür, olumlu yanıtınki 1’de sabit kalır.
Sonraki Adım
Bu konu tanının ne kadarının önceden verilmiş kararlara bağlı olduğunu gösterdi: kaydın açık olması, izin sınırlı tutulması, aday listesinin yazılmış olması. Aynı soru erişim tarafında daha sert biçimde geri gelir. Bir sunucuya uzaktan bağlanmanın kendisi bir yapılandırma kararıdır ve o karar yanlışsa tanı yapacak kanal da kapanır. Sonraki konu güvenli kabuğu, anahtar tabanlı kimlik doğrulamayı ve yerel sertleştirmeyi ele alır; ardından paket filtreleme çerçevesine geçer ve dışarıya açık yüzeyin büyümesini sayarak ölçer.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.