1. Anasayfa
  2. Ağ-Network

IP Adreslemeye Genel Bir Bakış


0
Internet üzerinde bilgisayarlar nasıl adreslenirler ve paketler yollarını nasıl bulurlar. Bu soru bilgisayar ağları ile uğraşan herkesin bir süre kafasını kurcalamış bir sorudur.

Bu soruya yanıt bulabilmek için internet'in temel protokolü olan TCP/IP'nin yapısını bir miktar bilmek gerekmektedir.
TCP/IP protokolünde tüm bilgisayarlar 32 bitlik "özgün" bir IP numarasına sahip olacak şekide adreslenirler (buradan çıkarılabilecek teorik bir sonuç ise internete aynı anda bağlı olabilecek bilgisayar sayısının en fazla 232 =  4,294,967,296 olabileceğidir) Bunu bir örnekle ele alırsak, internet üzerinde   3,559,735,316 sayısı ile adreslenmiş bir bilgisayar düşünelim. Bu sayının heksadesimal karşılığının D42D4014 olduğunu kolaylıkla hesaplayabiliriz. Bu şekilde bir gösterimin hemen hiç kimseye birşey ifade etmeyeceği sanırım oldukça açık bir şekilde görülmektedir. Bu yüzden şu şekilde bir yol izlenir, bu 32 bitlik adres 8 bitlik adresler halinde 4'e ayrılıp (D4 2D 40 14 şeklinde), daha alışıldık bir sayı sistemiyle çalışabilmek için desimale çevrilirler (0xD4 = 212, 0x2D = 45, 0x40 = 64 ve 0x14=20). Bu gösterim son olarak aralara konan bir nokta ile birleştirilir ve sonuç olarak IP numarası olarak tanımlanan notasyona ulaşılır, yani internet üzerinde 3,559,735,316  sayısı ile adreslenmiş bilgisayar 212.45.64.20 IP nolu bilgisayardır. Benzer bir yaklaşımı tersten izleyecek olursak A.B.C.D IP nosuna sahip olduğu bilinen bir bigisayarın gerçek adresi, A * 224 + B * 216 + C * 28 + D şekline hesaplanır.
Örneğimizden yola çıkarsak 212.45.64.20 için gerçek adres 212 * 224 + 45 * 216 + 64 * 28 + 20 =   3,559,735,316 'dır.


IP numarasının bu şekildeki gösterilimi aslında internet trafiğinin yönünün nasıl bulunduğu konusunda hiçbirşey ifade etmez elbette, bir yığın halinde bulunan 4 milyarın üzerindeki adresin bir kısım gruplara ayrılması zorunludur. Trafiğin yönünün belirlenmesi ancak paketlerin belli IP gruplarından gelmesi ve belli gruplara yönelmesi ile mümkün olabilecektir. Bu durumda her IP paketi, kendi numarasının bağlı olduğu gruplar için tanımlanmış kurallara göre hareket eder. Yapılan gruplama işlemine ise subnetting adı verilir. Bu işlem sırasında IP adresi ait olduğu grubu ve bu grubun üyeleri arasında kaçıncı sırada olduğunu belirtmek üzere iki kısma ayrılır. İlk kısma network numarası, ikinci kısma ise uç adresi adı verilir ve işlem şu şekilde gerçekleşir.
 Tüm internet IP bloğunu 255 kısma ayırmayı istediğimizi düşünelim,  bu gruplama sonucunda ortaya çıkacak IP numaralarının 1.x.y.z, 2.x.y.z, ……,255.x.y.z şeklinde olacağı kolay bir akıl yürütme ile görülebilmektedir. Bu tanımlamada elde edilen IP numaralarının oluşturduğu blokların her birine subnet veya network adı verilmektedir ve 1.0.0.0 networkü, 2.0.0.0 networkü vs şeklinde telaffuz edilmektedir. Bu durumda örneğin 2 ile başlayan bütün IP numaralarının (2.x.y.z) 2.0.0.0 networkünün parçası olduğu kolayca anlaşılabilir. Dikkati çekmesi gereken bir nokta elde edilen blokların hala devasa boyularda olduklarıdır (224 = 16,777,216) ve bu bloklar kendi içlerinde daha fazla bölünmeye tabi tutulabilirler, örneğin 1.0.0.0 networkünü 1.0.0.0, 1.1.0.0, ….. 1.254.0.0, 1.255.0.0 şeklinde 255 ayrı networke ayırmak da mümkündür, aynı şekilde 1.1.0.0 networkünü de 1.1.1.0, 1.1.2.0,…..1.1.255.0 vs şeklinde daha da küçültmek mümkündür, bu işleme her blokta 2 hatta 1 IP kalıncaya kadar devam edilebilir. Burada önemli nokta bu blok büyüklerinin ihtiyaca göre belirlenmesi gereği  ve her bloğun bir üst bloğun alt kümesi olmasıdır. Daha detaylı açıklarsak, 1.0.0.0 networkünden bahsediyor iseniz otomatik olarak 1.1.0.0 networkünden ve 1.10.5.0 networkünden de bahsediyorsunuz demektir.
 IP numarasını network numarası ve uç adresi olarak ikiye böldüğümüzü yukarıda söylemiştik, bunları örneklerle açıklaylım, test amacıyla seçtiğimiz 212.45.64.20 IP numarasından yola çıkarsak, bu IP'nin hem 212.0.0.0 hem 212.45.0.0 hem de 212.45.64.0 networklerinde yer alan bir IP olduğu söylenebilir. Burada kritik nokta netwok numarası olarak hangisinin alınacağı (212, 212.45, 212.45.64) daha da önemlisi buna nasıl karar verileceğidir. Açıkça görülen odur ki  bunu bilmek yalnızca IP numarası ile mümkün olmamaktadır. Bu nedenle IP numarasının hangi bitlerinin network numarasınını temsil ettiğini, hangilerinin ise uç adresini oluşturduğunu  tanımlayacak başka bir bilgiye ihtiyaç duyulmaktadır. Buna "subnet mask" adı verilmektedir. Çoğu zaman kullanıcıların kafasını karıştırmakla beraber aslında anlamı ve kullanımı son derece açıktır.
 Subnet mask'ı daha sonra detaylı incelemek üzere kabaca tanımlarsak   network numarasının bulunduğu bit pozisyonlarında 1, kalan pozisyonlarda 0 bulunduran bir sayı olarak tarif edebiliriz.
 Örneğin 212.45.64.20 IP'sini alt bölümlemeye gitmeden 212.0.0.0 bloğunun bir parçası olarak görmek istiyorsak, network adresini yalnızca ilk 8 bitin oluşturduğunu söylüyoruz demektir. Bu durumda subnet maskımız 8 tane 1 ve 24 tane 0 'dan oluşacaktır (toplam 32'yı verecek şekilde).
 Subnet mask (binary)   : 11111111 00000000 000000000 0000000
 Subnet mask (desimal) :        255            0             0          0
 Subnet mask              : 255.0.0.0
Ya da 212.45.0.0 bloğunun bir parçası olmasını istiyorsak, bu kez network adresini ilk 16 biti ile tanımlamamız gerekecektir, bu durumda subnet mask 16 tane 1 ve 16 tane 0'dan oluşacaktır.
 Subnet mask (binary)   : 11111111 11111111 000000000 0000000
 Subnet mask (desimal) :       255          255             0       ;    0
 Subnet mask              : 255.255.0.0
Son olarak, 212.45.64.0 bloğu için aynı hesaplamayı yaparsak, network adresi ilk 24 bitte bulunacaktır. Subnet mask ise 24 tane 1 ve 8 tane 0'dan oluşacaktır.
 Subnet mask (binary)   : 11111111 11111111 11111111 0000000
 Subnet mask (desimal) :        255         255        255          0
 Subnet mask              : 255.255.255.0
 Burada subnet mask'ı belitrmek için kullanılan farkli bir yöntemden bahsetmek gerekir, bu da "/" ayracı ile IP numarasına ya da network numarasına eklenen bir sayıdır (212.45.64.20/25 veya 212.45.64.0/19 gibi). Burada verilen sayı subnet maskta ilk kaç bitin 1 olduğunu gösterir. Örneğin /8, 8 tane 1, 24 tane 0 anlatır, bu da 255.0.0.0 netmaskının eşdeğeridir, yine benzer şekilde /16, 16 tane 1, 16 tane sıfırı tanımladığı için 255.255.0.0'ın, /24 de 255.255.255.0'ın eşdeğer gösterimleridir.
 Daha çok kullanılan subnetler için konulmuş bir takım isimler vardır, burada bunlardan da bahset gerekir. İlgili isimler, kısa bir tanımlama ile Tablo 1'de verilmiştir.
Tablo1:
NetMask         /" lü gösterim   Ip Adedi             Isim
255.0.0.0           /8                    16,777,216       &n bsp;  A Sınıfı (A Class)
255.255.0.0       /16                  65,536             &nb sp;   B Sınıfı (B Class)
255.255.255.0   /24                  256                 &nbs p;    C Sınıfı (C Class)
 * Kullanılabilen IP adedi burada verilenden iki eksik olacaktır (bir broadcast ve bir network numarası için)
 Kullanıcılar arasında sıkça karşılaşılan 32'lik bir C class veya 128'lik bir C class gibi kullanımlar tamamen yanlıştır. Çünkü bir "C class" tanımı gereği 256'lık bir bloktur.
 Subnetlerin buraya kadar olan kısmı hemen herkesçe bilinmesine rağmen genellikle /24'den küçük bölümlemeler sorun yaratmaktadır. Bilgisayar ağları ile uğraşırken çoğu zaman 32'lik, 64'lik veya 128'lik subnetlere ihtiyaç duyulmaktadır. Bunların nasıl yapılacağını doğrudan örneklerle açıklamanın daha faydalı olacağını düşünüyorum.
 Elimizde bulunan 212.45.64.0/24 'lük bir bloğu 8 tane 32'lik subnete ayımak için neler yapılması gerektiğine bakalım. Öncelikle 32'lik bir subnet için maskın ne olduğunu hesaplamak gerekmektedir.32, 2'nin beşinci kuvvetidir, yani 0-31 arası sayılar binary sistemde 5 bitle yazılabilirler. Öyleyse subnet maskta sağdan 5 biti uç adresi için ayırmamız gerekmektedir, geriye kalan 27 bit ise network kısmını oluşturacaktır. Bu durumda 32'lik subnet için masklar,
Subnet mask (binary)   : 11111111 11111111 11111111 11100000
 Subnet mask (desimal) :          255           255           255           224
 Subnet mask       : 255.255.255.224
olacaktır. Her subnet için ayrılan 32 IP için sırasıyla network adresleri 212.45.64.0/27, 212.45.64.32/27, …….212.45.224/27 olacaktır. Ancak burada, bir adet /24'te yalnızca 0 ve 255 olarak iki IP kullanılamazken (biri network numarası diğeri broadcast) 32'lik subnetlere ayrıldığında her biri için için 2, toplam 2*8=16 IP numarasının kullanılamadığına dikkat edilmelidir.
 Benzer bir şekilde 212.45.64.0/24 'lük bloğumu 4 tane 64'lük subnete ayıralım. 64, 2'nin altıncı kuvvetidir, yani 0..63 arası sayılar 6 bitle yazılabilirler, öyleyse, 64'lük bloklar için masklar,
Subnet mask (binary)   : 11111111 11111111 11111111 11000000
 Subnet mask (desimal) :          255           255           255           192
 Subnet mask       : 255.255.255.192
şeklinde olacaktır. Sırasıyla subnetler de 212.45.64.0/26, 212.45.64.64/26, …… , 212.45.64.192/26 olacaktır. Burada kaybedilen IP sayısı 4*2=8 olarak hesaplanabilir.
 Son olarak aynı bloğu 128'lik iki bölüme ayırırsak, masklar
Subnet mask (binary)   : 11111111 11111111 11111111 10000000
 Subnet mask (desimal) :          255           255           255           128
 Subnet mask       : 255.255.255.128
Şeklinde olacaktır. Sırasıyla subnetler 212.45.64.0/25 ve 212.45.64.128/25 olacaktır. Kaybedilen IP sayısı ise 2*2=4'tür.
 Genel kullanımda bir blok her zaman eşit büyüklükteki bloklara bölünmez. Elinizdeki bir C sınıfı bloğu 1 128'lik, 1 64'lük ve 2 32'lik bloğa bölmek isteyebilirsiniz. Detaylara girmeden incelersek böyle bir bölümleme 212.45.64.0/25, 212.45.64.128/26,212.45.64.192/27, 212.45.64.224/27 şeklinde yapılabilir.
 Burada en çok dikkat edilmesi gereken nokta, istediğiniz bir bloğu oluşturmak için büyük bloğun yerini istediğiniz gibi seçemeyeceğinizdir. Örneğin 128'lik bir bloğu 212.45.64.64'ten başlatıp 212.45.64.192'de bitiremezsiniz, benzer şekilde 212.45.64.32'de başlayıp 212.45.64.96'da biten bir /26 blok da tanımlayamazsınız. Başlangıç adresleri kesinlikle bloktaki_IP_sayısı * n (n tamsayı) formülü ile elde edilebilecek sayılar olmalıdır. Örneğin 64'lük bir blok ancak 0,64,128,192 adreslerinden başlayabilir, benzer şekilde 128'lik bir blok da ancak 0 veya 128 adreslerinden başlayabilir.
 Son olarak verilen bir IP numarası / subnet mask çifti ile bu IP'nin ait olduğu bloğun nasıl bulunabileceğini açıklayarak bu bölümü bitiriyorum.
 Bir IP'nin ait olduğu network, IP numarasının binary hali ile subnet maskın binary hali arasında yapılacak birebir "VE" işlemi (bitwise AND) ile bulunur, örneklemek için 212.45.64.20/25 IP numarasının ait olduğu networkü bulalım.
 /25, 25 adet 1 ve 7 adet 0'dan oluşan bir netmask anlamına gelmektedir (255.255.255.128), binary ortamda ifade edecek olursak
 Netmask : 11111111 11111111 11111111 10000000
IP numarasını binary olarak ifade edersek ise
 IP     : 11010100 00101101 01000000 00010100
Değelerini elde ederiz.
 Birebir "VE" işlemi ile
     11010100 00101101 01000000 00010100
VE 11111111 11111111 11111111 10000000
———– ———————–
     11010100 00101101 01000000 00000000
            212          45          64        &nbs p;   0
Bu sonuç  212.45.64.20/25 IP numarasının 212.45.64.0/25 networkünde bulunduğunu göstermektedir.
 Aynı işlem 212.45.64.228/27 IP numarası için tekrarlanırsa
     11010100 00101101 01000000 11100100
VE 11111111 11111111 11111111 11000000
——— ————————
     11010100 00101101 01000000 11000000
            212          45          64         224
elde edilir, bu da 212.45.64.228/27 IP numarasının 212.45.64.224/27 networkünde yeraldığını gösterir.

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    ba_ar_l_
    Başarılı
  • 0
    gayet_yi
    Gayet İyi
  • 0
    te_ekk_rler
    Teşekkürler
  • 0
    anlamad_m
    Anlamadım
  • 0
    yetersiz
    Yetersiz
İlginizi Çekebilir
Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Yorum
Inline Feedbacks
View all comments