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 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.
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ı:
| Ö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: düğüm için gereken önek uzunluğu, eşitsizliğini sağlayan en büyük ’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ı , alt ağ başına düğüm sayısı ’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 .
Ö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 ’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ı ’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/24bloğunu dört eşit/26parç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.