7 IP adresleme: IPv4 ve IPv6
Geçen hafta portun, bir cihazdaki hangi uygulamaya gidileceğini seçtiğini gördük. Cihazın kendisini ise IP adresi seçer. Bu hafta IP adresini okumayı öğreniyoruz: adresin hangi kısmı ağı, hangi kısmı cihazı gösterir, hangi adresler internette geçerlidir? Ağda IP adresi taşıyan her cihaza (bilgisayar, telefon, yazıcı) host denir. Bu bölümde “cihaz” yerine bu terimi de kullanacağız.
Sınavda sorulur: IPv4’ün 32 bit yapısı ve octet gösterimi; prefix’in ağ ve host ayrımını belirlemesi; /24–/28 ile maske eşlemesi; private ve public IPv4; 169.254.0.0/16 link-local (Windows’ta APIPA); 0.0.0.0/0 varsayılan rota; IPv6’da 128 bit, hexadecimal yazım, ::1, fe80::/10 ve dual stack.
Sınav dışı (bilgi amaçlı): 255.255.255.255 limited broadcast ve 224.0.0.0/4 IPv4 multicast bloğu, IPv6 kısaltma alıştırmaları, IPv6 prefix hesabı, ayrıntılı IPv6 adres türleri, SLAAC/DHCPv6 yapılandırması, route print çıktısının satırları.
7.1 Vaka 1: İlk üç sayı aynı, ağ farklı
A: 192.168.10.70/26
B: 192.168.10.130/26
İki bilgisayar aynı switch’e bağlı, ağda router yok. Teknisyen ilk üç sayı aynı olduğu için ikisini aynı yerel ağda sanıyor. A’dan B’ye ping başarısız oluyor.
7.1.1 Kanıt ne söylüyor
IPv4 adresi 32 bittir (bit: 0 ya da 1 olabilen en küçük veri birimi, 1. hafta). Kolay okunsun diye 8 bitlik dört parçaya ayrılır. Her parçaya octet denir. Octet’ler ondalık sayıyla yazılır ve aralarına nokta konur. Aynı adresin binary (yalnız 0 ve 1 ile, ikili sayı) yazımı şöyledir:
192 168 10 70
11000000 10101000 00001010 01000110
Bir octet 8 bittir, 8 bitle de 00000000 ile 11111111 arasındaki, yani 0 ile 255 arasındaki değerler yazılabilir. Bu yüzden 192.168.1.300 diye bir adres olamaz. Bu hafta adresleri sürekli binary’ye çevirmeyeceğiz. Binary’ye yalnız prefix’in neyi gösterdiğini anlamak için bakıyoruz.
Adresin sonundaki /26’ya prefix denir. Prefix, adresin ilk 26 bitinin ağ bölümü olduğunu söyler. Ağ bölümü aynı olan host’lar aynı yerel ağdadır. Geriye kalan 6 bit host bölümüdür ve ağdaki host’ları birbirinden ayırır. 6 bitle 2⁶ = 64 farklı değer yazılabildiği için son octet 64’lük bloklara bölünür:
0–63 ← ilk ağ
64–127 ← A burada
128–191 ← B burada
192–255
A ve B farklı ağlardadır. Aralarında iletişim kurmak için bir router gerekir.
Her host paket göndermeden önce kendine sorar:
Hedef benim ağımın (prefix'imin) içinde mi?
├─ Evet → doğrudan hedefe gönder
└─ Hayır → varsayılan ağ geçidine (router'a) gönder
A, B’yi kendi ağının dışında görür ve paketi ağ geçidine göndermek ister. Ağda router olmadığı için paket hiçbir yere gidemez. Bu karar, aşağıda göreceğimiz yönlendirme tablosunun en sade hâlidir.
192.168.1.70/24 ile 192.168.1.70/26 aynı adresi yazıyor gibi görünür ama ağ sınırları farklıdır. Bir host’un “bu hedef benim ağımda mı?” kararı prefix’e bağlıdır. Prefix’e bakmadan “ilk üç sayı aynı, demek ki aynı ağdalar” demek, Vaka 1’deki teknisyenin yaptığı hatadır.
7.1.2 Prefix ile maske aynı bilginin iki yazımıdır
Ağın sınırı alt ağ maskesi (subnet mask) ile de yazılabilir. ipconfig çıktısındaki Subnet Mask satırında gördüğün değer budur:
| Prefix | Subnet mask |
|---|---|
/24 |
255.255.255.0 |
/25 |
255.255.255.128 |
/26 |
255.255.255.192 |
/27 |
255.255.255.224 |
/28 |
255.255.255.240 |
Bu tabloyu gelecek hafta sürekli kullanacaksın. Şimdilik /26 ile 255.255.255.192 değerinin aynı sınırı gösterdiğini bilmen yeterli.
7.2 Vaka 2: 169.254 ile başlayan adres
Okuldaki dizüstü Wi-Fi’a bağlı görünüyor, ama hiçbir site açılmıyor. ipconfig şunu gösteriyor:
Wireless LAN adapter Wi-Fi:
Link-local IPv6 Address . . . . . : fe80::4c1d:9a2e:b7f3:61c0%12
Autoconfiguration IPv4 Address. . : 169.254.73.12
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :
7.2.1 Kanıt ne söylüyor
Satırın adı ipucunu veriyor: Autoconfiguration, yani kendi kendine yapılandırma. Ağa bağlanan cihaz adresini normalde DHCP’den (ağdaki cihazlara adres dağıtan hizmet, 9. hafta) ister. Cevap gelmezse kendine 169.254.0.0/16 bloğundan bir adres seçer. Bu bloğa IPv4 link-local denir. Link-local adres yalnız cihazın bağlı olduğu yerel bağlantıda geçerlidir. Router bu adresli paketleri başka ağa geçirmez. Default Gateway satırının boş olması da aynı şeyi söylüyor: DHCP’den ağ geçidi bilgisi gelmedi.
Windows bu davranışa APIPA (Automatic Private IP Addressing) der. Başka işletim sistemleri de aynı şeyi yapar, yalnız “APIPA” adını kullanmaz. Adındaki “Private” sözcüğüne aldanma: 169.254 adresleri Vaka 3’teki özel bloklardan biri değildir.
Bu adresi gördüğünde aklına ilk şu gelsin: “DHCP’den adres alınamadı.” 9. haftada bu vakayı ayrıntısıyla çözeceğiz.
7.3 Vaka 3: Aynı adres binlerce evde
Senin evin : 192.168.1.34
Arkadaşının evi : 192.168.1.34
İki evde aynı adres var, ama ikisi de internete çıkabiliyor. Neden çakışma yok?
7.3.1 Kanıt ne söylüyor
192.168.1.34 bir özel (private) adrestir. Özel adresler internette yönlendirilmez, yalnız yerel ağların içinde kullanılır. Her ev aynı özel adresleri kendi ağında yeniden kullanabilir. Üç özel blok vardır:
| Blok | CIDR yazımı | Aralık |
|---|---|---|
| 10’lu | 10.0.0.0/8 |
10.0.0.0–10.255.255.255 |
| 172’li | 172.16.0.0/12 |
172.16.0.0–172.31.255.255 |
| 192.168’li | 192.168.0.0/16 |
192.168.0.0–192.168.255.255 |
CIDR yazımı, bir bloğu başlangıç adresi ve prefix’iyle yazmaktır (10.0.0.0/8 gibi). 172’li bloğun sınırı sık karıştırılır: 172.16–172.31 arası özeldir, 172.32.x.x değildir.
Public IPv4 adresleri ise internette yönlendirilir ve her biri dünyada tek bir yere verilir. “IP adresim ne?” sitesinin gösterdiği 203.0.113.5 böyle bir adrestir: evdeki router’ın internete bakan adresi. Evdeki bütün cihazlar internete bu tek adresle çıkar. Bunu sağlayan NAT’ı (adres çevirisini) 9. haftada göreceğiz. Okulda ya da mobil veride aynı site çoğu zaman kurumun ya da operatörün adresini gösterir.
Public adres “güvensiz”, private adres “güvenli” demek değildir. Bu ayrım yalnız adresin internette yönlendirilip yönlendirilmediğiyle ilgilidir. Üç özel bloğun dışındaki her adres de public değildir: 169.254.0.0/16 link-local ve 127.0.0.0/8 loopback (Vaka 4) gibi özel amaçlı bloklar da vardır.
7.4 Vaka 4: fe80:: ile başlayan uzun adres
Arkadaşın ipconfig çıktısında iki noktalı, uzun iki adres görüyor. Birinin fe80:: ile başladığını gösterip “Bu bir hata mı?” diye soruyor.
7.4.1 Kanıt ne söylüyor
Uzun adresler IPv6 adresleridir. IPv6’nın geliştirilmesinin başlıca nedeni IPv4 adreslerinin tükenmesidir (Deering ve Hinden 2017). IPv6 adresi 128 bittir ve hexadecimal yazılır (16 tabanlı sayı: 0–9 ve a–f, 3. haftadaki MAC adresi gibi). 16 bitlik sekiz grup, aralarına iki nokta konarak yazılır:
2001:db8:1234:5678:abcd:ef01:2345:6789
2001:db8 ile başlayan adresler kitaplarda ve belgelerde örnek için ayrılmıştır. Bu bölümdeki çıktılarda da gerçek adreslerin yerine onları kullandık. Senin bilgisayarında internette geçerli olan IPv6 adresi (global IPv6 adresi) çoğu zaman 2 ile başlar, 2a02: gibi.
Bu derste IPv6 ile hesap yapmayacağız. IPv6 adresini görünce tanıman ve üç kavramı açıklayabilmen beklenir:
| Değer | Anlamı | IPv4’teki karşılığı |
|---|---|---|
::1 |
IPv6 loopback | 127.0.0.1 |
fe80::/10 |
IPv6 link-local blok | 169.254.0.0/16 |
| Dual stack | IPv4 ve IPv6’yı aynı arayüzde birlikte kullanmak | Yok |
Loopback, cihazın kendine gönderdiği trafiğin adresidir. Bu adrese giden paket ağa hiç çıkmaz. ping ::1 ya da ping 127.0.0.1, cihazın kendi ağ yazılımının çalıştığını gösterir.
Arkadaşının sorusunun cevabı tablodaki ikinci satırda. fe80:: adresi bir hata değildir, IPv6 açık olan her arayüzde bulunur. 169.254 ile önemli bir farkı var: 169.254 IPv4’te bir arıza belirtisidir (Vaka 2), fe80:: ise her zaman oradadır. Sonundaki %12, adresin hangi arayüze ait olduğunu gösteren numaradır.
Her gruptaki baştaki sıfırlar atılabilir, ardışık sıfır grupları :: ile kısaltılabilir:
2001:0db8:0000:0000:0000:0000:0000:0001
→ 2001:db8::1
Bir adreste :: yalnız bir kez kullanılır, yoksa kaç grubun atlandığı anlaşılmaz. Kısaltma alıştırmaları sınavda sorulmaz.
7.5 Varsayılan rota ve öteki özel IPv4 adresleri
7.5.1 0.0.0.0/0: varsayılan rota
Vaka 1’deki “hedef benim ağımda mı?” kararını her host bir yönlendirme tablosuna bakarak verir. Bu tablo, hangi hedefe hangi yoldan gidileceğini söyleyen satırlardan oluşur. Her satıra rota denir. Windows’ta route print -4 komutu tabloyu gösterir:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.34 35
192.168.1.0 255.255.255.0 On-link 192.168.1.34 291
İkinci satır kendi ağını gösterir: 192.168.1.0/24 içindeki hedeflere paket doğrudan (On-link) gider. İlk satırdaki 0.0.0.0 hedefi ve 0.0.0.0 maskesi birlikte 0.0.0.0/0 demektir. Bu prefix bütün IPv4 hedeflerini kapsar ve varsayılan rota adını alır. Anlamı: “daha özel bir rota bulamazsan paketi 192.168.1.1’e gönder.” ipconfig’deki Default Gateway satırı bu rotanın gittiği adrestir. 0.0.0.0/0 bir host’a adres olarak verilmez.
7.6 Hepsi bir arada: bir bilgisayarın adresleri
Evdeki bir dizüstünde ipconfig çalıştırınca Wi-Fi kartının altında şunlar çıkıyor:
Wireless LAN adapter Wi-Fi:
IPv6 Address. . . . . . . . . . . : 2001:db8:4a1:8f00::1b3
Link-local IPv6 Address . . . . . : fe80::4c1d:9a2e:b7f3:61c0%12
IPv4 Address. . . . . . . . . . . : 192.168.1.34
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
“IP adresim ne?” diye arattığın bir site ise 203.0.113.5 gösteriyor. Arkadaşın kendi evinde aynı komutu çalıştırınca o da 192.168.1.34 görüyor. Okuldaki dizüstünde 169.254.73.12 yazıyor ve hiçbir site açılmıyor. Bu adreslerin her biri bölümdeki bir vakaya karşılık geliyor:
| Adres | Ne anlatıyor | Nerede gördük |
|---|---|---|
192.168.1.34 |
Özel (private) adres, yalnız yerel ağda geçerli | Vaka 3 |
Arkadaşta da 192.168.1.34 |
Özel adresler internette yönlendirilmez, her ev aynı aralığı kendi ağında kullanır, çakışma olmaz | Vaka 3 |
203.0.113.5 |
Router’ın public adresi, evdeki bütün cihazlar dışarıya bununla çıkar | Vaka 3 |
255.255.255.0 |
Maske: adresin ne kadarının ağı gösterdiği | Vaka 1 |
169.254.73.12 |
DHCP’den adres alınamadı, cihaz kendine link-local adres seçti | Vaka 2 |
2001:db8:... ve fe80::... |
IPv6 adresleri; fe80:: her arayüzde bulunur, arıza değildir |
Vaka 4 |
Bir bilgisayarın tek bir “IP adresi” yoktur, her adres başka bir kapsamda geçerlidir. Bir form senden IP adresini isterse önce adresin ne için istendiğine bak. Aynı ağdaki biri sana ulaşacaksa 192.168.1.34, internetteki bir hizmet seni tanıyacaksa sitenin gösterdiği public adres gerekir.
7.7 Ekranda ne gördük
Derste sınıf bilgisayarında iki komut çalıştırılır. Derse gelemeyenler için aynı çıktı burada. Terminali nasıl açacağın 1. haftanın “Terminal, komut ve iki ağ komutu” kısmında yazıyor. Türkçe Windows’ta satır adları Türkçedir: Subnet Mask yerine “Alt Ağ Maskesi”, Default Gateway yerine “Varsayılan Ağ Geçidi” yazar.
> ipconfig
Wireless LAN adapter Wi-Fi:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . : 2001:db8:20::45
Temporary IPv6 Address. . . . . . : 2001:db8:20::8c3f:1e2a:9b40:d771
Link-local IPv6 Address . . . . . : fe80::a1b2:c3d4:e5f6:789a%12
IPv4 Address. . . . . . . . . . . : 192.168.20.45
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : fe80::1%12
192.168.20.1
> ping ::1
Pinging ::1 with 32 bytes of data:
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Aynı kartta hem IPv4 hem IPv6 adresi var: bu dual stack’tir. Subnet Mask 255.255.255.0, yani /24: ağın 192.168.20.0–192.168.20.255 arası. Default Gateway (192.168.20.1) bu aralığın içinde, olması gereken de bu. Ağ geçidinin bir de IPv6 adresi var, o da fe80:: ile başlıyor. Temporary IPv6 Address, Windows’un gizlilik için ara ara değiştirdiği ikinci bir IPv6 adresidir. ping ::1 loopback’e gider: cevap gelmesi bilgisayarın kendi IPv6 yazılımının çalıştığını gösterir.
7.8 Gelecek haftaya köprü
Gelecek hafta prefix ile gerçek hesaplar yapacağız. Haftaya şu soruyla başlayacağız:
192.168.1.70/26hangi ağdadır, broadcast adresi nedir, kullanılabilir host aralığı hangisidir?
Bu soruyu çözmek için bu haftadan şu yeter: prefix ağın sınırını belirler.
7.10 Tek sayfa özet
- IPv4 32 bittir, dört octetle yazılır, her octet
0–255. - Prefix ağın sınırını belirler. Aynı adres farklı prefix’lerle farklı ağlara düşer.
- Host paket göndermeden önce sorar: hedef benim ağımın içinde mi? İçindeyse doğrudan, değilse ağ geçidine.
/24=255.255.255.0,/25=.128,/26=.192,/27=.224,/28=.240.- Özel bloklar:
10/8,172.16/12,192.168/16. Dikkat:172.32.x.xözel değildir. 169.254.0.0/16: DHCP’den adres alınamadı, cihaz kendine link-local adres seçti (APIPA).0.0.0.0/0varsayılan rota: daha özel bir rota yoksa paket ağ geçidine gider.- IPv6: 128 bit, hexadecimal,
::1loopback,fe80::/10link-local (arıza değildir), dual stack ikisinin birlikte kullanımı.
7.11 Bu bölümün kazanımları
Bu bölümü bitiren öğrenci:
- IPv4’ün 32 bit yapısını ve octet aralığını açıklar.
- Prefix’e bakarak adresin ağ ve host bölümlerini ayırt eder.
- Prefix ile alt ağ maskesini eşleştirir.
- Private ve public IPv4 adreslerini ayırt eder.
169.254.0.0/16link-local adresinin ne anlama geldiğini açıklar.0.0.0.0/0varsayılan rotasını tanır ve yönlendirme tablosunda paketin nereye gideceğini bulur.- IPv6 adresini tanır ve
::1,fe80::/10ile dual stack’in anlamını açıklar.
