İçeriğe geç
academia.sh

Ders 08 / 18

Alt Ağlara Bölme

Ağ maskesi aritmetiği, ağ ve yayın adreslerinin hesabı, bit ödünç alma ve örnek bloğun eşit alt ağlara bölünmesi.

İçindekiler

Önceki ders 192.168.10.0/24 bloğunun kurumun 182 düğümü için sayıca yeterli olduğunu, ancak bölümlerin tek bir yayın alanında toplanamayacağını gösterdi. Blok kesilmelidir.

Kesme işleminin adı **alt ağlara bölme (subnetting)**dir ve tek bir düzeneğe dayanır: düğüm bölümünden bit ödünç alıp ağ bölümüne eklemek. Bu dersin sorusu, bu ödünç almanın aritmetiğidir.

Ağ Maskesi

Ağ maskesi (network mask), adresin hangi bitlerinin ağ bölümüne ait olduğunu gösteren 32 bitlik bir örüntüdür: ağ bitleri 1, düğüm bitleri 0’dır. Maskede 1’ler her zaman soldadır ve kesintisizdir; 255.255.0.255 gibi bir örüntü geçerli bir maske değildir.

Önek uzunluğu ile maske aynı bilgiyi iki ayrı biçimde taşır:

Önek Maske Düğüm biti Blok başına adres
/24 255.255.255.0 8 256
/25 255.255.255.128 7 128
/26 255.255.255.192 6 64
/27 255.255.255.224 5 32
/28 255.255.255.240 4 16
/29 255.255.255.248 3 8
/30 255.255.255.252 2 4

Son sütun 232o¨nek2^{32 - \text{önek}} ile hesaplanır. Önek bir bit uzadığında blok yarıya iner — bu ikilik ilişki, plan yaparken tek tek hesap yapmayı gereksiz kılar.

Ağ ve Yayın Adresleri

Bir adresin ait olduğu ağ, adres ile maskenin bit düzeyinde VE işlemine sokulmasıyla bulunur. İşlem, Bilgisayarlar Nasıl Çalışır kursundaki Bit Düzeyi İşlemler dersinde tanıtılan maskeleme kalıbının doğrudan uygulanmasıdır: maskenin 0 olduğu bitler silinir, 1 olduğu bitler korunur.

Yayın adresi ise düğüm bitlerinin tümü 1 yapılarak bulunur. Bunun için maskenin tersi olan joker maske (wildcard mask) kullanılır ve VEYA işlemine sokulur.

ag˘=adres&maske,yayın=ag˘¬maske\text{ağ} = \text{adres} \mathbin{\&} \text{maske}, \qquad \text{yayın} = \text{ağ} \mathbin{|} \lnot\text{maske}

192.168.10.196 adresi ve 255.255.255.192 maskesi için:

import ipaddress

adres = ipaddress.ip_address("192.168.10.196")
maske = ipaddress.ip_address("255.255.255.192")
ag = ipaddress.ip_address(int(adres) & int(maske))
joker = ipaddress.ip_address(int(maske) ^ 0xFFFFFFFF)
yayin = ipaddress.ip_address(int(ag) | int(joker))

print("adres :", format(int(adres), "032b"), adres)
print("maske :", format(int(maske), "032b"), maske)
print("ağ    :", format(int(ag), "032b"), ag)
print("joker :", format(int(joker), "032b"), joker)
print("yayın :", format(int(yayin), "032b"), yayin)
adres : 11000000101010000000101011000100 192.168.10.196
maske : 11111111111111111111111111000000 255.255.255.192
ağ    : 11000000101010000000101011000000 192.168.10.192
joker : 00000000000000000000000000111111 0.0.0.63
yayın : 11000000101010000000101011111111 192.168.10.255

Son iki bit dışında ağ bölümü korunmuştur: 11000100 baytının üst altı biti 110001, düğüm bitleri ise 00’dır. Ağ adresi 192.168.10.192, yayın adresi 192.168.10.255, aradaki 62 adres kullanılabilir düğüm adresleridir.

Kullanılabilir Düğüm Sayısı

Her ağda iki adres ayrılmıştır: düğüm bitlerinin tümü 0 olan adres ağın kendisini, tümü 1 olan adres yayın adresini gösterir. Hiçbiri bir arayüze atanamaz. Kullanılabilir düğüm sayısı:

N=232p2N = 2^{32 - p} - 2

Önek Toplam adres Kullanılabilir düğüm
/24 256 254
/25 128 126
/26 64 62
/27 32 30
/28 16 14
/29 8 6
/30 4 2

Noktadan noktaya bağlantılarda /31 öneki de kullanılabilir: iki cihazın doğrudan bağlandığı bir hatta yayın adresine gerek olmadığı için her iki adres de atanabilir. Bu kurs, örnek planında daha yaygın olan /30 seçimini kullanır.

Ters yönde hesap, plan yaparken kullanılan hesaptır: NN düğüm için gereken önek uzunluğu, 232p2N2^{32-p} - 2 \ge N eşitsizliğini sağlayan en büyük pp’dir.

Gereken düğüm En küçük yeterli blok Kullanılabilir Boşa giden
2 /30 2 0
10 /28 14 4
20 /27 30 10
50 /26 62 12
100 /25 126 26

Bit Ödünç Almak

Bir bloğu bölmek, düğüm bölümünden bit ödünç alıp ağ bölümüne eklemektir. Ödünç alınan her bit alt ağ sayısını iki katına çıkarır, blok boyunu yarıya indirir:

Ödünç alınan bit Yeni önek Alt ağ sayısı Alt ağ başına düğüm
0 /24 1 254
1 /25 2 126
2 /26 4 62
3 /27 8 30
4 /28 16 14

Alt ağ sayısı 2k2^k, alt ağ başına düğüm sayısı 28k22^{8-k} - 2’dir; çarpımları hiçbir zaman 254’e ulaşmaz, çünkü her alt ağ kendi ağ ve yayın adresini harcar. Bölme, adres kaybı karşılığında ayrım kazandırır.

Alt ağların başlangıç adresleri, blok boyunun katlarıdır. /26 bölmesinde blok boyu 64 olduğundan başlangıçlar 0, 64, 128, 192’dir. Bu artış miktarına blok adımı denir ve maskenin son sıfırdan farklı baytından okunur: 255.255.255.192 maskesinde 256192=64256 - 192 = 64.

Örnek Bloğu Dörde Bölmek

Kurumun dört bölümü ve bir noktadan noktaya bağlantısı vardır. İlk deneme, bloğu eşit dört parçaya bölmektir.

import ipaddress

blok = ipaddress.ip_network("192.168.10.0/24")
for alt in blok.subnets(new_prefix=26):
    dugumler = list(alt.hosts())
    print(f"{str(alt):18s} maske={alt.netmask:15s} ağ={str(alt.network_address):15s} "
          f"ilk={str(dugumler[0]):15s} son={str(dugumler[-1]):15s} "
          f"yayın={str(alt.broadcast_address):15s} n={len(dugumler)}")
192.168.10.0/26    maske=255.255.255.192 ağ=192.168.10.0    ilk=192.168.10.1    son=192.168.10.62   yayın=192.168.10.63   n=62
192.168.10.64/26   maske=255.255.255.192 ağ=192.168.10.64   ilk=192.168.10.65   son=192.168.10.126  yayın=192.168.10.127  n=62
192.168.10.128/26  maske=255.255.255.192 ağ=192.168.10.128  ilk=192.168.10.129  son=192.168.10.190  yayın=192.168.10.191  n=62
192.168.10.192/26  maske=255.255.255.192 ağ=192.168.10.192  ilk=192.168.10.193  son=192.168.10.254  yayın=192.168.10.255  n=62

Bu tablo, elle yapılan hesabın denetimidir. Aynı sonuç kâğıt üzerinde de çıkarılabilir: blok adımı 64, başlangıçlar 0/64/128/192, her bloğun yayın adresi bir sonraki başlangıcın bir eksiğidir.

Planı gereksinimlerle karşılaştıralım:

Bölüm Gereken düğüm Ayrılan blok Kullanılabilir Sonuç
Misafir kablosuz 100 192.168.10.0/26 62 Yetersiz
Laboratuvar 50 192.168.10.64/26 62 Yeterli, 12 boş
Yönetim 20 192.168.10.128/26 62 Yeterli, 42 boş
Sunucu 10 192.168.10.192/26 62 Yeterli, 52 boş
Noktadan noktaya bağlantı 2 Blok kalmadı

Plan iki noktada başarısızdır. Misafir ağı 100 düğüm ister, 62 adres alır. Noktadan noktaya bağlantıya verilecek blok kalmamıştır. Buna karşılık sunucu ağında 52 adres boş durmaktadır.

Eşit Bölmenin Zorunlu Kusuru

Başarısızlığın nedeni bir hesap hatası değil, yöntemin kendisidir. Eşit bölmede tüm alt ağlar en büyük gereksinime göre boyutlanmak zorundadır. En büyük bölüm 100 düğüm istiyorsa her alt ağ en az /25 olmalıdır; /25 blokları ise /24 içine yalnızca iki tane sığar.

Gereken toplam adres, eşit bölmede 5×128=6405 \times 128 = 640’tır. Elde 256 adres vardır. Oysa bölümlerin gerçek toplam gereksinimi 182’dir. Aradaki fark tamamen yöntemden kaynaklanır.

Sorunun kaynağı tek bir varsayımdır: tüm alt ağların aynı maskeyi taşıması gerektiği. Bu varsayım CIDR ile birlikte ortadan kalkmıştır ve kaldırıldığında plan sığar.

Bir Adres Hangi Alt Ağa Düşer

Alt ağ planı kurulduktan sonra sık sorulan soru, verilen bir adresin hangi alt ağa ait olduğudur. Yanıt, adresin plandaki her maskeyle VE’lenip sonucun ağ adresiyle karşılaştırılmasıyla bulunur.

Aynı adres, farklı maskelerle farklı ağlara düşer:

Adres Maske Ağ adresi Yayın adresi
192.168.10.196 /24 192.168.10.0 192.168.10.255
192.168.10.196 /25 192.168.10.128 192.168.10.255
192.168.10.196 /26 192.168.10.192 192.168.10.255
192.168.10.196 /27 192.168.10.192 192.168.10.223
192.168.10.196 /28 192.168.10.192 192.168.10.207

Tablo, önceki derste söylenen saptamanın sayısal karşılığıdır: adres tek başına eksik bilgidir. Bir istemcinin maskesi yanlış yapılandırılmışsa, yerel olan hedefleri uzak veya uzak olan hedefleri yerel sanar. İlk durumda trafiği gereksiz yere geçide gönderir; ikinci durumda hiç ulaşamayacağı bir adres için ARP isteği yayınlar ve yanıt alamaz.

Özet

  • Ağ maskesi, adresin ağ bitlerini 1 ile işaretleyen 32 bitlik örüntüdür; 1’ler soldadır ve kesintisizdir.
  • Ağ adresi adres ile maskenin VE’lenmesiyle, yayın adresi ağ ile joker maskenin VEYA’lanmasıyla bulunur.
  • Her alt ağda iki adres ayrılmıştır; kullanılabilir düğüm sayısı 232p22^{32-p} - 2’dir.
  • Ödünç alınan her bit alt ağ sayısını ikiye katlar, alt ağ boyunu yarıya indirir; blok adımı, 256 ile maskenin son anlamlı baytının farkıdır.
  • 192.168.10.0/24 bloğunu dört eşit /26 parçasına bölmek misafir ağını karşılamaz ve bağlantı ağına yer bırakmaz; eşit bölmede gereken toplam 640 adrestir.
  • Eşit bölmenin kusuru, tüm alt ağların en büyük gereksinime göre boyutlanmak zorunda olmasıdır.

Sonraki Adım

Tüm alt ağların aynı maskeyi taşıması bir zorunluluk değildir. Her bölüme kendi gereksinimine göre bir maske verilirse, aynı 192.168.10.0/24 bloğu beş ağın hepsini karşılar ve geriye artan adres bile kalır. Sonraki ders bu planı adım adım kuracak, her bölümün ağ ve yayın adreslerini hesaplayacak ve planın çakışmasız olduğunu sınayacak.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat