9 DHCP, DNS, gateway ve NAT
Bir dizüstü bilgisayarı ağa bağladığında kimse ona elle adres vermez, kimse ona “internete çıkmak için şu cihazı kullan” demez, kimse ona google.com’un hangi IP’de olduğunu söylemez. Buna rağmen çalışır. Bu hafta o üç sessiz işin kim tarafından yapıldığını ve biri eksik kaldığında belirtinin nasıl değiştiğini inceleyeceğiz.
Sınavda sorulur: DHCP’nin dağıttığı dört bilgi; DORA; 169.254.x.x belirtisi; “aynı subnette mi?” kararı; ağ geçidinin görevi ve neden aynı subnette olduğu; ARP’ın IP→MAC işi; DNS’in ayrı bir hizmet olması; NAT’ın görevi ve NAT’ın güvenlik duvarı olmadığı.
Sınav dışı (bilgi amaçlı): DHCP relay ayrıntısı, port forwarding, CGNAT, DNS kök/TLD sunucu zincirinin adım adım dizisi, IPv6 Neighbor Discovery.
9.1 Dört bilgiden biri eksikse belirti ne olur?
Bir cihazın internete çıkabilmesi için dört bilgiye ihtiyacı var. Bunlardan biri eksik veya yanlışsa belirti tam olarak ne olur? Önce dört bilgiyi görelim:
| # | Bilgi | Ne işe yarar | Eksikse belirti |
|---|---|---|---|
| 1 | IP adresi | Cihazın ağdaki kimliği | Hiçbir şey çalışmaz |
| 2 | Prefix (maske) | “Bu hedef benim ağımda mı?” kararı | Bazı hedefler çalışır, bazıları çalışmaz |
| 3 | Ağ geçidi (gateway) | Kendi ağının dışına çıkış kapısı | Yerel ağ çalışır, internet çalışmaz |
| 4 | DNS sunucusu | İsmi IP’ye çevirir | IP ile çalışır, isimle çalışmaz |
Dört satır, haftanın dört konusu. DHCP bu dördünü dağıtan hizmettir, ağ geçidi üçüncü satırın cihazıdır, DNS dördüncü satırın hizmetidir, NAT ise paket ağdan çıkarken kenarda yapılan adres değişimidir. Aşağıdaki dört vaka, dört satırın her birinin bozulduğu hâli gösteriyor.
9.2 Vaka 1 — Adres hiç gelmedi
Bir dizüstü bilgisayar Wi-Fi’a bağlı görünüyor. ipconfig çıktısı:
Wireless LAN adapter Wi-Fi:
IPv4 Address. . . . . . . . . . . : 169.254.44.18
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . :
Aynı sınıftaki diğer cihazlar internete erişiyor.
9.2.1 Kanıt ne söylüyor
169.254.x.x adresini hiçbir DHCP sunucusu dağıtmaz. Bu adres, cihazın kendi kendine verdiği adrestir: DHCP’den cevap alamayan bir işletim sistemi 169.254.0.0/16 aralığından bir adres seçer. Windows terminolojisinde bu davranışa APIPA denir, ancak davranış Windows’a özgü değildir; adı IPv4 link-local adreslemedir.
Gateway ve DNS satırlarının boş olması aynı kanıtın devamıdır: bu iki bilgiyi de normalde DHCP dağıtır. Cihaz DHCP’den hiçbir şey almadığı için üçü birlikte eksiktir.
9.2.2 DHCP normalde ne yapardı: DORA
DHCP’nin adres dağıtma sırası dört adımdır (Droms 1997):
İstemci DHCP sunucusu
│ 1. DISCOVER (broadcast: "burada kimse var mı?")
│ ──────────────────────────────────────────────▶
│ 2. OFFER ("şu adresi kullanabilirsin")
│ ◀──────────────────────────────────────────────
│ 3. REQUEST ("o adresi istiyorum")
│ ──────────────────────────────────────────────▶
│ 4. ACK ("onaylandı, kira süresi şu kadar")
│ ◀──────────────────────────────────────────────
ACK ile birlikte gelen paket yalnızca IP adresi değildir: adres, prefix, ağ geçidi ve DNS sunucusu aynı anda gelir. Adresin geçerlilik süresine kira (lease) denir; süre dolmadan cihaz kirayı yeniler.
Bu cihazın DNS sorunu yok — cihazın henüz adresi yok. Geçerli IP ve ağ geçidi olmayan bir cihaz 8.8.8.8’e ulaşamaz, dolayısıyla DNS’i elle ayarlamak hiçbir şeyi değiştirmez. Kanıta dayalı ilk iş DHCP’den yeni yapılandırma istemektir:
ipconfig /release
ipconfig /renew9.3 Vaka 2 — Ağ geçidi yanlış subnette
ipconfig çıktısı:
IPv4 Address. . . . . . . . . . . : 192.168.20.45
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.30.1
Testler:
ping 192.168.20.60 → başarılı (aynı ağdaki yazıcı)
ping 192.168.30.1 → timeout (ağ geçidi)
ping 1.1.1.1 → timeout (internet)
9.3.1 Kanıt ne söylüyor
Cihaz 192.168.20.45/24 adresinde. /24 prefix’i şu anlama gelir: 192.168.20.0 – 192.168.20.255 benim ağım, geri kalan her şey dışarı. Yazıcının çalışması bu ağın kendi içinde sağlıklı olduğunu kanıtlar.
Ağ geçidi olarak verilen 192.168.30.1 ise bu aralığın dışındadır. Cihaz her paket için şu kararı verir:
Hedef benim prefix'imin içinde mi?
├─ Evet → doğrudan hedefe gönder (ARP ile MAC adresini bul)
└─ Hayır → ağ geçidine gönder
Ağ geçidine göndermek için de cihazın ağ geçidinin MAC adresini bulması gerekir. Ama 192.168.30.1 kendi prefix’inin dışında olduğu için cihaz o adrese doğrudan ulaşamaz — ve dışarı çıkmak için kullanacağı tek kapı da o adres. Kilitlenme buradadır. Ağ geçidi, cihazın kendi subnetinde bulunmak zorundadır.
9.3.2 ARP: aynı ağdaki hedefin MAC adresini bulmak
Aynı subnetteki bir hedefe göndermek için IP yetmez; çerçeveyi taşımak için MAC adresi gerekir. ARP bu eşlemeyi yapar:
> arp -a
Interface: 192.168.20.45 --- 0x5
Internet Address Physical Address Type
192.168.20.60 b4-2e-99-1a-7c-03 dynamic
192.168.30.1 incomplete
Yazıcı için MAC adresi öğrenilmiş, ağ geçidi için öğrenilememiş. Bu satır tek başına “ağ geçidi yanlış yerde veya ulaşılamaz durumda” kanıtıdır.
Yerel yazıcı çalışıyor, ağ geçidi yanıtlamıyor. Sorun daha ağ geçidine bile ulaşamamakta; ISP’nin ötesindeki hiçbir şey henüz devreye girmemiştir. Kanıt tamamen cihazın kendi yapılandırmasını gösteriyor.
9.4 Vaka 3 — Yalnız isimler çalışmıyor
IPv4 Address. . . . . . . . . . . : 192.168.20.45
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.20.1
Testler:
ping 192.168.20.1 → başarılı
ping 1.1.1.1 → başarılı
nslookup example.com → DNS request timed out
curl https://example.com → Could not resolve host
9.4.1 Kanıt ne söylüyor
Dört bilginin ilk üçü sağlam: adres var, prefix doğru, ağ geçidi yanıtlıyor ve internetteki bir IP’ye erişiliyor. Kırılan tek şey isimden IP’ye çeviri.
Bu, DNS’in ayrı bir hizmet olduğunu gösteren en temiz kanıttır (Mockapetris 1987). ping 1.1.1.1 bir isim kullanmaz, bu yüzden DNS bozukken de çalışır. curl https://example.com ise önce ismi çözmek zorundadır ve daha bağlantı kurmaya geçemeden başarısız olur — hata mesajının Could not resolve host olması, “bağlanamadım” değil “ismi çeviremedim” demektir.
DNS, isim ile IP arasındaki eşlemeyi sağlayan hizmettir. Cihazın hangi DNS sunucusunu kullanacağını da (Vaka 1’de gördüğümüz gibi) DHCP dağıtır. Dolayısıyla bu belirtinin iki tipik nedeni vardır: DHCP yanlış bir DNS sunucusu dağıtmıştır, veya dağıtılan DNS sunucusu şu anda yanıt vermemektedir.
Yerel önbellekte eski/kirli bir kayıt olma ihtimali için:
ipconfig /flushdnsnslookup example.com sonucunu ezberlemeyin. Büyük siteler konuma ve yüke göre farklı IP’ler döndürür ve bu IP’ler zamanla değişir. Sınavda sorulabilecek olan çıktının ne anlama geldiği, dönen sayının kendisi değil.
9.5 Vaka 4 — İki farklı evde aynı IP adresi
Sen evinde 192.168.1.10 adresini kullanıyorsun. Arkadaşın da kendi evinde 192.168.1.10 kullanıyor. İkiniz de aynı anda internete çıkıyorsunuz ve hiçbir çakışma olmuyor. Nasıl?
9.5.1 Kanıt ne söylüyor
192.168.1.10 bir özel (private) adrestir. Bu adresler internette yönlendirilmez; yalnızca yerel ağların içinde anlam taşır. Bu yüzden aynı adres binlerce evde eşzamanlı kullanılabilir.
Özel aralıklar:
10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255
Paket evden çıkarken router, gönderen adresi kendi genel (public) adresiyle değiştirir. Dönen cevabı da hangi iç cihaza ait olduğunu hatırlayıp geri çevirir. Bu işleme NAT (Network Address Translation) denir. Dışarıdaki sunucu senin 192.168.1.10 adresini hiç görmez; evin tek genel adresini görür.
İç adreslerin dışarıdan görünmemesi NAT’ın yan etkisidir, amacı değildir. NAT trafiğin içeriğini incelemez, kötü amaçlı bir dosyayı durdurmaz ve içeriden başlatılan hiçbir bağlantıyı engellemez. Kullanıcı zararlı bir siteye kendisi bağlandığında NAT hiçbir koruma sağlamaz. Trafiği kurallara göre inceleyip engelleme işi güvenlik duvarının işidir (13. hafta).
9.6 Ekranda ne gördük
Derste aşağıdaki sıra canlı olarak çalıştırılır; kayıttan izleyenler için çıktılar burada donmuş hâlde duruyor. Amaç komutları ezberlemek değil, dört bilginin nerede göründüğünü tanımaktır.
> ipconfig
IPv4 Address. . . : 192.168.20.45 ← 1. bilgi: adres
Subnet Mask . . . : 255.255.255.0 ← 2. bilgi: prefix
Default Gateway . : 192.168.20.1 ← 3. bilgi: çıkış kapısı
> ipconfig /all
DNS Servers . . . : 192.168.20.1 ← 4. bilgi: isim çözücü
DHCP Enabled. . . : Yes ← dördünü dağıtan hizmet
Lease Obtained. . : 8 Eylül 2026 09:14 ← kira başlangıcı
> ping 192.168.20.1 ← 3. bilgi gerçekten yanıtlıyor mu?
Reply from 192.168.20.1: bytes=32 time=1ms TTL=64
> nslookup example.com ← 4. bilgi gerçekten çalışıyor mu?
Server: 192.168.20.1
Name: example.com
Addresses: ...
> arp -a ← aynı ağdaki MAC eşlemeleri
192.168.20.1 a0-1b-2c-3d-4e-5f dynamic
Linux’ta aynı dört bilgi ip addr ve ip route ile görülür; ip route çıktısındaki iki satır tam olarak Vaka 2’deki kararı gösterir:
default via 192.168.20.1 dev enp0s31f6 ← "prefix'imin dışı buraya"
192.168.20.0/24 dev enp0s31f6 src 192.168.20.45 ← "bu aralık benim ağım"
9.8 Tek sayfa özet
- Bir cihazın internete çıkması için dört bilgi gerekir: adres, prefix, ağ geçidi, DNS.
- DHCP bu dördünü birlikte dağıtır; süreç DORA’dır ve adresin süresi kiradır.
169.254.x.x= DHCP’den cevap gelmedi. Bu bir DNS sorunu değildir.- Prefix, “hedef benim ağımda mı?” kararını verir. İçindeyse doğrudan gönderilir, dışındaysa ağ geçidine.
- Ağ geçidi cihazın kendi subnetinde olmalıdır; dışındaysa cihaz dışarı hiç çıkamaz.
- ARP aynı ağdaki bir IP’nin MAC adresini bulur.
incomplete= eşleme öğrenilemedi. - DNS ayrı bir hizmettir. IP ile çalışıp isimle çalışmayan bir sistemin sorunu DNS’tir.
- NAT özel adresleri çıkışta genel adrese çevirir; güvenlik duvarı değildir.
9.9 Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- Dört bilgiden hangisinin eksikliğinin hangi belirtiyi verdiğini eşleştirir.
169.254.x.xadresini DHCP’den yapılandırma alınamamasına bağlar.- DHCP’nin dağıttığı bilgileri ve DORA akışını tanır.
- Prefix kararını ve ağ geçidinin kendi subnetinde olma zorunluluğunu uygular.
- ARP’ın IP→MAC işini ve
incompletekaydını yorumlar. - DNS arızasını diğer arızalardan kanıtla ayırır.
- Özel adresleri ve NAT’ın çıkışta yaptığı işi açıklar.
- NAT’ın güvenlik duvarı olmadığını gerekçesiyle ayırt eder.
