---
title: 'Adres Dönüştürme'
source: 'https://academia.sh/tr/kurslar/linux-ag-yonetimi/adres-donusturme'
course: 'Linux Ağ Yönetimi ve Sorun Giderme'
language: tr
updated: '2026-08-17T18:09:58+00:00'
license: 'CC BY-SA 4.0'
---

# Adres Dönüştürme

Bağlantı noktası yönlendirmenin dışarıya açtığı yüzey kalem kalem sayılır: dört kural on üç nokta açıp bugün sekiz çifte ulaştırıyor, dönüştürmeli günlük satırı on iki aday kaynağın sıfırını eliyor ve altı yüzüncü saniyede çevrim kaydının yalnız kırkta on biri çözülebiliyor.

Önceki ders bir makinenin kendi kapısını nasıl kapattığını saydı: beş adımın yüz yirmi sırasından
kırkı yöneticiyi dışarıda bırakıyordu. Bu ders ters yöne bakar. Aynı makine bir ağın çıkışında
durduğunda yalnız kapı tutmaz; arkasındaki makineler adına konuşur ve dışarıdan gelen bazı
bağlantıları içeri taşır.

Her taşıma kuralı, kapatılan kapının yanında bir pencere açar. Kursun son dersi o pencereleri
sayar ve tanıya verdikleri zararı ölçer. Bu ders "şunu açın" biçiminde bir yönerge vermez;
açmanın **kaç çift** demek olduğunu yazar.

## Ağ Geçidinin İki İşi

**Adres dönüştürme** (NAT), bir paketin başlığındaki adres ya da bağlantı noktası alanlarının
geçit üzerinde değiştirilmesidir. İki yönü vardır. **Kaynak dönüştürme** içeriden dışarı giden
paketlerde uygulanır: iç konağın adresi geçidin adresiyle değiştirilir ve geçit bir çevrim kaydı
tutarak dönen paketi doğru iç konağa geri gönderir. **Hedef dönüştürme** dışarıdan gelen
paketlerde uygulanır: geçidin bir bağlantı noktasına gelen paket, bir iç konağın bir noktasına
yönlendirilir. İkincisine **bağlantı noktası yönlendirme** denir.

Dönüştürmenin türleri, çevrim tablosunun beş bileşenli anahtarı, kapasite sınırı ve uçtan uca
bağlantının bozulması **Bilgisayar Ağları** kursunda kuruldu ve burada tekrarlanmaz. Bu ders iki
şey sorar: bu kuralın açtığı yüzey ne kadar, bu kuralın sildiği bilgi ne.

Konum da bu kursun konusudur. Kaynak dönüştürme yönlendirme kararından **sonraki**, hedef
dönüştürme **önceki** durakta yapılır. Hedef dönüştürme önce çalıştığı için süzme kuralları
paketi **dönüştürülmüş** hâliyle görür; kuralı dış adrese göre yazan operatör hiçbir şey
eşleştiremez ve ortada bir hata iletisi olmaz.

## Yüzey, Kimlik ve Kayıt

Kurgu şudur: bir geçidin arkasında bir iç ağ vardır ve dört yönlendirme kuralı yazılmıştır.

- **EF41** — İç ağda **12** konak ve konak başına **5** servis vardır; iç (konak, servis) çifti
  **60**'tır.
- **EF42** — Dönüştürme yokken dışarıdan doğrudan erişilebilen iç çift **0**'dır.
- **EF43** — Dört kural yazılıdır: üçü tek bir noktayı, biri **10** noktalık bir aralığı açar.
- **EF44** — Aralık kuralının hedefindeki konakta bugün **5** servis dinlemektedir; kalan beş
  nokta bugün kapalıdır ve kural onları da kapsamaktadır.
- **EF45** — Kâhin gerçek kaynak konaktır ve `ic-konak-07` seçilmiştir.
- **EF46** — Hedef sunucunun günlüğü tek bir kaynak alanı yazar; dönüştürme varken bu alan
  geçidin adresidir.
- **EF47** — Çevrim kaydı bağlantı kapandıktan **120 saniye** sonra düşer.
- **EF48** — Pencere **600** saniyedir ve **40** bağlantı vardır; bağlantı `i` on beşinci
  saniyenin katlarında başlar ve süresi `30 + (i mod 7) * 10` saniyedir.
- **EF49** — Aday kümesi süpürmesi iç konak sayısı 8, 12 ve 16 iken yapılır.
- **EF50** — Bütün sayılar tam sayımdır; rastgelelik ve tohum yoktur.

```python
"""Adres donusturme: acilan yuzey , kaynak kimliginin kaybi , kaydin omru."""
IC_KONAK, SERVIS = 12, 5
ZAMAN_ASIMI, PENCERE, BAGLANTI = 120, 600, 40
KURAL = (("tekil-a", 1, 1), ("tekil-b", 1, 1), ("tekil-c", 1, 1),
         ("aralik-d", 10, 5))

print("ic ag:", IC_KONAK, "konak x", SERVIS, "servis =",
      IC_KONAK * SERVIS, "ic (konak , servis) cifti")
print("disaridan dogrudan erisilebilen cift (donusturme yok):", 0)
print()
print("kural       actigi nokta  dinleyen servis  ulasilan cift  acik nokta")
acik = dinleyen = 0
for ad, nokta, dinler in KURAL:
    acik += nokta
    dinleyen += dinler
    print(f"  {ad:10s} {nokta:12d} {dinler:16d} {dinleyen:14d} {acik:11d}")
print(f"  {'toplam':10s} {acik:12d} {dinleyen:16d} {dinleyen:14d} {acik:11d}")
print("  kural degismeden buyuyebilecek yuzey:", acik - dinleyen, "cift")
print()
KAHIN = "ic-konak-07"
ADAY = tuple(f"ic-konak-{i:02d}" for i in range(1, IC_KONAK + 1))


def gunluk_satiri(kaynak, donusturme):
    return "ag-gecidi" if donusturme else kaynak


def cevrim_tablosu(kaynak, okunabilir):
    return kaynak if okunabilir else "kayit-yok"


print("okuma                          ayri yanit  elenen  kalan")
for ad, f in (("hedefin gunlugu (donusturmeli)",
               lambda k: gunluk_satiri(k, True)),
              ("hedefin gunlugu (donusturmesiz)",
               lambda k: gunluk_satiri(k, False)),
              ("cevrim tablosu (kayit yasarken)",
               lambda k: cevrim_tablosu(k, True)),
              ("cevrim tablosu (kayit dustukten sonra)",
               lambda k: cevrim_tablosu(k, False))):
    yanit = f(KAHIN)
    kalan = sum(1 for a in ADAY if f(a) == yanit)
    print(f"  {ad:38s} {len({f(a) for a in ADAY}):5d} {len(ADAY) - kalan:7d}"
          f" {kalan:6d}")
print()
BAGLANTILAR = [(15 * i, 30 + (i % 7) * 10) for i in range(BAGLANTI)]
print(f"cevrim kaydi: {BAGLANTI} baglanti , {PENCERE} sn pencere ,"
      f" kayit kapanistan {ZAMAN_ASIMI} sn sonra dusuyor")
print("  bakis ani  baslamis  hala cozulebilir  oran")
for T in (0, 100, 300, 600):
    baslamis = [(b, s) for b, s in BAGLANTILAR if b <= T]
    cozulur = [1 for b, s in baslamis if b + s + ZAMAN_ASIMI > T]
    oran = round(len(cozulur) / len(baslamis), 4) if baslamis else 0.0
    print(f"  {T:9d} {len(baslamis):9d} {len(cozulur):17d} {oran:9.4f}")
print()
print("aday kumesi supurmesi: ic konak sayisi degisiyor")
for n in (8, 12, 16):
    a = tuple(f"ic-konak-{i:02d}" for i in range(1, n + 1))
    kalan = sum(1 for x in a if gunluk_satiri(x, True) == "ag-gecidi")
    print(f"  {n:2d} ic konak -> donusturmeli gunluk elenen {len(a) - kalan:2d}"
          f" kalan {kalan:2d} | donusturmesiz gunluk elenen {len(a) - 1:2d}"
          f" kalan {1:2d}")
```

```
ic ag: 12 konak x 5 servis = 60 ic (konak , servis) cifti
disaridan dogrudan erisilebilen cift (donusturme yok): 0

kural       actigi nokta  dinleyen servis  ulasilan cift  acik nokta
  tekil-a               1                1              1           1
  tekil-b               1                1              2           2
  tekil-c               1                1              3           3
  aralik-d             10                5              8          13
  toplam               13                8              8          13
  kural degismeden buyuyebilecek yuzey: 5 cift

okuma                          ayri yanit  elenen  kalan
  hedefin gunlugu (donusturmeli)             1       0     12
  hedefin gunlugu (donusturmesiz)           12      11      1
  cevrim tablosu (kayit yasarken)           12      11      1
  cevrim tablosu (kayit dustukten sonra)     1       0     12

cevrim kaydi: 40 baglanti , 600 sn pencere , kayit kapanistan 120 sn sonra dusuyor
  bakis ani  baslamis  hala cozulebilir  oran
          0         1                 1    1.0000
        100         7                 7    1.0000
        300        21                12    0.5714
        600        40                11    0.2750

aday kumesi supurmesi: ic konak sayisi degisiyor
   8 ic konak -> donusturmeli gunluk elenen  0 kalan  8 | donusturmesiz gunluk elenen  7 kalan  1
  12 ic konak -> donusturmeli gunluk elenen  0 kalan 12 | donusturmesiz gunluk elenen 11 kalan  1
  16 ic konak -> donusturmeli gunluk elenen  0 kalan 16 | donusturmesiz gunluk elenen 15 kalan  1
```

## Açılan Yüzey

Üst tablo dört kuralın açtığı yüzeyi kalem kalem sayıyor. Dönüştürme yokken dışarıdan
erişilebilen iç çift **0**'dır; iç ağdaki altmış çiftin hiçbirine ulaşılamaz. Üç tekil kural
üçe çıkarıyor, dördüncü kural on noktalık bir aralık açıyor ve bugün ulaşılan çift **8** oluyor.

İki sayı arasındaki fark bu bölümün asıl konusudur. Açık nokta **13**, ulaşılan çift **8**.
Aradaki **5** çift bugün kapalı, çünkü o noktalarda dinleyen servis yok; yarın o konakta bir
servis başlatıldığında **kural değişmeden** erişilebilir olacak. Aralık biçiminde yazılmış bir
kural, bugünkü yüzeyi değil **gelecekteki en büyük yüzeyi** tanımlar. Ölçülmesi gereken sayı
sekiz değil, on üçtür.

Bu, tekil kuralla aralık kuralı arasındaki tercihi bir sayıya bağlar. Aynı iş, tek bir aralık
kuralı yerine beş tekil kuralla yazıldığında açık nokta sayısı on üçten sekize iner ve bugünkü
işlev değişmez.

## Üç Sayı

**Kâhin:** gerçek kaynak `ic-konak-07` — on iki iç konaktan biri. **Sınama:** hedef sunucunun
günlüğü tek bir kaynak alanı yazıyor ve dönüştürme varken orada geçidin adresi duruyor; on iki
konak için **tek bir yanıt**. **Elenen aday:** dönüştürmeli günlük **0**, dönüştürmesiz günlük
**11**, çevrim tablosu kayıt yaşarken **11**, kayıt düştükten sonra **0**.

Bu sıfır kursun kuralının en kısa örneğidir. Günlük satırı vardır, okunabilir, doğrudur ve
**hiçbir adayı elemez**. Kaynak dönüştürme on iki ayrı kimliği tek bir kimliğe indirgiyor; hedef
tarafındaki her satır aynı şeyi söylüyor. Kaydın var olması ölçmeye yetmiyor; **tanısı sınanmayan
çıktı ölçülmemiş sayılır.**

En alttaki tablo süpürmeyi gösteriyor. İç konak sayısı sekizden on altıya çıkarıldığında
dönüştürmeli günlüğün elediği aday **0**'da sabit kalıyor, kalan sekizden on altıya çıkıyor.
Eleme gücü sıfır olan bir okuma, aday kümesi büyüdükçe daha da değersizleşir.

## Kaydın Ömrü

Kimliği geri getirebilecek tek yer çevrim tablosudur ve o tablo bir bellek yapısıdır, bir günlük
değil. Kayıt bağlantı açıkken yaşar, kapandıktan yüz yirmi saniye sonra düşer.

Yüzüncü saniyede bakıldığında başlamış yedi bağlantının **yedisi** çözülebiliyor; oran
**1,0000**. Üç yüzüncü saniyede yirmi bir bağlantının **on ikisi**, oran **0,5714**; altı
yüzüncü saniyede kırk bağlantının yalnız **on biri**, oran **0,2750**. Yarım saatlik gecikmeyle
bakan operatör, bağlantıların dörtte üçünün kaynağını hiçbir yerden çıkaramaz.

**Kanıt beklemez.** Kaynağı kalıcı olarak saklamanın tek yolu, çevrim anında bir günlük satırı
yazmaktır ve bu bir ayardır; arızadan önce açılmış olmalıdır. Açık olmadığında geriye kalan şey
hedefin günlüğüdür ve o günlük on iki adaydan sıfırını eler.

## Özet

- Kaynak dönüştürme yönlendirme kararından sonraki, hedef dönüştürme önceki durakta çalışır;
  süzme kuralları paketi dönüştürülmüş hâliyle görür ve dış adrese yazılan kural eşleşmez.
- Dört yönlendirme kuralı **13** nokta açıyor ve bugün **8** çifte ulaşılıyor; aradaki **5** çift
  kural değişmeden ileride açılabilir. Aralık kuralı bugünkü değil, gelecekteki en büyük yüzeyi
  tanımlar.
- Dönüştürmeli günlük satırı on iki aday kaynağın **0'ını** eler; dönüştürmesiz günlük ve
  yaşayan çevrim kaydı **11** eler.
- Çevrim kaydı kapanıştan 120 saniye sonra düşer: 100. saniyede çözülebilirlik **1,0000**,
  300'de **0,5714**, 600'de **0,2750**.
- İç konak sayısı sekizden on altıya çıktığında dönüştürmeli günlüğün elediği aday **0**'da
  sabit kalır, kalan sekizden on altıya çıkar.

## Kurs Kapanışı

Bu kurs bir soruyu on üç kez sordu: **bir sınama kaç aday nedeni eliyor.** Her derste üç sayı yan
yana durdu — kâhin, sınamanın verdiği yanıt ve elenen aday neden sayısı. Kursun kuralı buydu: bir
sınamanın sayısı verdiği yanıt değil, elediği aday nedendir; **kaç adayı elediği yazılmayan sınama
ölçülmemiş sayılır.**

Aşağıdaki tablo on üç dersin ölçüsünü tek yerde toplar. **Boş bırakılan satırlar
uydurulmamıştır**: her satır yalnız kendi kaynak dersinden yazılır ve o dersler bu payda
üretilmedi.

| Ders | Kâhin | Sınama | Elenen aday / bedel |
|---|---|---|---|
| Arayüzler ve Adresler | 8 aday neden, 8 sınama | arayüz sınaması **3 ayrı yanıt** | en kötü durumda **6 aday** kalıyor |
| Yönlendirme Tablosu | aynı 8 aday | rota sınaması **3 yanıt** | en kötü **5 aday**; `ag-gecidi-yanlis` ile `rota-eksik` ayrılmıyor |
| Ad Çözümleme | aynı 8 aday | ad çözümleme **2 yanıt** | `cozulemedi` **7** eler, `cozuldu` yalnız **1** — kursun en büyük yanıt farkı |
| Bağlantı Noktaları ve Dinleyen Servisler | aynı 8 aday | dinleyen listesi **2 yanıt** | beklenen yanıtta yalnız **1** aday; bağlantı denemesi aynı anda **7** |
| Katmanlı Tanı Yöntemi | `guvenlik-duvari-dusuruyor` | bağlantı denemesi `zaman-asimi` | **7 elenen, 1 kalan**; katmanlı **33**, ters **38**, açgözlü **10** (ulaşılamaz alt sınır) |
| Erişilebilirlik Testleri | `ag-gecidi-yanlis` | uzak yankı `yanit-yok` | **4 elenen, 4 kalan**; yankının **yanıt vermesi** de 4 adayı ayakta bırakıyor |
| Paket Yakalama | `guvenlik-duvari-dusuruyor` | süzgeçsiz yakalama **14400 satır** | **6 elenen, 2 kalan**; satır başına eleme **0,0004**'e karşı bağlantı denemesinde **7,0000** |
| Yaygın Arıza Kalıpları | `cozumleyici-sessiz` | ad çözümleme `cozulemedi` | **7 elenen, 1 kalan**; aralıklı arıza 84 sn, kayıt 300'de **42/84**, 500'de **13/84** |
| Güvenli Kabuk | 9 adayda `acik-anahtar-yetkisiz` | ayrıntılı istemci 46 satır, ayrıntılı sunucu günlüğü 3 satır | **5 / 7**; dinleyen listesi 12 satırda **1**; yedi sınamada **2** ayrılamayan öbek |
| Tünelleme ve Sıçrama Sunucusu | 10 adayda `hedef-duvar-dusuruyor` | uçtan uca **7** ayrı yanıt, duraktan hedefe **5** | **8 / 9**; katmanlı sıra **34**, uçtan uca önce **28** adım; tünel ağzı **0** ve **72** dolaylı çift |
| Paket Filtreleme Çerçevesi | karar `giris-suzme` durağında politikayla veriliyor | kural listesi **34** satır, açık iz sürme **12** satır | **0 / 8**; yüklü sayaç **0**, sessiz sayaç **6**; ulaşılmayan durak **20** |
| Güvenlik Duvarı Kuralları | 120 sıradan **40**'ı kilitliyor, son küme hepsinde aynı | kuru çalışma **6** yanıt, uçtan deneme **4** yanıt | **5 / 5**, birlikte öbek **0**; kuru çalışma **0** kilitlenme önlüyor, atomik yükleme **40** |
| Adres Dönüştürme | gerçek kaynak `ic-konak-07` | dönüştürmeli günlük **1** ayrı yanıt | **0**, kalan **12**; 600. saniyede çözülebilirlik **0,2750** |

Beş dersin ortak sonucu tek bir örüntüdür. Erişim katmanında çıktının hacmi ile eleme gücü
arasında bağ yoktur: kırk altı satırlık ayrıntılı istemci çıktısı beş aday eledi, üç satırlık
sunucu günlüğü yedi eledi, otuz dört satırlık kural listesi hiçbirini elemedi ve tek satırlık
dönüştürmeli günlük de hiçbirini elemedi. Eleme gücü satırda değil, çıktının **kaç ayrı yanıt**
üretebildiğindedir.

İkinci örüntü aday kümesiyle ilgiliydi. Her derste liste bir aday büyütülüp küçültüldü ve
sonuç her seferinde aynı yöne baktı: eleme sayısı sabit kalırken kalan belirsizlik büyüdü.
Bu yüzden bu konu boyunca ölçü olarak eleme değil, **kalan** ve **ayrılamayan öbek** kullanıldı.

Üçüncü örüntü zamanla ilgiliydi ve en sert biçimini burada aldı. İz sürme kapalıyken düşürülen
paketin izi sıfır satırdı; kilitlenmiş yöneticinin okuyacağı günlük makinenin içindeydi; çevrim
kaydı altı yüzüncü saniyede kırkta on bire inmişti. Üçünde de kanıt bir ayara bağlıydı ve o ayar
arızadan önce açılmış olmalıydı. **Kanıt beklemez.**

Bu konu boyunca yıkıcı ve kilitleyen komutlar tam biçimde yazılmadı, gerçek anahtar ve parmak izi
yazılmadı, adres dönüştürme "şunu açın" biçiminde değil **kaç çift açıldığı** biçiminde
anlatıldı. Bu bir öğretim kısıtı değil, ölçümün kendisiydi: açık yüzey sayılabilir bir
niceliktir.

Bir sonraki kurs, **Çekirdek Arayüzleri ve İzolasyon**, bu kursun bilerek dışında bıraktığı yere
girer. Burada bir makinenin tek bir ağ yığını vardı; orada ad alanlarıyla aynı makinede birden
çok ağ yığını kurulur ve bu dersteki her arayüz, her yönlendirme tablosu ve her kural zinciri
**çoğalır**. Konteyner ağı, ad alanı ve denetim grubu bu kursta anlatılmadı ve oraya bırakıldı.
Aynı soru orada da sorulacak: bir sınama kaç aday nedeni eliyor. Yanıtı zorlaştıran şey, aday
kümesinin artık tek bir makinenin içinde bile birden çok kopyaya bölünmüş olmasıdır.
