---
title: 'Ağ Bölütleme ve DMZ'
source: 'https://academia.sh/tr/kurslar/kablosuz-ve-guvenlik/ag-bolutleme-ve-dmz'
course: 'Kablosuz Ağlar ve Ağ Güvenliği'
language: tr
updated: '2026-08-17T18:07:22+00:00'
license: 'CC BY-SA 4.0'
---

# Ağ Bölütleme ve DMZ

Aynı niyet dört bölge grafiğinde kural kümesine çevrilir: iki bölgede sızdırmayan en dar türetim hiçbir şey geçirmez ve 22 akışı fazladan durdurur, geniş türetim 6 akış sızdırır; dört bölgede 38 kuralla sapma sıfırlanır ve altı bölgede kural 88'e çıkarken sapma sıfırda kalır.

Önceki dersteki bütün kurallar dört ad üzerine yazıldı: `dis`, `dmz`, `ic`, `yonetim`. Bu
adlar kurgudan geldi ve hiç sorgulanmadı — sanki ağın bölgeleri verilmiş şeylermiş gibi.
Oysa hiçbir kural bir makineyi adlandırmıyor; hepsi bir **bölge** adlandırıyor. Bölgeler
kaldırılırsa geriye yazılabilecek bir kural kalmaz.

Bu dersin sorusu şudur: bölgeleri kim, kaç tane seçiyor ve bu seçim niyetin ne kadarını
söylenebilir kılıyor? Kural kümesi bu derste elle yazılmaz; **bölge grafiğinden türetilir**.
Böylece değişen tek şey grafik olur.

## Bölge Bir Politika Nesnesidir

**Bölütleme (segmentation)** düzeneği bu kursun konusu değil: yayın alanının nasıl
bölündüğü, sanal yerel ağların nasıl etiketlendiği ve bir anahtarın bunu nasıl uyguladığı
Anahtarlama ve Yönlendirme kursunda kuruldu. Buradaki bölge o düzeneğin ürünü değil,
**politikanın konuşabildiği en küçük addır.**

Fark şurada görünür: iki makine aynı bölgede olduğu sürece aralarına kural yazılamaz.
Bölge, kuralın çözünürlüğüdür. Bir niyeti söyleyebilmek için grafiğin, niyetin ayırt ettiği
her şeyi ayırt etmesi gerekir.

**Silahtan arındırılmış bölge (demilitarized zone)** tam olarak bu yüzden vardır. Niyetin
orta terimi budur: dışarıya açık ama içeriye ait olmayan bir yer. Bu ad olmadan dışarıdan
gelen akış için iki seçenek kalır — ya içeriye alınır ya hiç alınmaz.

```text
# ogretilen bolge grafigi , calistirilmamistir
# adlar kurgudur

  dis ──80,443──> dmz ──3306──> ic <──> ic
                                 │
   x─────────────────────────────┴───x─── yonetim
                            (yonetim her yere gider , kimse ona gitmez)

birlestirme :  2 bolge  dis | dmz+ic+yonetim
               3 bolge  dis | dmz | ic+yonetim
bolme       :  6 bolge  dis | dmz-web | dmz-yay | ic-veri | ic-uyg | yonetim
```

Siber Güvenlik müfredatının Çevre Savunması konusu güven bölgelerinin **tasarımını** ele
aldı: hangi varlık hangi bölgeye konur, katmanlar nasıl dizilir. O tasarım anlatısı burada
tekrarlanmaz. Ölçülen şey **bölge grafiğinin politikayı ne kadar karşılayabildiğidir.**

## Grafik Kuralları Türetir

Bir grafik verildiğinde, her bölge çiftinin ve her bağlantı noktasının altında bir ya da
daha çok **temel** çift toplanır. Grafik kabalaştıkça bir çiftin altında birden çok temel
çift birikir ve o çift için tek bir karar verilmek zorunda kalınır. İki türetim mümkündür:

**Dar türetim** kuralı yalnız altındaki temel çiftlerin **hepsi** izinliyse yazar. Hiç
sızdırmaz; karışık çiftlerin izinli olanlarını da keser.

**Geniş türetim** kuralı altındaki çiftlerden **biri** bile izinliyse yazar. Hiçbir izinli
akışı kesmez; karışık çiftlerin yasak olanlarını da geçirir.

Grafik temel bölgelerin hepsini ayırt edebiliyorsa hiçbir çiftin altında karışıklık kalmaz
ve iki türetim aynı kümeyi verir. **Belirsizlik grafikten değil, birleştirmeden doğar.**

Bir uyarı: bu türetim kümeyi **açılmış** biçimde yazar, her bağlantı noktası için ayrı bir
kural üretir. Önceki dersin yedi kurallık kümesi aynı sınırı **sıkıştırılmış** biçimde
yazıyordu — yazılmayan alan her değeri karşılıyordu. İki sayı aynı ölçeğe konmaz; bu
derste karşılaştırılan şey grafikler arasındaki **oran**dır.

Ölçümün varsayımları:

- **AG15** — Kırk akış ortak kurgudan değiştirilmeden alınır; kâhin niyetin kendisidir ve
  bütün ölçümlerde temel bölge adlarına bakar.
- **AG16** — Altı bölgeli ince grafik için her akışın iki ucu, ayrı bir üreteçten gelen bir
  seçimle temel bölgesinin alt bölgelerinden birine yerleştirilir. Bir ucun temel bölgesi
  değişmez; yalnız daha ince bir adı olur.
- **AG17** — Kural kümesi elle yazılmaz, grafikten türetilir. Değişen tek şey grafiktir;
  politika ve niyet sabittir.
- **AG18** — Türetim kuralları açılmış yazar: her bölge çifti ve her bağlantı noktası için
  ayrı bir kural. Kural sayıları önceki dersin sıkıştırılmış kümeleriyle karşılaştırılmaz.
- **AG19** — Türetilen bütün kurallar **geçir** eylemlidir; durduran tek şey örtük rettir.
- **AG20** — Grafik yalnız bölge adlarını değiştirir. Bağlantı noktası kümesi, akış sayısı
  ve niyet dört grafikte de aynıdır.
- **AG21** — Kırk olaylık kümede ölçülebilen en küçük fark **1/40 = 0,025**'tir.

## Ölçüm

```python
"""Ag bolutleme: bolge grafigi degisince kural sayisi ve iki yonlu hata.

Bolum 1 - grafik, ayni niyetten kural kumesi turetir.
Bolum 2 - birlestirmenin ve bolmenin fazla gecen / fazla durana etkisi.
"""
TOHUM = 20260811
BOLGELER = ("dis", "dmz", "ic", "yonetim")
NOKTALAR = (80, 443, 22, 3306, 8080)
INCE = ("dis", "dmz-web", "dmz-yay", "ic-veri", "ic-uyg", "yonetim")
TEMEL = {"dis": "dis", "dmz-web": "dmz", "dmz-yay": "dmz",
         "ic-veri": "ic", "ic-uyg": "ic", "yonetim": "yonetim"}


def uretec(tohum):
    d = tohum % 2147483646 + 1

    def r(n):
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


def akislar(sayi=40, tohum=TOHUM):
    r, liste = uretec(tohum), []
    for i in range(sayi):
        liste.append({"no": i + 1, "kaynak": BOLGELER[r(4)],
                      "hedef": BOLGELER[r(4)], "bnokta": NOKTALAR[r(5)]})
    return liste


def altlara_ayir(ak, tohum=TOHUM + 3):
    """Her ucu, temel bolgesinin alt bolgelerinden birine yerlestirir."""
    r = uretec(tohum)
    ikili = {"dmz": ("dmz-web", "dmz-yay", "dmz-web", "dmz-yay"),
             "ic": ("ic-veri", "ic-uyg", "ic-uyg", "ic-veri")}
    for a in ak:
        for uc in ("kaynak", "hedef"):
            b = a[uc]
            a["ince_" + uc] = ikili[b][r(4)] if b in ikili else b
    return ak


def politika(a):
    """Niyet: disaridan yalniz DMZ'nin web kalemine; yonetime disaridan kimse."""
    if a["kaynak"] == "dis":
        return a["hedef"] == "dmz" and a["bnokta"] in (80, 443)
    if a["kaynak"] == "dmz":
        return a["hedef"] == "ic" and a["bnokta"] == 3306
    if a["kaynak"] == "yonetim":
        return True
    return a["hedef"] != "yonetim"


def fark(olaylar, niyet, duzenek):
    d = {"dogru_gecti": 0, "dogru_durdu": 0, "yanlis_gecti": 0, "yanlis_durdu": 0}
    for o in olaylar:
        n, g = niyet(o), duzenek(o)
        if n and g:
            d["dogru_gecti"] += 1
        elif not n and not g:
            d["dogru_durdu"] += 1
        elif g:
            d["yanlis_gecti"] += 1
        else:
            d["yanlis_durdu"] += 1
    return d


def kural_dizisi(kurallar):
    """Ilk eslesen kazanir; sonda ortuk ret."""
    def calis(a):
        for eylem, olcut in kurallar:
            if all(a[k] == v for k, v in olcut.items()):
                return eylem
        return False
    return calis


GRAFIKLER = (
    ("2 bölge", {f: ("dis" if f == "dis" else "ic") for f in INCE}),
    ("3 bölge", {f: ("ic" if f == "yonetim" else TEMEL[f]) for f in INCE}),
    ("4 bölge", dict(TEMEL)),
    ("6 bölge", {f: f for f in INCE}),
)


def kume_uret(grafik, gevsek):
    """Grafigin ayirabildigi kadariyla niyeti karsilayan kural kumesi."""
    adlar = sorted(set(grafik.values()))
    kurallar = []
    for gk in adlar:
        for gh in adlar:
            for p in NOKTALAR:
                izin = [politika({"kaynak": TEMEL[f1], "hedef": TEMEL[f2],
                                  "bnokta": p})
                        for f1 in INCE if grafik[f1] == gk
                        for f2 in INCE if grafik[f2] == gh]
                if all(izin) or (gevsek and any(izin)):
                    kurallar.append((True, {"kaynak": gk, "hedef": gh,
                                            "bnokta": p}))
    return kurallar


def duzenek(grafik, kurallar):
    k = kural_dizisi(kurallar)
    return lambda a: k({"kaynak": grafik[a["ince_kaynak"]],
                        "hedef": grafik[a["ince_hedef"]],
                        "bnokta": a["bnokta"]})


AK = altlara_ayir(akislar())
print(f"akış {len(AK)} | niyetin geçirdiği {sum(1 for a in AK if politika(a))} "
      f"| ince bölge {len(INCE)}")
print()
print(f"{'bölge grafiği':<12s} {'bölge':>5s} {'türetim':<7s} {'kural':>5s} "
      f"{'doğru':>5s} {'fazla geçen':>11s} {'fazla duran':>11s}")
for ad, g in GRAFIKLER:
    for tur, gevsek in (("dar", False), ("geniş", True)):
        k = kume_uret(g, gevsek)
        d = fark(AK, politika, duzenek(g, k))
        print(f"{ad:<12s} {len(set(g.values())):5d} {tur:<7s} {len(k):5d} "
              f"{d['dogru_gecti'] + d['dogru_durdu']:5d} {d['yanlis_gecti']:11d} "
              f"{d['yanlis_durdu']:11d}")

print()
for ad, g in GRAFIKLER[:2]:
    f = duzenek(g, kume_uret(g, True))
    print(f"{ad} geniş türetimin fazladan geçirdikleri:",
          [(a["no"], a["kaynak"], a["hedef"], a["bnokta"])
           for a in AK if not politika(a) and f(a)])

INCE_G = GRAFIKLER[3][1]
EKSIK = [(e, o) for e, o in kume_uret(INCE_G, False) if o["hedef"] != "ic-uyg"]
UNUTAN = duzenek(INCE_G, EKSIK)
d = fark(AK, politika, UNUTAN)
print()
print(f"6 bölge, 'ic-uyg' hedefli kurallar yazılmamış: kural {len(EKSIK)}, "
      f"doğru {d['dogru_gecti'] + d['dogru_durdu']}, "
      f"fazla geçen {d['yanlis_gecti']}, fazla duran {d['yanlis_durdu']}")
print("kesilen akışlar:",
      [(a["no"], a["ince_kaynak"], a["ince_hedef"], a["bnokta"])
       for a in AK if politika(a) and not UNUTAN(a)])
```

```
akış 40 | niyetin geçirdiği 22 | ince bölge 6

bölge grafiği bölge türetim kural doğru fazla geçen fazla duran
2 bölge          2 dar         0    18           0          22
2 bölge          2 geniş      12    34           6           0
3 bölge          3 dar        12    29           0          11
3 bölge          3 geniş      18    38           2           0
4 bölge          4 dar        38    40           0           0
4 bölge          4 geniş      38    40           0           0
6 bölge          6 dar        88    40           0           0
6 bölge          6 geniş      88    40           0           0

2 bölge geniş türetimin fazladan geçirdikleri: [(23, 'dmz', 'yonetim', 8080), (26, 'ic', 'yonetim', 8080), (27, 'ic', 'yonetim', 8080), (32, 'dis', 'ic', 443), (36, 'dis', 'ic', 443), (39, 'dmz', 'yonetim', 8080)]
3 bölge geniş türetimin fazladan geçirdikleri: [(26, 'ic', 'yonetim', 8080), (27, 'ic', 'yonetim', 8080)]

6 bölge, 'ic-uyg' hedefli kurallar yazılmamış: kural 71, doğru 38, fazla geçen 0, fazla duran 2
kesilen akışlar: [(4, 'ic-veri', 'ic-uyg', 443), (38, 'yonetim', 'ic-uyg', 443)]
```

## Birleştirmenin Ödettiği

İki bölgeli grafiğin dar türetimi **sıfır kural** üretiyor. Bu bir yazım hatası değil,
türetimin verdiği yanıt: iki bölgeli bir uzayda hiçbir çift, altındaki temel çiftlerin
hepsinde izinli değil. Sınırın tamamı örtük rete iniyor. Fazla geçen **0** — kâğıt üzerinde
kusursuz. Fazla duran **22**: niyetin geçirdiği yirmi iki akışın hepsi kesiliyor.

Aynı grafiğin geniş türetimi **12** kural yazıyor ve hatanın yönünü tersine çeviriyor:
fazla duran **0**, fazla geçen **6**. Sızan altı akışın dördü yönetim bölgesine gidiyor,
ikisi dışarıdan doğrudan içeriye. Grafik değişmedi, niyet değişmedi; değişen tek şey karışık
bir çiftin nasıl okunacağı oldu. **Bir grafik iki bölgeye indiğinde, hatanın yönü artık
tasarımın değil türetimin seçimidir.** Silahtan arındırılmış bölgenin gerekçesi bu satırdır:
o ad olmadan "dışarıya açık ama içeriye ait değil" cümlesi söylenemez.

Üç bölgeli grafik dışarıyı ve silahtan arındırılmış bölgeyi ayırıyor, yönetimi içeride
bırakıyor. Dar türetim **12** kuralla **11** akışı fazladan durduruyor; geniş türetim
**18** kuralla yalnız **2** akış sızdırıyor ve ikisi de `ic`ten yönetime giden akışlar.
Yönetimi içeriyle aynı ada koymak, "içeriden yönetime gidilmez" cümlesini söylenemez
kılıyor — bir bölge birleştirmesi, bir yasağı doğrudan siliyor.

Dört bölgeli grafikte iki türetim **aynı 38 kuralı** veriyor ve sapma iki yönde de sıfır.
Beklenen sonuç: grafik niyetin ayırt ettiği her şeyi ayırt ediyor, karışık çift kalmıyor,
seçilecek bir şey kalmıyor.

## Bölmenin Ödemediği

Altı bölgeli grafik silahtan arındırılmış bölgeyi ve içeriyi ikişer parçaya bölüyor. Bölge
sayısı 4'ten 6'ya çıkıyor — **1,5 kat**. Kural sayısı 38'den 88'e çıkıyor — **2,3 kat**;
türetim her bölge çifti için kural yazdığı sürece bu büyüme bölge sayısının karesiyle gider.
Niyetten sapma ise **0**'dan **0**'a gidiyor. Kırk akışın kırkında karar zaten doğruydu ve
doğru kalıyor.

Ölçünün söylediği şey şudur: **bölge eklemek niyete yaklaştırmaz.** Dört bölge niyeti
söyleyebiliyordu; altı bölge onu daha uzun söylüyor. Bu, bölmenin yararsız olduğu anlamına
gelmez — söylenebilecek **başka** niyetler açar. Ama bu ölçüde kazanılan bir şey yoktur ve
maliyeti elli kuraldır.

Bölmenin kendine ait bir riski var ve alt tabloda duruyor. Bölge ikiye ayrıldığında kurallar
her iki yarı için ayrı ayrı yeniden yazılmalıdır; bir yarı unutulduğunda küme **71** kurala
iniyor, fazla geçen **0** kalıyor ve fazla duran **2**'ye çıkıyor. İki akış da bölünmenin
unutulan yarısına gidiyor. Bölme hatası tek yönlüdür: yeni bölge adı hiçbir kuralda
geçmediği için hiçbir şeyi açmaz, yalnız kapatır.

## Açık Kalan Yüzeyler ve Daraltmalar

**Birinci yüzey — geniş türetimin karışık çiftleri.** İki bölgeli grafikte altı akış, üç
bölgeli grafikte iki akış niyetin yasakladığı hâlde geçiyor. Bunlar bir yapılandırma hatası
değil; grafiğin **söyleyemediği** şeyler. **Daraltma:** yeni bir bölge adı. Yönetimi ayrı
bir ada taşımak üç bölgedeki iki sızıntıyı sıfırlıyor; silahtan arındırılmış bölgeyi ayırmak
ikideki dördü kapatıyor. Kural değil, **ad** ekleniyor.

**İkinci yüzey — dar türetimin sessiz kesmesi.** İki bölgeli grafikte 22, üç bölgeli
grafikte 11 akış örtük retle düşüyor ve hiçbirinin karşısında bir kural adı yok. Yalnız
sızıntı sayan bir denetim iki bölgeli grafiği kusursuz ilan eder. **Daraltma:** ölçümü iki
yönlü kurmak ve dizinin sonuna sayılabilir bir durdur kuralı yazmak — önceki dersin
daraltması burada da geçerlidir.

**Üçüncü yüzey — bölünmüş bölgenin unutulan yarısı.** Bir bölgeyi ikiye ayırmak, ona değen
bütün kuralları iki katına çıkarır. Ölçümde unutulan yarı yalnız fazla duran ürettiği için
görünürdür — kullanıcı şikâyet eder. Ters yönü daha sessizdir: yeni ad, kendisine değmeyen
geniş bir kuralın altında kalırsa hiç fark edilmez. **Daraltma:** bölme işlemini kural
yazımından ayırmamak; her yeni bölge adı için türetimi baştan koşturmak ve kural sayısındaki
beklenen artışı önceden hesaplamak. Beklenenden az kural, yazılmamış kural demektir.

## Özet

- Bölge bir bölütleme düzeneği değil, **politikanın konuşabildiği en küçük addır**; iki
  makine aynı bölgedeyse aralarına kural yazılamaz.
- Kaba bir grafikte her bölge çiftinin altında karışık temel çiftler birikir ve iki türetim
  doğar: dar türetim sızdırmaz ama fazladan durdurur, geniş türetim durdurmaz ama sızdırır.
- İki bölgeli grafikte dar türetim **0** kural yazar ve **22** akışı fazladan durdurur;
  geniş türetim **12** kuralla **6** akış sızdırır. Silahtan arındırılmış bölgenin gerekçesi
  budur — o ad olmadan niyetin orta terimi söylenemez.
- Dört bölgede iki türetim aynı **38** kuralı verir ve sapma iki yönde de sıfırdır;
  belirsizlik grafikten değil, birleştirmeden doğar.
- Bölge 4'ten 6'ya çıkarken kural 38'den 88'e çıkar, sapma **0**'da kalır: bölge eklemek
  niyete yaklaştırmaz, yalnız aynı niyeti uzatır.
- Bir bölgeyi bölüp bir yarısının kurallarını yazmamak **0** fazla geçen ve **2** fazla
  duran üretir; bölme hatası tek yönlüdür.

## Sonraki Adım

Buraya kadarki üç ders de sınırı **bir kez** karar veren bir düzenek saydı: akış gelir,
kural dizisinden geçer, geçer ya da durur. Karar akışın kendi alanlarından okunur ve orada
biter. Oysa bir akışın niyete uyup uymadığı, bazen alanlarından değil **davranışından**
anlaşılır — ve davranış bir eşikle okunur. Sonraki ders kural dizisini bırakıp eşiği ölçer:
eşik sıkıldığında kaçırılan akış sayısı düşer, boşuna durdurulan akış sayısı yükselir ve iki
sayı aynı anda sıfırlanamaz. Aynı ölçü, tespit eden bir düzenekle önleyen bir düzenekte
aynı sayıyı verir ama aynı bedeli ödetmez.
