İçeriğe geç
academia.sh

Ders 14 / 16

Bulut Ağ Kavramları

Sanal ağ, alt ağ, güvenlik grubu ve ağ geçidi aynı kaldıraç–kuyruk ölçüsüne girer: tek bir alt ağ önek uzunluğu kırk alt ağa uygulandığında /26 on yedi alt ağı kısa bırakır, kuyruğu kapatan /25 ise sanal ağın bloğuna sığmaz.

İçindekiler

Önceki ders tek bir şablonu kırk aygıta uyguladı ve sapan azınlığı saydı. Kursun buraya kadarki bütün ölçümlerinde özne aynı türdendi: kendi sahip olduğumuz aygıt. Bir rafta duruyordu, bir seri numarası vardı, kabuğuna bağlanılabiliyordu, bozulduğunda yerine başkası konuyordu. Kaldıraç bu aygıta dokunuyordu.

Bu dersin sorusu özneyi değiştirir: ya özne kendi sahip olmadığımız bir nesne olursa? Bulut ağında sanal ağ, alt ağ, güvenlik grubu ve ağ geçidi birer aygıt değildir; birer yapılandırma kaydıdır. Dokunulacak bir kutu yoktur, açılacak bir kabuk yoktur, arıza anında bakılacak bir ışık yoktur. Soru şudur: özne kayda dönüştüğünde kaldıraç–kuyruk ölçüsü değişir mi?

Kayıt Olan Özne

Bulut hizmet modelleri, paylaşılan sorumluluk sınırı ve sağlayıcı seçimi Bulut Bilişim müfredatının Bulutta Hesaplama ve Ağ kursunda kuruldu; o anlatı burada tekrarlanmaz. Bu ders bulut nesnesini yalnız bir yönüyle ele alır: ölçünün öznesi olarak.

Kayda dönüşen özne üç şey kazanır. Anında yaratılır ve anında yok edilir; sayısı bir istekle kırktan dört yüze çıkabilir. Tanımı metindir, dolayısıyla sürüm denetimine girer ve bir başkasına birebir kopyalanabilir. Üçüncüsü, yaratılışı hep aynıdır: aynı tanım her seferinde aynı nesneyi verir.

Kaybettiği şey de üçtür ve ölçüyü ilgilendiren asıl kısım budur. Nesnenin altındaki fiziksel yolu göremeyiz. Nesnenin sınırlarını biz koymayız — bir sanal ağın kaç alt ağ taşıyabileceği, bir güvenlik grubunun kaç kural alabileceği bize verilmiş sayılardır. Ve nesne yaratıldıktan sonra kimi alanı değiştirilemez: bir sanal ağın adres bloğu, kurulduktan sonra yerinde büyütülemez.

Bu üçüncüsü kaldıracı doğrudan yaratır. Değiştirilemeyen bir alan, bir kez ve herkes için verilen bir karardır. Kırk alt ağın hepsi aynı sanal ağın içindeyse, o sanal ağın bloğu kırk öznenin ortak sınırıdır.

Dört Nesne

Bulut ağının çekirdeği dört sınıfa iner. Aşağıdaki döküm bir çağrı değildir; nesnelerin bildirimsel tanımının biçimini gösterir ve çalıştırılmaz.

# ogretilen nesne dokumu , calistirilmamistir

sanal ag:
  ad: olcum-agi
  blok: 10.40.0.0/20        # yaratildiktan sonra degistirilemez
  bolge: bolge-1

alt ag:
  ad: olcum-01
  sanal ag: olcum-agi
  blok: 10.40.0.0/26        # sanal agin blogundan kesilir
  ayrilmis adres: 5         # ag, yayin, gecit ve iki hizmet adresi
  yonlendirme tablosu: olcum-varsayilan

guvenlik grubu:
  ad: olcum-aygit
  giris:
    - kaynak: guvenlik grubu olcum-toplayici
      baglanti noktasi: 443/tcp
    - kaynak: 10.40.0.0/20
      baglanti noktasi: 22/tcp
  cikis:
    - hedef: her yer
      baglanti noktasi: 443/tcp

ag gecidi:
  - tur: disari cikis        # ictekiler disari cikar, disaridan giris yok
  - tur: es baglanti         # baska bir sanal aga dogrudan yol
    karsi: yonetim-agi

Sanal ağ bir adres alanı ve bir yalıtım sınırıdır. Alt ağ o alanın bir dilimidir ve kendi yönlendirme tablosunu taşır. Güvenlik grubu bir aygıta değil, bir arayüz kümesine iliştirilen kural dizisidir. Ağ geçidi sanal ağın dışarıyla ilişkisini kuran nesnedir; türü yönü belirler.

Güvenlik grubunun ilk kuralında kaynak bir adres bloğu değil, başka bir güvenlik grubudur. Bu, bulut ağının kendine özgü tek yapısal katkısıdır: kural adres yerine etikete bağlanır ve adres değiştiğinde kuralı yeniden yazmak gerekmez. Bu ders güvenlik grubunu yalnız bir yapılandırma nesnesi olarak alır; kural dizisinin niyet–gerçek farkı Kablosuz Ağlar ve Ağ Güvenliği kursunda ölçüldü ve burada tekrarlanmaz.

Genel ve Özel Alt Ağ

Alt ağların en sık yanlış anlaşılan yanı, “genel” ya da “özel” oluşlarının nereden geldiğidir. Adres bloğundan gelmez. Bir alt ağın bloğu ne olursa olsun, o alt ağı dışarıdan erişilebilir yapan tek şey yönlendirme tablosudur: tablosunda dışarı çıkış geçidine giden bir varsayılan yol varsa alt ağ geneldir, yoksa özeldir. Aynı sanal ağın içinde iki alt ağ komşu adres bloklarını taşıyıp bambaşka erişim özelliklerine sahip olabilir.

Bu, yönlendirme tablosunu ikinci bir kaldıraç yapar ve ilkinden farklı bir kuyruk üretir. Tablo bir alt ağa değil, alt ağ kümesine iliştirilir; tabloya bir yol eklemek onu paylaşan her alt ağa birden ekler. Yolun gereksiz olduğu alt ağlar kuyruğu oluşturur ve bu kuyruk tamamen sessizdir: fazladan bir yol hata üretmez, gecikme yaratmaz, günlüğe düşmez. Yalnız o alt ağın çıkabileceği yerlerin kümesini sessizce genişletir.

Bir alt ağın hangi tabloya bağlı olduğu bu yüzden adres planından bağımsız bir karardır ve ayrıca sayılmak zorundadır. Kırk alt ağın kaçının aynı tabloyu paylaştığı bilinmiyorsa, bir yol satırının kaç özneye dokunduğu da bilinmiyor demektir. Daraltma, tabloyu erişim özelliğine göre bölmektir: dışarı çıkan alt ağlar bir tabloyu, çıkmayanlar başkasını paylaşır ve varsayılan yol yalnız birincisine yazılır.

Bu dersin ölçümü ikinci kaldıraca dokunmaz; ölçülen tek şey adres bloğudur. İkisinin ayrı tutulması gerekir çünkü aynı alt ağ nesnesi üzerinde çalışsalar da farklı kuyruklar bırakırlar: biri uç sığdıramamak, öteki gereksiz erişim.

Kaldıraç: Tek Önek Uzunluğu

Kırk alt ağ açılacak. Her alt ağın kaç uç taşıyacağı birbirinden farklıdır. Operatörün eline tek bir sayı verilir: alt ağların önek uzunluğu. Bu sayı bir kez seçilir ve kırk alt ağın kırkına birden uygulanır.

Neden tek sayı? Çünkü kırk ayrı önek seçmek kırk ayrı karar demektir ve o kararların her biri gözden geçirilmek, belgelenmek ve sonradan hatırlanmak zorundadır. Tek önek, tek karar verir: alt ağın kaçıncı bloğa denk geldiği aritmetikle bulunur, plan bir tabloya sığar, adres özetlemesi tek satırda yazılır — Anahtarlama ve Yönlendirme kursunun adres ve ad planlaması dersinde kurulan kazanç budur.

Bir ayrıntı burada Ağ Modelleri ve Protokoller kursunun alt ağ hesabından ayrılır. Orada her alt ağda ayrılan adres sayısı ikiydi — ağ adresi ve yayın adresi. Bulut sanal ağında bu sayı beştir: ağ geçidi ile iki hizmet adresi de blokta durur ve hiçbir uca verilemez. Küçük bloklarda bu fark belirleyicidir; /27 bloğunun otuz iki adresinin beşi baştan gider.

Ölçüm iki sınırı aynı anda yoklar. Alt ağın bloğu, o alt ağdaki uç talebini karşılamalıdır. Kırk bloğun toplamı da sanal ağın bloğuna sığmalıdır. İki sınır ters yönde çeker: öneği küçültmek birinciyi çözer, ikinciyi bozar.

Ölçümün varsayımları:

  • OT61 — Kırk özne kursun sabit kümesidir; her özne bir alt ağa karşılık gelir ve öznenin kapasitesi o alt ağdaki uç sayısı olarak okunur. Küme değiştirilmez.
  • OT62 — Sanal ağın bloğu /20, yani 4096 adrestir ve yaratıldıktan sonra büyütülemez.
  • OT63 — Her alt ağda 5 adres kullanılamaz: ağ adresi, yayın adresi, ağ geçidi ve iki hizmet adresi. Kullanılabilir uç sayısı blok boyundan bu beşi çıkarınca kalandır.
  • OT64 — Kâhin kurgunun kendisidir: her alt ağın gerçek uç talebini biz yazdığımız için biliriz. Plan bu bilgiyi kullanmaz, yalnız tek öneği uygular.
  • OT65 — Ölçüm bir bulut çağrısı değildir; hiçbir nesne yaratılmaz, hiçbir sağlayıcıya istek gönderilmez. Sayılan şey adres aritmetiğidir.
  • OT66 — Karşılaştırma satırı olan özneye göre plan, kaldıracın yokluğudur: her alt ağ kendi talebini kapsayan en küçük bloğu alır ve karar sayısı kırk olur.

Ölçüm

"""Bulut agi: tek alt ag onek uzunlugu kirk alt aga birden.

Kaldirac   - sanal agin butun alt aglarinda kullanilan tek onek uzunlugu.
Kuyruk     - blogu talebini karsilamayan alt ag.
Gorunmeyen - alt aglarda bosta duran adres.
"""
TOHUM = 20260812
SANAL_AG_ONEK = 20      # sanal agin adres blogu
AYRILAN = 5             # her alt agda kullanilamayan adres


def uretec(tohum):
    d = tohum % 2147483646 + 1

    def r(n):
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


def ozneler(sayi=40, tohum=TOHUM):
    r, liste = uretec(tohum), []
    for i in range(sayi):
        liste.append({
            "no": i + 1,
            "kapasite": 20 + r(81),
            "gecikme": 5 + r(45),
            "sinif": ("etkilesim", "toplu", "yedek")[r(3)],
            "ozel": r(9) == 0,
        })
    return liste


def blok(onek):
    return 1 << (32 - onek)


def tek_onek(oz, onek):
    """Tek onek kirk alt aga uygulanir; talep uc sayisiyla olculur."""
    kullanilabilir = blok(onek) - AYRILAN
    sigmayan = eksik = bosta = 0
    for o in oz:
        fark = o["kapasite"] - kullanilabilir
        if fark > 0:
            sigmayan += 1
            eksik += fark
        else:
            bosta -= fark
    return kullanilabilir, sigmayan, eksik, bosta, blok(onek) * len(oz)


def onege_gore(o):
    """Bir ozneyi kapsayan en kucuk blogun onegi."""
    onek = 32
    while blok(onek) - AYRILAN < o["kapasite"]:
        onek -= 1
    return onek


oz = ozneler()
sanal = blok(SANAL_AG_ONEK)
print(f"sanal ağ /{SANAL_AG_ONEK} = {sanal} adres | alt ağ {len(oz)} | "
      f"uç talebi {min(o['kapasite'] for o in oz)}–{max(o['kapasite'] for o in oz)} "
      f"| toplam talep {sum(o['kapasite'] for o in oz)}")
print()
print(f"{'önek':>6s} {'kullanılabilir':>14s} {'sığmayan':>9s} {'eksik uç':>9s} "
      f"{'boşta adres':>12s} {'gereken adres':>14s} {'sanal ağa':>10s}")
for onek in (27, 26, 25, 24):
    k, s, e, b, g = tek_onek(oz, onek)
    print(f"  /{onek:<3d} {k:14d} {s:9d} {e:9d} {b:12d} {g:14d} "
          f"{'sığar' if g <= sanal else 'sığmaz':>10s}")

toplam = bosta = 0
for o in oz:
    onek = onege_gore(o)
    toplam += blok(onek)
    bosta += blok(onek) - AYRILAN - o["kapasite"]
print(f"  {'özneye göre':<12s} {'—':>7s} {0:9d} {0:9d} {bosta:12d} {toplam:14d} "
      f"{'sığar' if toplam <= sanal else 'sığmaz':>10s}")
print()
dagilim = {}
for o in oz:
    dagilim[onege_gore(o)] = dagilim.get(onege_gore(o), 0) + 1
print("özneye göre planda kaç ayrı önek:", len(dagilim),
      "-", {f"/{k}": v for k, v in sorted(dagilim.items())})
sanal ağ /20 = 4096 adres | alt ağ 40 | uç talebi 22–99 | toplam talep 2336

  önek kullanılabilir  sığmayan  eksik uç  boşta adres  gereken adres  sanal ağa
  /27              27        36      1265            9           1280      sığar
  /26              59        17       371          395           2560      sığar
  /25             123         0         0         2584           5120     sığmaz
  /24             251         0         0         7704          10240     sığmaz
  özneye göre        —         0         0          984           3520      sığar

özneye göre planda kaç ayrı önek: 3 - {'/25': 17, '/26': 19, '/27': 4}

Kuyruk Nereye Taşındı

Dört satır tek bir kaldıracın dört ayarını gösteriyor ve hiçbiri temiz değil.

/27 bloğu kırk alt ağın 36’sını kısa bırakıyor; eksik uç sayısı 1265. Buna karşılık boşta duran adres yalnızca 9 — plan sıkı, çünkü hemen hemen hiçbir alt ağa fazla adres vermiyor. Sıkılığın bedeli, kırkta otuz altılık bir kuyruktur.

/26 kuyruğu 17’ye indiriyor ve eksik ucu 371’e. Boşta kalan adres 9’dan 395’e çıkıyor. Kaldıracın bir kademe büyütülmesi kuyruğu yarıdan fazla eritti ama kırk alt ağın on yedisi hâlâ talebini karşılayamıyor.

/25 kuyruğu 0’a indiriyor. Kırk alt ağın kırkı da talebini karşılıyor, eksik uç yok. Ve tam bu satırda sağdaki sütun sözü alıyor: bu plan 5120 adres istiyor, sanal ağın bloğu ise 4096. Plan sanal ağa sığmıyor. /24 aynı şeyi daha ağır yapıyor: 10240 adres, boşta duran 7704.

Kuyruk yok olmadı. Alt ağdan sanal ağa taşındı. /26’da on yedi alt ağ kısa kalıyordu; /25’te hiçbir alt ağ kısa kalmıyor ama sanal ağın kendisi kısa kalıyor — ve sanal ağın bloğu OT62 gereği büyütülemez. Kuyruğun yeni adı artık “on yedi özne” değil, “bütün kurulum”. Kaldıracı büyütmek kuyruğu kaldırmadı, kimin kuyrukta olduğunu değiştirdi.

Boşta Kalan Adres

Yalnız sığmayan alt ağı sayan bir gösterge /25 satırını kusursuz okur: sıfır kuyruk. O satırda 2584 adres hiçbir uca verilmeden duruyor — planın istediği 5120 adresin yarısı. Aynı gösterge /27 satırını en kötü satır olarak okur, oysa orada boşta duran adres yalnız 9’dur.

İki sayı aynı anda vardır ve tek bir gösterge ikisini birden göremez. Bu, kursun boyunca sayılan dördüncü okumadır: aşımı sayan gösterge boşluğu görmez. Adres planlamasında boşluk görünmez olduğu için özellikle pahalıdır — hiçbir uyarı üretmez, hiçbir günlüğe düşmez ve ancak sanal ağa yeni bir alt ağ eklenemediğinde fark edilir.

Son satır, kaldıracın kendisinin ne kadara mal olduğunu söylüyor. Her alt ağa kendi öneği verildiğinde kuyruk 0, boşta kalan adres 984, gereken adres 3520 oluyor ve plan sanal ağa sığıyor. Yani doğru cevap vardır; yalnız tek bir sayıyla ifade edilemez. Bedeli sondaki satırda yazılı: plan üç ayrı önek taşıyor, kırk ayrı karar gerektiriyor ve tek satırlık adres özetlemesini bozuyor. Kaldıraç kuyruğu bu yüzden vardır: kırk kararın maliyeti, kuyruğun maliyetinden büyük görüldüğü için.

Güvenlik Grubu ve Ağ Geçidi

Kalan iki nesne aynı örüntünün başka iki yüzüdür ve bu derste ölçülmez; her biri kendi kuyruğunu doğurur.

Güvenlik grubu bir kural dizisidir ve tek bir grup çok sayıda arayüze iliştirilir. Grubun bir kuralını genişletmek, iliştirildiği her arayüzde birden genişletir. Kuralın kaynağını adres yerine başka bir güvenlik grubuna bağlamak bu genişlemeyi daraltır: kural artık bir adres aralığına değil, bir üyeliğe bağlıdır ve üyelik listesi nesne yaşam döngüsüyle birlikte güncellenir. Grubun kaç arayüze iliştirildiği ise ayrıca sayılmak zorundadır; sayılmadığında bir kuralın kaç özneye dokunduğu bilinmez.

Ağ geçidi sanal ağın dışarıyla ilişkisini kuran nesnedir ve türü yönü belirler: kimi geçit yalnız içeriden dışarıya izin verir, kimi iki yönlü bir yol açar, kimi de yalnız belirli bir karşı ağla eşleşir. Yön burada bir güvenlik özelliğidir, bir başarım özelliği değil. Dışarı çıkış geçidi tek yönlü olduğu için içeriye gelen bağlantı yoktur; iki yönlü bir geçit yaratmak bu daraltmayı kaldırır ve kaldırdığı anda sanal ağdaki her alt ağ için kaldırır. Daraltma, geçidin yalnız gereken alt ağların yönlendirme tablosuna yazılmasıdır: geçit sanal ağ düzeyinde var olsa bile, yolu olmayan alt ağ oradan geçemez.

Özet

  • Bulut ağının nesneleri aygıt değil yapılandırma kaydıdır; anında yaratılırlar ama kimi alanları — sanal ağın bloğu gibi — yaratıldıktan sonra değiştirilemez ve o alan kırk öznenin ortak sınırı olur.
  • Tek bir alt ağ önek uzunluğu bir kaldıraçtır: /27 kırk alt ağın 36’sını, /26 ise 17’sini talebinin altında bırakır.
  • Kuyruğu sıfırlayan /25 planı 5120 adres ister, sanal ağın bloğu 4096’dır; kuyruk yok olmaz, alt ağdan sanal ağa taşınır.
  • Boşta kalan adres ayrı bir sayıdır: /25’te 2584, /27’de 9. Yalnız sığmayanı sayan gösterge bu farkı göremez.
  • Her alt ağa kendi öneğini vermek kuyruğu 0’a, boşta kalanı 984’e indirir ama üç ayrı önek ve kırk ayrı karar getirir; kaldıraç tam olarak bu kırk kararı almamak için vardır.

Sonraki Adım

Bu dersin bütün ölçümü tek bir sanal ağın içindeydi: kırk alt ağ aynı bloktan kesildi, aynı geçitleri paylaştı, aynı kaldıraca uydu. Oysa bulut nesnelerinin var olma nedeni çoğu zaman kendi sahip olduğumuz ağla birlikte çalışmalarıdır ve o ağ başka bir yerdedir. Sonraki ders iki ağı birbirine bağlayan seçenekleri ölçer: paylaşılan bir yol üzerinden kurulan siteler arası tünel ile ayrılmış bir yol veren adanmış bağlantı hangi özneye ne verir, ve ikisi birlikte kullanıldığında kuyruk hangi sınıfın üstünde toplanır.

İ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