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. Yine de internet çalışır. Bu hafta arka planda bu üç işi kimin yaptığı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 ya da yanlışsa nasıl bir belirti görürüz? Ö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 |
Bu haftanın konuları tabloya şöyle bağlanıyor: DHCP bu dört bilgiyi cihaza dağıtan hizmettir. Ağ geçidi üçüncü satırdaki cihaz, DNS dördüncü satırdaki hizmettir. NAT ise paket ağdan çıkarken üzerindeki gönderen adresini değiştirir. İlk üç vakada bu bilgilerden en az biri bozuk; dördüncü vaka NAT’ı anlatıyor.
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 bu davranışa APIPA der. Davranış yalnız Windows’ta görülmez; genel adı IPv4 link-local adreslemedir.
Gateway ve DNS satırlarının boş olması da bunu doğrular: 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 adresi dört adımda dağıtır (Droms 1997). DORA adı bu adımların baş harflerinden gelir:
İ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 paketiyle yalnızca IP adresi gelmez: adres, prefix, ağ geçidi ve DNS sunucusu birlikte 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 göre ilk iş, DHCP’den yapılandırmayı yeniden istemek:
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ıya ping atılabilmesi, yerel ağın kendi içinde çalıştığını 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 paket göndermek için de cihazın önce 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. Oysa dışarı çıkmanın tek yolu da o adres. Cihaz bu yüzden çıkmaza girer. 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 paket göndermek için IP yetmez; çerçeveyi taşımak için MAC adresi gerekir. ARP (Address Resolution Protocol), bir IP adresinin hangi MAC adresine ait olduğunu bulur. Cihazın öğrendiği eşlemeleri arp -a gösterir:
> 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çidinin yanlış yerde olduğunu ya da ulaşılamadığını kanıtlar.
Yerel yazıcı çalışıyor, ağ geçidi yanıtlamıyor. Cihaz daha ağ geçidine bile ulaşamıyor; paket ISP’ye hiç varmadığı için sorunu orada aramanın anlamı yok. Kanıtların hepsi 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. Bozuk olan tek şey isimden IP’ye çeviri.
Bu, DNS’in ayrı bir hizmet olduğunu gösteren en açık 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, bir ismin hangi IP adresine karşılık geldiğini bulan hizmettir. Cihazın hangi DNS sunucusunu kullanacağını da (Vaka 1’de gördüğümüz gibi) DHCP dağıtır. Bu yüzden bu belirtinin iki yaygın nedeni vardır: DHCP yanlış bir DNS sunucusu dağıtmıştır ya da dağıtılan DNS sunucusu şu anda yanıt vermiyordur.
Sorunun nedeni, cihazın yerel önbelleğinde kalmış eski ya da hatalı bir kayıt da olabilir. Önbelleği temizlemek için:
ipconfig /flushdnsnslookup example.com sonucunu ezberleme. 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 dönen sayı değil, çıktının ne anlama geldiği sorulur.
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ız yerel ağların içinde kullanılır. Bu yüzden aynı adres binlerce evde aynı anda 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. Cevap döndüğünde de hangi iç cihaza ait olduğunu hatırlar ve adresi 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 buna engel olmaz. Trafiği kurallara göre inceleyip engellemek güvenlik duvarının işidir (13. hafta).
9.6 Ekranda ne gördük
Derste aşağıdaki komutlar sırayla canlı çalıştırılır; derse gelemeyenler için aynı çıktılar burada. Komutları ezberlemen gerekmez; dört bilginin çıktıda nerede göründüğünü tanıman yeter.
> 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 adres ve prefix ip addr, gateway ip route ile görülür. DNS sunucusu bu iki komutun çıktısında yoktur; onu resolvectl status gösterir. ip route çıktısındaki iki satır, Vaka 2’deki kararı doğrudan 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 biri eksik olduğunda hangi belirtinin çıkacağını 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’e bakarak hedefin kendi ağında olup olmadığına karar verir ve cihazın subnetinde olmayan ağ geçidini fark eder.
- ARP’ın bir IP adresinin MAC adresini bulduğunu açıklar 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 neden güvenlik duvarı sayılmadığını açıklar.
