IPv6
128 Bit uzunluğunda bir adresten bahsediyoruz. 32 Bit uzunluğunda 4 bölümden meydana gelen IPv4 yetmedi (120.180.190.245 gibi) şimdi 8 parçadan meydana gelen IPv6 ile ağ tanımlamalarını konuşacağız.
XXXX:XXXX:XXXX:XXXX:YYYY:YYYY:YYYY:YYYY
------------------- -------------------
Network Portion Interface Identifier
64 bit 64 bit
İlk 64 bit (X ile gösterilen) ağ bitleridir, kalanlar (Y ile gösterilen) ana bilgisayarın arabirim tanımlayıcısıdır (ana bilgisayar bitleri). Ağ kısmı (network portion), bir ISP veya kayıtlayıcı (ARIN veya RIPE) tarafından sağlanır.
IANA -> RIRs -> ISP -> Koç Holding -> Mühendisin Bilgisayarı
IANA (Internet Assigned Numbers Authority) bölgelerinde kullanacakları IP adreslerini RIRs’e atar (Regional Internet Registrars). RIRs ise aldığı IP bloğunu ISP firmalarına atar. ISP ise müşterilerine “network portion” olarak adres tanımlaması yapar *.
Çok noktaya yayın özellikli (multi-cast) bağlantılarda ve noktadan noktaya bağlantılarda (point-to-point), her yönlendirici (router) periyodik olarak yayın grubuna “kullanılabilirliğini” bildiren bir yönlendirici reklam paketi (Router Advertisement) gönderir. Yönlendiriciler, ana bilgisayarların birkaç dakika içinde varlıklarını öğrenmeleri için yeterince sık yönlendirici reklamları gönderir. Yönlendirici reklamları, bir ana bilgisayarın yönlendirici ile aynı bağlantıda (bağlantıda) olup olmadığını belirlemek için kullanılan bir alt ağ önekleri listesi içerir (2001:D8:AB:5::/64 gibi). Bir ana bilgisayar, tüm yönlendiricilerden yönlendirici reklamları alır ve varsayılan yönlendiricilerin bir listesini oluşturur.
127.0.0.1'in Loopback adresi olduğunu biliyoruz. Public ve Private ağ adresler; “internette (public) ve ev/iş ağında (private)” kullanabildiğimiz adreslerdir. IPv4 için özel ağ adresleri şunlardır:
Router Advertisemend mesajını alan ana bilgisayar bu mesaja kendi arayüz bilgisini ekleyerek router’a (yönlendiriciye) cevap olarak döner. Bu cevaba komşu reklam mesajı (Neighbor Advertisement) denir.
Bu iletişime SLAAC (Stateless Adress Auto-Configuration) diyoruz. DHCP ile bilindik IP adresi alma kısmı aynı şekilde v6 için de çalışıyor.
Router: -------2001:D8:AB:5::/64 ---------> BilgisyarWindows ana bilgisayar
Bilgisyar: ---- 2001:D8:AB:5:<keyfi 64 bit değer üretir> -> RouterLinux/Mac/Unix
Bilgisyar: ---- 2001:D8:AB:5:<EUI-64'e göre değer üretir> --> Router
Ağ kısmı “Modified EUI-64” ile şöyle oluşur:
- Ağ kartımızın MAC (Media Access Control) adresi 00–0C-29–0C-47-D5 olsun
- 7. bitinden itibaren tam ortasına FF-FE gelecek şekilde şu hale getiriyoruz: 00–0C-29-FF-FE-0C-47-D5 > 000C-29FF-FEOC-47D5 olarak yazılır.
- 48 Bit (12 bölüm x 4 bit) MAC adresi araya 16 bit (FF-FE = 4+4+4+4) gelince 64 bitlik ağ kısmı oluşuyor.
Sadece interface identifier kısmındaki 64 bit ile 2 üzeri 64 farklı IP adresi üretebiliyoruz. Her bir X ve Y, 4 bitlik bir onaltılık değeri (0,1,2..D,E,F) temsil eder.
2001:db8::/32
örnek bir IPv6 adresinin verildiği veya model ağ oluşturma senaryolarının açıklandığı her yerde kullanılmalıdır. İnternete açık bir IP adresi değildir. Aşağıdaki örnekte yer alan IPv4 ve IPv6 değerleri internete açık olmayan içeride kullanılabilecek örnek adres aralıklarıdır.
Çift yığınlı (dual stack) cihazlar, hem IPv4 hem de IPv6 paketlerini oluşturabilen ve anlayabilen ağ arabirimlerine sahip bir aygıttır. Yani bu cihazların öyle ethernet kartları vardır ki; hem 4. versiyon hem 6. versiyon IP adresleri alabilirler.
Çift yığınlı bir aygıt bir hedef bilgisayarın adını sorgularsa ve
- DNS ona bir IPv4 adresi (bir DNS A Kaydı) verirse, IPv4 paketleri gönderir.
- DNS bir IPv6 adresiyle (bir DNS AAAA Kaydı) yanıt verirse, IPv6 paketleri gönderir.
2 byte uzunluğunda onluk düzende 11 değerini ikilik düzende yazacak olsak 00000000 00001011 kullanacağız. Soldan sağa ilk 1 karakterine gelinceye kadarki 0 değerleri hiç işimize yaramayacak. Bu yüzden IPv6 adresinin 0 ile başlayan bölümlerini yok sayabiliriz.
8 bölümlü olacak ancak 6 bölüm var ve 2 adet iki nokta üst üste görünüyor. Kayıp 2 bölümün bu iki nokta üst üste arasında olduğunu düşünebiliriz.
Ancak adresimizde farklı yerlerde 0 değerleri yok sayabileceğimiz bölümler olsaydı çözümlememiz mümkün olmayacağı için 0 ları yazmamız gerekirdi. Aşağıda ayrıntılı görelim:
2001:0ABC:0000:1234:0000:0000:00C5:00F5
2001: ABC: :1234: : C5: F5 = 2001:ABC::1234::C5:F5
---- ---- ---- ---- ---- ---- ---- ---- ---- --- - --- - - --
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7
Kısaltılmış halinde 7 bölüm görülüyor ancak 1 bölüm hangi kısımda yok sayılıyor (3 mü 5 mi) bilemeyeceğimiz için bu şekilde kısaltma doğru olmayacak. Bu yüzden sadece 1 tane çift iki nokta üst üste kullanabiliriz.
fe80:0000:0000:0000:cabc:c800:00a7:08d5 Baştaki sıfırları kaldırın:fe80: 0: 0: 0:cabc:c800: a7: 8d5 2 veya daha fazla sıfır grubunu çift iki nokta üst üsteyle kısalt:fe80:: cabc:c800: a7: 8d5Sonuç fe80::cabc:c800:a7:8d5
Başka bir örnek:
2000:0bb0:0000:0000:0000:0000:00a0:0002Baştaki sıfırları kaldırın:
2000: bb0: 0: 0: 0: 0: a0: 22 veya daha fazla sıfır grubunu çift iki nokta üst üsteyle kısalt:2000:bb0::a0:2
Aralık Tanımları
Örneğin 2001:db8::/32, açıklanan aralığın 001000000000000100001101110111000 ikili basamaklara ayarlanmış ilk 32 bit’e sahip olduğu anlamına gelir.
2001:db8::/32 2 0 0 1: d b 8::/32
0010 0000 0000 0001:0000 1101 1011 1000 ^
---- ---- ---- ---- ---- ---- ---- ---- |
4 4 4 4 4 4 4 4 = 32 bit 2001:db8:abcd:8000::/50
---- --- ---- ---- ^
16 12 16 16 = 50 bit