---
title: 'Paket Filtreleme Çerçevesi'
source: 'https://academia.sh/tr/kurslar/linux-ag-yonetimi/paket-filtreleme-cercevesi'
course: 'Linux Ağ Yönetimi ve Sorun Giderme'
language: tr
updated: '2026-08-17T18:09:59+00:00'
license: 'CC BY-SA 4.0'
---

# Paket Filtreleme Çerçevesi

Paketin makine içinde geçtiği yedi durak, tablo ve zincir ayrımı ile kural değerlendirme sırası kurulur; otuz dört satırlık kural listesinin sıfır, yüklü makinede sayaç okumasının sıfır, sessiz makinede altı, açık iz sürmenin sekiz aday elediği sayılır.

Önceki dersin kâhini hedefin süzgeciydi ve tünelin içinden bakıldığında o süzgeç, hedefe hiç
ulaşılamamasından ayırt edilemiyordu. Sessizce düşürülen paket geriye hiçbir şey göndermez;
gönderen için zaman aşımı, alan için hiçbir olay yoktur. Bu ders süzgecin içine girer.

Sorulacak soru yer sorusudur: bir paket bu makinenin içinde nereye kadar geldi ve **hangi durakta**
karar verildi. Bu sorunun cevabı bir kural listesinde yazmaz. Liste neyin **olabileceğini**
gösterir; hangi kuralın gerçekten çalıştığını göstermez ve bu iki cümle arasındaki fark, dersin
ölçtüğü şeydir.

## Duraklar, Tablolar ve Zincirler

Paket filtreleme çerçevesi, çekirdeğin ağ yığınında sabit noktalara yerleştirilmiş **duraklardan**
oluşur. Her durakta bir ya da birden çok **zincir** bulunur ve zincirler **tablolara** göre
öbeklenir. Tablo bir amaçtır: ham işleme, işaretleme, adres dönüştürme ve süzme. Zincir o
amacın belirli bir duraktaki kural listesidir. Aynı durakta birden çok tablonun zinciri bulunuyorsa
sıraları tablo önceliğine göre sabittir.

Paketin izlediği yol, yönlendirme kararından sonra ikiye ayrılır. Aşağıdaki döküm çalıştırılmamıştır;
duraklar arasındaki sırayı göstermek için yazılmıştır:

```text
# ornek dokum , calistirilmamistir
# yerel bir surece giden paket
arayuz -> oncesi-ham -> oncesi-donusturme -> yonlendirme-karari
       -> giris-isaretleme -> giris-suzme -> servis

# baska bir arayuze iletilen paket
arayuz -> oncesi-ham -> oncesi-donusturme -> yonlendirme-karari
       -> iletme-suzme -> cikis-sonrasi -> cikis-arayuzu
```

İki yol yönlendirme kararına kadar aynıdır ve oradan sonra bir daha birleşmez. Bu, tanıda sık
yapılan bir hatanın kaynağıdır: yerel servise ulaşmayan bir paket için iletme zinciri incelenir,
oysa paket oraya hiç uğramamıştır. Ya da tersi olur ve iletilecek bir paket için giriş zincirine
kural yazılır. **Zincirin adı kararın verildiği yeri söyler**; kararın verildiği yer paketin
izlediği yola bağlıdır.

Bir zincirin iki bileşeni vardır: sıralı kurallar ve bir **politika**. Kurallar yukarıdan aşağı
değerlendirilir, **ilk eşleşen kural** kararı verir ve zincirin geri kalanı çalışmaz. Hiçbir kural
eşleşmezse politika uygulanır. Aşağıdaki döküm de çalıştırılmamıştır ve bir çerçevenin gerçek
yazımı değildir; zincir, politika ve sıra kavramlarının yerleşimini göstermek için sadeleştirilmiş
bir gösterimdir:

```text
# ornek dokum , calistirilmamistir , gercek yazim degildir
tablo suzme
  zincir giris   politika reddet
    1  durum kurulu ya da iliskili        -> kabul
    2  arayuz geri-dongu                  -> kabul
    3  hedef nokta <yonetim-noktasi>      -> kabul
  zincir iletme  politika reddet
  zincir cikis   politika kabul
```

Kural değerlendirme sırasının **tek bir liste içinde** neyi değiştirdiği, **Siber Güvenlik**
müfredatının erişim denetim listeleri dersinde ölçüldü. Burada ölçülen şey bir liste içi sıra
değil, **duraklar arası sıradır**: bir paket bir durakta karar bulduğunda sonraki durakların
zincirleri hiç çalışmaz ve oraya yazılan kural hiçbir şey yapmaz.

## Karar Hangi Durakta Veriliyor

Kurgu şudur: uzaktaki bir istemci bu makinedeki bir servise ulaşamıyor. Dokuz aday neden var ve
her biri kararı **belirli bir durakta** verdiriyor.

- **EF21** — Aday neden listesi **dokuz** maddedir ve tüketicidir. Üçü giriş süzme zincirinde,
  ikisi iletme yolunda, biri ham durakta, biri işaretleme durağında, biri arayüzden önce, biri
  servistedir.
- **EF22** — Kâhin `giris-varsayilan-reddetti` seçilmiştir: hiçbir kural eşleşmiyor ve zincir
  politikası paketi reddediyor.
- **EF23** — Kural kümesi **dokuz durumda da aynıdır** ve **34** satırdır; değişen şey paketin
  akıbetidir, yapılandırma değil.
- **EF24** — Sekiz okuma tanımlıdır ve dördü ikişer koşulda ölçülür: sayaç okuması yüklü ve
  sessiz makinede, iz sürme açık ve kapalı.
- **EF25** — Yüklü makinede arka plan trafiği bütün zincir sayaçlarını artırır; sayaç farkı
  sınama paketine bağlanamaz.
- **EF26** — İz sürme **arıza öncesinde** açılmış olmalıdır; kapalıyken üretilen satır **0**.
- **EF27** — İz sürme durağı ve nedeni birlikte bildirir; aynı durakta aynı nedenle düşen iki
  aday onunla da ayrılamaz.
- **EF28** — Kabul kuralı giriş süzme zincirine iki konumda eklenir: başa ve sona. Sona eklenen
  kural, kendisinden önce eşleşen bir kural varsa hiç değerlendirilmez.
- **EF29** — Aday kümesi süpürmesi sekiz, dokuz ve on adaylı listelerle yapılır.
- **EF30** — Bütün sayılar tam sayımdır; rastgelelik ve tohum yoktur.

```python
"""Paketin makine icindeki duraklari: karar hangi durakta , hangi okuma goruyor."""
YEREL = ("arayuz", "oncesi-ham", "oncesi-donusturme", "yonlendirme-karari",
         "giris-isaretleme", "giris-suzme", "servis")
ILETME = ("arayuz", "oncesi-ham", "oncesi-donusturme", "yonlendirme-karari",
          "iletme-suzme", "cikis-sonrasi", "cikis-arayuzu")
YOL = {"yerel": YEREL, "iletme": ILETME}
ZINCIR = {"oncesi-ham", "oncesi-donusturme", "giris-isaretleme", "giris-suzme",
          "iletme-suzme", "cikis-sonrasi"}
ADAY = {
    "paket-hic-gelmedi": ("yerel", 0, "yok"),
    "oncesi-ham-dusurdu": ("yerel", 1, "kural"),
    "giris-isaretleme-dusurdu": ("yerel", 4, "kural"),
    "giris-suzme-kural-dusurdu": ("yerel", 5, "kural"),
    "giris-varsayilan-reddetti": ("yerel", 5, "politika"),
    "durum-kurali-yok": ("yerel", 5, "kural"),
    "donusturme-yanlis-hedef": ("iletme", 4, "kural"),
    "yonlendirme-yanlis": ("iletme", 4, "kural"),
    "servis-dinlemiyor": ("yerel", 6, "servis"),
}
KURAL_SATIRI = 34
KAHIN = "giris-varsayilan-reddetti"


def son_durak(a):
    yol, i, _ = ADAY[a]
    return YOL[yol][i]


def ulasilmayan(a):
    yol, i, _ = ADAY[a]
    return len(YOL[yol]) - (i + 1)


SINAMA = {
    "kural-listesi": lambda a: f"{KURAL_SATIRI}-satir",
    "arayuzde-yakalama": lambda a: "gelmedi" if ADAY[a][1] == 0 else "geldi",
    "cikis-yakalama": lambda a: "cikti" if ADAY[a][0] == "iletme" else "cikmadi",
    "baglanti-denemesi": lambda a: ("reddedildi" if ADAY[a][2] == "servis"
                                    else "zaman-asimi"),
    "sayac-yuklu": lambda a: "butun-sayaclar-artti",
    "sayac-sessiz": lambda a: (son_durak(a) if son_durak(a) in ZINCIR
                               else "sayac-yok"),
    "iz-kapali": lambda a: "satir-yok",
    "iz-acik": lambda a: f"{son_durak(a)}/{ADAY[a][2]}",
}
SATIR = {"kural-listesi": KURAL_SATIRI, "arayuzde-yakalama": 6,
         "cikis-yakalama": 6, "baglanti-denemesi": 1, "sayac-yuklu": 34,
         "sayac-sessiz": 34, "iz-kapali": 0, "iz-acik": 12}


def ele(adaylar, s, yanit):
    return tuple(a for a in adaylar if SINAMA[s](a) == yanit)


def obek(sinamalar, adaylar):
    o = {}
    for a in adaylar:
        o.setdefault(tuple(SINAMA[s](a) for s in sinamalar), []).append(a)
    return [sorted(v) for v in o.values() if len(v) > 1]


A = tuple(ADAY)
print("aday neden:", len(A), "| sinama:", len(SINAMA), "| kahin:", KAHIN)
print()
print("aday                        yol      son durak          ulasilmayan durak")
for a in A:
    print(f"  {a:26s} {ADAY[a][0]:7s}  {son_durak(a):18s} {ulasilmayan(a):9d}")
print("  toplam ulasilmayan durak:", sum(ulasilmayan(a) for a in A))
print()
print("sinama              satir  ayri yanit  elenen  kalan")
for s in SINAMA:
    kalan = len(ele(A, s, SINAMA[s](KAHIN)))
    print(f"  {s:18s} {SATIR[s]:5d} {len({SINAMA[s](a) for a in A}):11d}"
          f" {len(A) - kalan:7d} {kalan:6d}")
print()
print("arac kumesi                         satir  ayrilamayan obek")
for ad, k in (("yalniz kural listesi", ["kural-listesi"]),
              ("liste + baglanti denemesi",
               ["kural-listesi", "baglanti-denemesi"]),
              ("yuklu makinede dort okuma",
               ["kural-listesi", "arayuzde-yakalama", "baglanti-denemesi",
                "sayac-yuklu"]),
              ("sessiz makinede dort okuma",
               ["kural-listesi", "arayuzde-yakalama", "baglanti-denemesi",
                "sayac-sessiz"]),
              ("iz surme acik", ["iz-acik"])):
    o = obek(k, A)
    print(f"  {ad:34s} {sum(SATIR[s] for s in k):5d} {len(o):8d}")
    if o:
        for x in o:
            print(f"      {x}")
print()
print("giris-suzme zincirine eklenen kabul kurali kac arizayi duzeltir")
for ad, kosul in (
        ("zincirin basina", lambda a: ADAY[a][0] == "yerel" and ADAY[a][1] == 5),
        ("zincirin sonuna",
         lambda a: ADAY[a][0] == "yerel" and ADAY[a][1] == 5
         and ADAY[a][2] == "politika")):
    d = [a for a in A if kosul(a)]
    print(f"  {ad:16s} duzelen {len(d)} / {len(A)}", d)
print()
print("aday kumesi supurmesi")
ADAY["giris-suzme-yanlis-arayuz"] = ("yerel", 5, "kural")
for ad, k in (("8 aday: durum-kurali-yok cikarildi",
               tuple(a for a in A if a != "durum-kurali-yok")),
              ("9 aday: temel liste", A),
              ("10 aday: giris-suzme-yanlis-arayuz eklendi",
               A + ("giris-suzme-yanlis-arayuz",))):
    kalan = len(ele(k, "sayac-sessiz", SINAMA["sayac-sessiz"](KAHIN)))
    o = obek(["iz-acik"], k)
    print(f"  {ad:42s} sessiz sayac elenen {len(k) - kalan:2d} kalan {kalan:2d}"
          f" | iz surmenin ayiramadigi obek {len(o)}"
          f" en buyuk {max((len(x) for x in o), default=0)}")
```

```
aday neden: 9 | sinama: 8 | kahin: giris-varsayilan-reddetti

aday                        yol      son durak          ulasilmayan durak
  paket-hic-gelmedi          yerel    arayuz                     6
  oncesi-ham-dusurdu         yerel    oncesi-ham                 5
  giris-isaretleme-dusurdu   yerel    giris-isaretleme           2
  giris-suzme-kural-dusurdu  yerel    giris-suzme                1
  giris-varsayilan-reddetti  yerel    giris-suzme                1
  durum-kurali-yok           yerel    giris-suzme                1
  donusturme-yanlis-hedef    iletme   iletme-suzme               2
  yonlendirme-yanlis         iletme   iletme-suzme               2
  servis-dinlemiyor          yerel    servis                     0
  toplam ulasilmayan durak: 20

sinama              satir  ayri yanit  elenen  kalan
  kural-listesi         34           1       0      9
  arayuzde-yakalama      6           2       1      8
  cikis-yakalama         6           2       2      7
  baglanti-denemesi      1           2       1      8
  sayac-yuklu           34           1       0      9
  sayac-sessiz          34           5       6      3
  iz-kapali              0           1       0      9
  iz-acik               12           7       8      1

arac kumesi                         satir  ayrilamayan obek
  yalniz kural listesi                  34        1
      ['donusturme-yanlis-hedef', 'durum-kurali-yok', 'giris-isaretleme-dusurdu', 'giris-suzme-kural-dusurdu', 'giris-varsayilan-reddetti', 'oncesi-ham-dusurdu', 'paket-hic-gelmedi', 'servis-dinlemiyor', 'yonlendirme-yanlis']
  liste + baglanti denemesi             35        1
      ['donusturme-yanlis-hedef', 'durum-kurali-yok', 'giris-isaretleme-dusurdu', 'giris-suzme-kural-dusurdu', 'giris-varsayilan-reddetti', 'oncesi-ham-dusurdu', 'paket-hic-gelmedi', 'yonlendirme-yanlis']
  yuklu makinede dort okuma             75        1
      ['donusturme-yanlis-hedef', 'durum-kurali-yok', 'giris-isaretleme-dusurdu', 'giris-suzme-kural-dusurdu', 'giris-varsayilan-reddetti', 'oncesi-ham-dusurdu', 'yonlendirme-yanlis']
  sessiz makinede dort okuma            75        2
      ['durum-kurali-yok', 'giris-suzme-kural-dusurdu', 'giris-varsayilan-reddetti']
      ['donusturme-yanlis-hedef', 'yonlendirme-yanlis']
  iz surme acik                         12        2
      ['durum-kurali-yok', 'giris-suzme-kural-dusurdu']
      ['donusturme-yanlis-hedef', 'yonlendirme-yanlis']

giris-suzme zincirine eklenen kabul kurali kac arizayi duzeltir
  zincirin basina  duzelen 3 / 9 ['giris-suzme-kural-dusurdu', 'giris-varsayilan-reddetti', 'durum-kurali-yok']
  zincirin sonuna  duzelen 1 / 9 ['giris-varsayilan-reddetti']

aday kumesi supurmesi
  8 aday: durum-kurali-yok cikarildi         sessiz sayac elenen  6 kalan  2 | iz surmenin ayiramadigi obek 1 en buyuk 2
  9 aday: temel liste                        sessiz sayac elenen  6 kalan  3 | iz surmenin ayiramadigi obek 2 en buyuk 2
  10 aday: giris-suzme-yanlis-arayuz eklendi sessiz sayac elenen  6 kalan  4 | iz surmenin ayiramadigi obek 2 en buyuk 3
```

## Üç Sayı

**Kâhin:** karar `giris-suzme` durağında, hiçbir kural eşleşmediği için **politika** tarafından
veriliyor. **Sınama:** kural listesi otuz dört satır basıyor; yüklü makinede sayaç okuması otuz
dört sayı veriyor; sessiz makinede aynı okuma zincir adını veriyor; açık iz sürme on iki satırda
"giris-suzme/politika" diyor. **Elenen aday:** kural listesi **0**, yüklü sayaç **0**, kapalı iz
sürme **0**, bağlantı denemesi **1**, sessiz sayaç **6**, açık iz sürme **8**.

Üstteki üç sıfır bu dersin sonucudur. Kural listesi otuz dört satırlık bir çıktıdır ve dokuz
adayın hiçbirini elemez, çünkü **dokuz durumda da aynı listedir**. Liste yapılandırmayı gösterir,
paketin akıbetini değil. Sayısı en yüksek çıktı, eleme gücü en düşük olanla aynı satırda duruyor:
**daha çok çıktı daha iyi tanı demek değildir.**

Bağlantı denemesi bir satır basıyor ve bir aday eliyor. Oranı kural listesinden sonsuz kat iyidir,
ama mutlak değeri düşüktür ve nedeni ortak tanımda kurulmuştu: düşürülen paket zaman aşımı
üretir, reddedilen paket ise ayrı bir yanıt verir. Dokuz adayın sekizi zaman aşımı üretiyor.

## Sayaç Neyi Kanıtlar

Sayaç okumasının iki satırı arasındaki fark, bu dersin en pratik bulgusudur. Sessiz makinede
sayaç beş ayrı yanıt veriyor ve **altı** aday eliyor: hangi zincirin sayacı arttıysa karar orada
verilmiştir. Yüklü makinede aynı okuma **tek** bir yanıt veriyor ve **sıfır** aday eliyor, çünkü
arka plan trafiği bütün zincirlerin sayaçlarını artırmaktadır. Sayaç farkı vardır, sınama
paketine ait olduğu **gösterilemez**.

Bu yüzden sayaç okuması bir yordam olarak tek başına yazılamaz. Ölçülebilir hâle gelmesi için ya
trafiğin durması ya da sayacın sınama öncesinde sıfırlanıp yalnız bir paket gönderilmesi gerekir;
ikincisi çalışan bir sistemde her zaman yapılamaz. Sayacın verdiği bilgi, makinenin **ne kadar
sessiz** olduğuna bağlıdır ve bu bir araç özelliği değil, ortam özelliğidir.

İz sürmenin iki satırı aynı dersi zaman ekseninde veriyor. Açıkken on iki satır üretiyor ve sekiz
aday eliyor; kapalıyken **sıfır satır** ve sıfır aday. Aradaki fark bir ayardır ve o ayar arızadan
**önce** açılmış olmalıdır. Arızadan sonra iz sürmeyi açmak, geçmişteki paketi geri getirmez.
**Kanıt beklemez.**

Açık iz sürme bile her şeyi ayıramıyor. İki öbek kalıyor: aynı zincirde aynı nedenle düşen kural
arızası ile durum kuralının eksikliği, ve iletme yolunda düşen iki arıza. İz sürme durağı ve
nedeni söyler; **hangi kuralın** eşleştiğini söylemesi ayrı bir ayrıntı düzeyi gerektirir.

## Kuralı Nereye Eklemek İşe Yarar

Alt tablo çerçevenin en pahalı yanlış anlamasını sayıyor. Giriş süzme zincirine bir kabul kuralı
eklendiğinde dokuz arızadan kaçı düzelir: kural zincirin **başına** eklenirse **3**, **sonuna**
eklenirse **1**.

İki sayı arasındaki fark ilk eşleşen kural kuralından gelir. Sona eklenen kabul kuralı, kendisinden
önce eşleşen bir düşürme kuralı varsa hiç değerlendirilmez; yalnız hiçbir kuralın eşleşmediği
durumu, yani politikanın devreye girdiği durumu düzeltir. Kural eklendi, liste uzadı, çıktı
"başarılı" döndü ve arıza sürüyor.

Kalan altı arıza için konumun hiçbir önemi yoktur, çünkü paket o zincire **hiç uğramıyor**. Üst
tablonun son sütunu bunu sayıyor: dokuz arıza için ulaşılmayan durak toplamı **20**. Paket ham
durakta düşmüşse sonraki beş durak, işaretleme durağında düşmüşse sonraki iki durak hiç
çalışmamıştır. O duraklara yazılan her kural, doğru yazılmış olsa bile ölü kuraldır.

Buradan çıkan sıra kuralı şudur: bir kural eklemeden önce kararın **hangi durakta** verildiği
bulunur. Bu sıra tersine çevrildiğinde ortaya çıkan şey bir hata iletisi değil, işe yaramayan bir
düzeltme ve büyüyen bir kural kümesidir.

## Aday Kümesi Süpürmesi

Alt tablo aday listesini üç boyda deniyor ve sonuç önceki iki dersle aynı yöne bakıyor. Sessiz
sayacın elediği aday sayısı üç listede de **6**; kalan sayısı **2**, **3** ve **4**. Aday listesi
büyüdükçe aynı okuma aynı sayıda adayı eliyor ve geriye daha fazlasını bırakıyor. İz sürmenin
ayıramadığı en büyük öbek iki üyeden üçe çıkıyor, çünkü eklenen aday aynı durakta aynı nedenle
düşüyor.

## Özet

- Paket filtreleme çerçevesi sabit duraklardan oluşur; her durakta tablolara göre öbeklenmiş
  zincirler bulunur ve yönlendirme kararından sonra yerel yol ile iletme yolu bir daha birleşmez.
- Zincirde ilk eşleşen kural kararı verir ve geri kalanı çalışmaz; hiçbir kural eşleşmezse
  politika uygulanır.
- Otuz dört satırlık kural listesi dokuz adayın **hiçbirini** elemez, çünkü dokuz durumda da
  aynıdır. Yüklü makinede sayaç okuması da **0** eler; sessiz makinede **6**, açık iz sürme **8**.
- İz sürme kapalıyken **0 satır** üretir ve arızadan sonra açmak geçmiş paketi geri getirmez.
- Giriş süzme zincirine eklenen kabul kuralı başa konursa **3**, sona konursa **1** arızayı
  düzeltir; kalan altı arızada paket o zincire hiç uğramaz. Dokuz arıza için ulaşılmayan durak
  toplamı **20**.

## Sonraki Adım

Bu ders kararın nerede verildiğini sordu ve kâhin olarak politikayı seçti: hiçbir kural
eşleşmediği için zincirin varsayılanı devreye girmişti. Sonraki ders o varsayılanın kendisini ele
alır. Varsayılan reddet politikası bir güvenlik kararıdır ve uygulanma **sırası** bir işletim
kararıdır; yanlış sırada uygulandığında yöneticinin kendi erişimini kesebilir. Ölçülecek şey,
uygulama sıralarının kaçının bu sonucu verdiği ve hangi yolların bedeli sıfıra indirdiğidir.
