Subnet Hesaplama
Yayın tarihi
Okuma süresi
6 dk okuma

IPv6 Subnet Planlama: Bir /48 Bloğunu Nasıl Bölersiniz?

Bir /48 ön eki /52, /56 ve /64 bloklarına nasıl bölünür? Onaltılık basamak hizalaması, lokasyon-işlev-VLAN hiyerarşisi, örnek plan tablosu ve DNS notları.

Bir /48 bloğu 65.536 adet /64 alt ağ taşır ve bu sayı, çoğu kurumun ihtiyacından çok büyüktür. Asıl iş adres bulmak değil, bloğu öyle bölmektir ki bir adresin ilk bakışta hangi lokasyona ve hangi işleve ait olduğu okunsun. Bu yazı, onaltılık basamak sınırlarına hizalanmış üç kademeli bir plan kurar ve belgelendirme ön ekiyle örneklendirir.

Not

Yazıdaki tüm adresler 2001:db8::/32 belgelendirme aralığındandır (RFC 3849 (yeni sekmede açılır)). Örnek adres, gerçek bir ağı göstermez.

Bölmeye başlamadan önce: 16 bitlik alt ağ alanı

Küresel tekil yayın adreslerinde arayüz kimliği 64 bittir; bu yüzden bir /48 sahibinin elinde 16 bit alt ağ kimliği kalır (RFC 4291 (yeni sekmede açılır), bölüm 2.5.4). Bu 16 bit, adresin 4. hextet'inin (16 bitlik grubunun) tamamıdır. Plan yapmak, bu dört onaltılık basamağa anlam yüklemek demektir.

2001:db8:abcd::/48 ön eki için adres şu parçalardan oluşur:

Metin
2001:db8:abcd : L F V V : 0000:0000:0000:0000
|______________| |____|  |____________________|
   /48 ön ek      alt ağ     arayüz kimliği
                  kimliği    (64 bit)

Dört basamağın her biri 4 bittir. Hangi basamağa hangi anlamı verdiğiniz, hangi ön ek uzunluklarının planın "doğal" sınırları olacağını belirler.

UzunlukHangi basamakta biterBu uzunlukta kaç blok (/48 içinde)Blok başına /64
/524. hextet'in 1. basamağı164.096
/564. hextet'in 2. basamağı256256
/604. hextet'in 3. basamağı4.09616
/644. hextet'in 4. basamağı65.5361

Sayıları doğrulamak için bölme kuralı yeter: ön ek uzunluğu k bit artarsa blok sayısı 2k kat çoğalır. /48'den /56'ya 8 bit eklenir, yani 28 = 256 blok çıkar. Elle hesabın ayrıntısı için IPv6 adresleri nasıl hesaplanır yazısına bakabilirsiniz.

Neden onaltılık basamak sınırına hizalamalı?

Ön ek uzunluğu 4'ün katı değilse blok sınırı bir basamağın ortasına düşer. Örneğin /50 bloklarının başlangıçları 0000, 4000, 8000 ve c000 olur; ağ adresine bakarak bloğun uzunluğunu söylemek zorlaşır. 4'ün katı olan uzunluklarda ise adresin geri kalan basamakları sıfırdır ve bloğun büyüklüğü adrese bakarak okunur: 2001:db8:abcd:1100::/56 yazısında "son iki basamak serbest" bilgisi görünür.

Hizalamanın ikinci faydası DNS'tedir. Ters çözümleme bölgeleri (ip6.arpa) her onaltılık basamağı ayrı bir etiket yapar ve bölge devri basamak sınırlarında yapılır; hizasız bir ön ek birden çok bölgeyle devredilir. Ayrıntı IPv6 ters DNS yazısında anlatılıyor.

İpucu

Basamak sınırına hizalama bir zorunluluk değil, okunabilirlik tercihidir. Yönlendirme ve adresleme /50 ya da /58 gibi uzunluklarla da sorunsuz çalışır; bedeli elle okumanın ve ters bölge yönetiminin zorlaşmasıdır.

Strateji 1: Düz bölme, lokasyon başına bir /56

En basit plan, 4. hextet'in ilk iki basamağını birim kimliği, son iki basamağını alt ağ numarası yapar. Her birim (şube, veri merkezi, ortam) bir /56 alır ve içinde 256 adet /64 barındırır.

BirimÖn ek/64 sayısı
Merkez ofis2001:db8:abcd::/56256
Şube 12001:db8:abcd:100::/56256
Şube 22001:db8:abcd:200::/56256
Veri merkezi2001:db8:abcd:300::/56256

Bu planda 256 birim sığar ve her birimin 256 alt ağı vardır. Birim sayısı az, her birimin içinde de ayrım gerekmiyorsa yeterlidir. Kusuru, birimin içindeki işlev ayrımının (kullanıcı, sunucu, yönetim) yalnızca alt ağ numarasına bırakılmasıdır; bu da zamanla belgesiz bir numaralama alışkanlığına dönüşür.

Strateji 2: Üç kademeli hiyerarşi

Daha okunaklı plan, dört basamağı üç role ayırır: ilk basamak lokasyon, ikinci basamak işlev, son iki basamak VLAN ya da alt ağ numarasıdır.

  • 1. basamak (L), /52 kademesi: 16 konum.
  • 2. basamak (F), /56 kademesi: lokasyon başına 16 işlev grubu.
  • 3. ve 4. basamak (VV), /64 kademesi: işlev grubu başına 256 alt ağ.

Hesap tutarlıdır: 16 × 16 × 256 = 65.536. Plan, /48'in tüm alt ağ alanını boşa harcamadan kullanır.

Örnek plan tablosu

Aşağıdaki tabloda 2001:db8:abcd::/48 bloğu için bir kurum planı var. Lokasyon 0 merkez, lokasyon 1 ikinci şubedir; işlev kodları 0 altyapı, 1 sunucu, 2 kullanıcı, f ayrılmış paydır.

Ön ekUzunlukAnlamı
2001:db8:abcd::/52/52Lokasyon 0, merkez (4.096 alt ağ)
2001:db8:abcd::/56/56Merkez, altyapı ve yönetim
2001:db8:abcd:100::/56/56Merkez, sunucular
2001:db8:abcd:200::/56/56Merkez, kullanıcı ağları
2001:db8:abcd:f00::/56/56Merkez, ayrılmış (büyüme payı)
2001:db8:abcd:1000::/52/52Lokasyon 1, ikinci şube
2001:db8:abcd:1100::/56/56Şube, sunucular
2001:db8:abcd:105::/64/64Merkez, sunucular, VLAN 5 (onaltılık)

Son satırı okumak için hextet'i basamaklara ayırın: 0105 = lokasyon 0, işlev 1, alt ağ 05. Bir adres günlüğünde 2001:db8:abcd:105:: gördüğünüzde, merkezdeki sunucu ağlarından birinde olduğunu tablo bakmadan söyleyebilirsiniz.

Not

Burada seçilen /56 birimi iç bölme kolaylığıdır. RFC 6177 (yeni sekmede açılır), sitelere hangi boyutun verileceğini operatör kararı olarak bırakır; bu yazıdaki /56 bir RFC önerisi değildir. Bir servis sağlayıcıdan aldığınız bloğun boyutu da sizin planınızı değil, onun politikasını yansıtır.

Hangi alt ağlar mutlaka /64 olmalı?

Kullanıcı ya da sunucu ağı gibi ana makinelerin bulunduğu bağlantılar için /64 kullanın. SLAAC, yönlendirici duyurusundaki ön ek uzunluğu ile arayüz kimliğinin toplamı 128 değilse ön ek bilgisini yok sayar (RFC 4862 (yeni sekmede açılır), bölüm 5.5.3). Bu yüzden bir LAN'ı /96 gibi bir uzunluğa bölmek SLAAC ile çalışmaz.

İki istisna vardır:

  1. Yönlendiriciler arası bağlantılar: RFC 6164 (yeni sekmede açılır) bu tür noktadan noktaya bağlantılarda 127 bitlik ön eki yararlı bulur. Plan açısından en temiz yol, bağlantıya yine bir /64 ayırmak ve iki ucu bu /64'ün içinden /127 olarak yapılandırmaktır. Böylece sonradan bir değişiklik yapmak gerekirse numara planı bozulmaz.
  2. Tek adresler: Geri döngü (loopback) adresleri /128 olarak yazılır. Bunları tek bir ayrılmış /64'ten verin; her birini ayrı bir alt ağa koymayın.

Alt ağın ilk adresi ana makinelere verilmez: ana makine bitleri sıfır olan adres, yönlendiriciler için tanımlı Subnet-Router anycast adresidir (RFC 4291, bölüm 2.6.1). Planınızda "ilk ana makine ::1 olsun" kuralı koymanız bu yüzden mantıklıdır.

Büyüme payı ve numaralandırma

Adres uzayı bolken bloğu sıkıştırarak kullanmanın bir kazancı yoktur. Üç öneri:

  • Her kademede boş bırakın. Lokasyonlara 0, 1, 2 diye ardışık gitmek yerine ilk basamağın bir bölümünü ayırın. Örnekte f işlevi bilerek ayrılmış tutuldu.
  • Anlam taşıyan kod kullanın. VLAN kimliğiniz zaten bir numaraysa alt ağ numarasını onunla eşleştirmek (VLAN 5 → 05) tablolardaki yükü azaltır. VLAN kimliği 255'i aşıyorsa bu eşleme bozulur; bunu planın başında kontrol edin.
  • Bir kademeyi "bilinmeyen" için saklayın. Beklenmedik bir ihtiyaç doğduğunda yeni bir /52 ya da /56 ayırabilmek, mevcut bloğu taşımaktan çok daha ucuzdur.

Belgeleme ve DNS notları

Plan kâğıt üzerinde kaldıkça değer taşımaz. Her bloğun yanında şu bilgiler yazılı olmalıdır: ön ek, sahibi, işlevi, ayrıldığı tarih, bağlı olduğu yönlendirici arayüzü. Bir tabloda tutmak yeterlidir; adres yönetim aracı (IPAM) kullanıyorsanız aynı alanları oraya taşıyın.

DNS tarafında iki pratik kural işe yarar:

  1. Ters bölgeleri plana göre devredin. Bir /56 ya da /52 birimi kendi ters bölgesini ayrı bir ekip yönetsin istiyorsanız bölge adı basamak sınırından türetilir. 2001:db8:abcd::/48 için bölge adı, ilk 12 basamağın ters yazılmasıyla d.c.b.a.8.b.d.0.1.0.0.2.ip6.arpa olur; hesaplamayı IPv6 Ters DNS Oluşturucu yapar.
  2. Adres yerine ad kullanın. Sunuculara ve hizmetlere kararlı adlar verin ve AAAA kaydını planınıza göre üretin; adres değiştiğinde yalnızca kayıt güncellenir.

Bir not da proxy kullananlar içindir. Bir hizmet sağlayıcının verdiği bloğu alt ağlara bölmek, size verilen adres sayısıyla aynı şey değildir; örneğin IPv6 Proxy sayfasında paketlerin adet bazlı satıldığı ve her pakette özel bir /64 subnet verildiği belirtilir. /64 bloğu içindeki adreslerin nasıl tahsis edildiği ve döndürüldüğü sayfada tanımlı değildir; ayrıntı için sipariş öncesi destekten teyit alın.

Planı araçla üretmek ve doğrulamak

Elle yazılmış bir plan hata taşıyabilir. IPv6 Prefix Hesaplama aracı bir bloğu istediğiniz uzunluğa böler; IPv6 Subnet Hesaplama ve IPv6 CIDR Hesaplama araçları bir adresin hangi bloğa düştüğünü doğrular.

Aynı bölmeyi Python standart kütüphanesiyle de üretebilirsiniz:

Python
import ipaddress
from itertools import islice

# Örnek /48 (belgelendirme aralığı)
site = ipaddress.ip_network("2001:db8:abcd::/48")

# /52 kademesi: ilk üç lokasyon
konumlar = list(islice(site.subnets(new_prefix=52), 3))
for k in konumlar:
    print(k)
# 2001:db8:abcd::/52
# 2001:db8:abcd:1000::/52
# 2001:db8:abcd:2000::/52

# Lokasyon 0 içindeki /56 işlev blokları: ikincisi sunucular
islevler = list(konumlar[0].subnets(new_prefix=56))
print(islevler[1])    # 2001:db8:abcd:100::/56

# Sunucu bloğunun ilk /64 alt ağları
for ag in islice(islevler[1].subnets(new_prefix=64), 3):
    print(ag)
# 2001:db8:abcd:100::/64
# 2001:db8:abcd:101::/64
# 2001:db8:abcd:102::/64

Kodun çıktısı tablodaki satırlarla tutuyorsa plan tutarlıdır. subnets yöntemi bloğu sırayla ve çakışmasız böldüğünden elle yazdığınız her satırı bu çıktıyla karşılaştırabilirsiniz.

Sık yapılan planlama hataları

  1. Bölmeyi 64'ün altında bitirmek. Ana makine ağını /80 gibi bir uzunluğa bölmek SLAAC'i bozar; sınır /64'tür.
  2. Hextet'te sondaki sıfırı atmak. 2001:db8:abcd:1::/56 ile 2001:db8:abcd:100::/56 farklı bloklardır; ilki /56 olarak yazılamaz, çünkü ana makine bitleri sıfır değildir.
  3. 256 ile 65.536'yı karıştırmak. Bir /56 içinde 256, bir /48 içinde 65.536 adet /64 vardır.
  4. Planı tek kişinin kafasında tutmak. Belgesiz plan, ilk devir tesliminde dağılır.
  5. Hazır tabloyu kopyalamak. Bu yazıdaki tablo bir örnektir; kendi lokasyon, işlev ve VLAN sayınızla yeniden hesaplayın.

Ön ek kavramının kendisi için IPv6 prefix nedir, /32, /48 ve /64 uzunluklarının rolleri için /32, /48 ve /64 farkları yazılarına bakın.

Sık sorulan sorular

Bir /48 bloğunu bölerken hangi uzunlukları seçmek mantıklı?

Onaltılık basamak sınırına denk gelen /52, /56 ve /60 uzunlukları en okunaklı olanlardır, çünkü her biri adresin bir basamağını belirler. Alt ağların kendisi ise /64 olmalıdır; SLAAC kullanılan bir bağlantı için bu uzunluk gerekir.

Bir /48 içinde kaç tane /56 vardır?

256 tane (2^8). Her /56 bloğu da 256 adet /64 taşır; 256 × 256 çarpımı /48'deki toplam 65.536 alt ağı verir.

Alt ağ planını neden aralıklı yapmalıyım?

Ardışık dağıtılan bloklar büyüdüğünde taşınmak zorunda kalır, taşınan blok da kural listelerini, DNS kayıtlarını ve belgeleri değiştirir. Adres uzayı bol olduğundan her birime sonraki iki üç düzey için yer ayırmak ucuz bir sigortadır.

Yönlendiriciler arası bağlantıya hangi ön ek verilir?

RFC 6164, bu tür noktadan noktaya bağlantılarda 127 bitlik ön eki yararlı bulur. Pratikte bağlantıya yine bir /64 ayırıp yalnızca iki ucu /127 olarak yapılandırmak, planı bozmadan ilerideki değişikliğe yer bırakır.