Ders 15 / 15
Özel Bağlantı ve Eşleme
İki ağın birbirine bağlanmasının üç yolu aynı iş yükünde sayılır: eşleme erişilebilir kalemi bire karşı üç yüz seksen dörde çıkarır ve hiçbir kararı devretmez, özel bağlantı kalemi birde tutar ama altı kalemden dördünü sağlayıcıya verir; yedi ağlık bir adres planında yirmi bir çiftin dördü çakışma yüzünden eşlenemez ve düzeltmesi üç ağın yeniden adreslenmesidir; eşlemenin geçişli olmaması yüzünden on iki ağ için gereken altmış altı eşleme altı yüz altmış yönlendirme satırı ister.
İçindekiler
Bir önceki ders içeriği kenara taşıdı ve dışarıdan gelen isteğin yolunu tamamladı. Bütün bu yol tek bir yöne bakıyor: genel ağdan gelen istemciye.
Kurgu bölgesel ölçüm ağının kendi bileşenleri de birbirine istek gönderiyor. Toplayıcı ağı veri ambarına yazıyor, pano başka bir hesapta duran ortak doğrulama servisini çağırıyor. Bu trafiğin hiçbiri istemci trafiği değil — ama bugün istemci trafiğiyle aynı yoldan akıyor: genel adreslerle, genel ağ üzerinden, geçidin ve kenarın bütün yüzeyini kullanarak.
İki ağ birbirine genel ağa hiç çıkmadan bağlanabilir. Eşleme iki ağı doğrudan bağlar, özel bağlantı yalnız bir hizmeti tek bir uç üzerinden açar. Bu ders üçünü aynı iş yükünde karşılaştırır ve kursun sorusunu son kez sorar.
- BA49. Kurgu ölçüm ağının bileşenleri ayrı ağlarda durur; dönemlik akış hacmi iki bin dört yüz birimdir. Karşı ağda doksan altı örnek vardır ve her örnek dört kapı dinler. Kendi tarafımızda beş yönlendirme tablosu vardır.
- BA50. Gecikme değerleri kurgu model sabitidir: genel uç on dört, eşleme iki, özel bağlantı üç milisaniye. Model süre ölçmez, sabitleri yazar.
- BA51. Fiyatlar kurgudur, para biriminin adı birimdir: genel çıkış yüz hacim başına iki birim, ağlar arası özel yol bir birim, özel bağlantı ucunun dönemlik kirası yirmi beş birim. Merkezî geçiş katmanı dönemde yüz yirmi birim sabit artı bağlantı başına otuz birimdir.
- BA52. Yedi ağın adres blokları kurgudur ve hepsi özel aralıklardadır; adres aritmetiği gerçektir. Yeniden adreslemenin bin altı yüz dört birimlik bedeli bu konunun ilk dersinden girdi olarak gelir.
- BA53. Eşleme geçişli değildir: bir eşleme yalnız iki ucunu birbirine ulaştırır. Yeniden adreslenecek ağ açgözlü seçilir — en çok çakışan ağ önce taşınır.
// baglanti/aglar-arasi.mjs — model: iki agin birbirine baglanma yollari. Kurgu bolgesel olcum // agi; gercek ag kurulmuyor, adres aritmetigi gercektir. Fiyatlar kurgudur, birimin adi "birim". const KARSI_ORNEK = 96, KAPI = 4, TABLO = 5, HACIM = 2400; // [yol, erisilebilen kalem, gecikme(ms), 100 hacim basina birim, donemlik sabit, // yonlendirme satiri, filtre kurali, dis kayit] const YOL = [ ["genel uc", 1, 14, 2.0, 0, 0, 2, 1], ["esleme", KARSI_ORNEK * KAPI, 2, 1.0, 0, TABLO, 2, 0], ["ozel baglanti", 1, 3, 1.0, 25, 0, 1, 0], ]; // [karar kalemi, genel uc, esleme, ozel baglanti] const KARAR = [ ["hangi araliga yol yazilir", "sen", "sen", "saglayici"], ["karsi tarafta hangi hizmete erisilir", "karsi taraf", "sen", "saglayici"], ["trafigin hangi yonde baslayabilecegi", "sen", "sen", "saglayici"], ["cikis adresinin karsi tarafta kayitli olmasi", "sen", "yok", "yok"], ["ad cozumlemesi", "sen", "sen", "saglayici"], ["filtre kurallari", "sen", "sen", "sen"], ["adres alanlarinin cakismamasi", "yok", "sen", "yok"], ["ucun yerlestigi alt ag", "yok", "yok", "sen"], ]; const elde = (i) => KARAR.filter((k) => k[i + 1] === "sen").length; const devir = (i) => KARAR.filter((k) => ["saglayici", "karsi taraf"].includes(k[i + 1])).length; const E = [15, 17, 13, 15, 13, 8, 13]; const yaz = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](E[i])).join(""); console.log(yaz(["yol", "erisilebilen kalem", "gecikme(ms)", "donemlik birim", "kural+satir", "elde", "devredilen"])); YOL.forEach(([ad, kalem, ms, oran, sabit, satir, filtre, kayit], i) => console.log(yaz([ad, kalem, ms, ((HACIM / 100) * oran + sabit).toFixed(1), satir + filtre + kayit, elde(i), devir(i)]))); // --- Adres alani cakismasi: eslemenin geri alinamayan kalemi --------------------- // Yedi agin bloklari kurgudur, hepsi ozel araliktadir; adres aritmetigi gercektir. const toInt = (ip) => ip.split(".").reduce((a, o) => a * 256 + Number(o), 0); const blok = (c) => { const [ip, e] = c.split("/"); const b = 2 ** (32 - Number(e)); const bas = Math.floor(toInt(ip) / b) * b; return { bas, son: bas + b - 1 }; }; const kesisir = (a, b) => a.bas <= b.son && b.bas <= a.son; const AG = [["olcum-toplayici", "10.42.0.0/20"], ["veri-ambari", "10.42.16.0/20"], ["ortak-dogrulama", "10.0.0.0/16"], ["saha-birimi", "10.0.0.0/16"], ["is-ortagi-a", "172.31.0.0/16"], ["is-ortagi-b", "172.31.0.0/16"], ["arsiv", "10.42.0.0/16"]].map(([ad, c]) => ({ ad, c, ...blok(c) })); const CIFT = AG.flatMap((a, i) => AG.slice(i + 1).map((b) => [a, b])); const CAKISAN = CIFT.filter(([a, b]) => kesisir(a, b)); const YENIDEN = []; // acgozlu: en cok cakisan ag once tasinir for (let kalan = [...CAKISAN]; kalan.length; ) { const sayac = new Map(); for (const [a, b] of kalan) for (const x of [a, b]) sayac.set(x, (sayac.get(x) ?? 0) + 1); const en = [...sayac.entries()].sort((p, q) => q[1] - p[1] || AG.indexOf(p[0]) - AG.indexOf(q[0]))[0][0]; YENIDEN.push(en); kalan = kalan.filter(([a, b]) => a !== en && b !== en); } const YENIDEN_BIRIM = 1604; // girdi: bu konunun ilk dersinden const A = [18, 17, 17, 10, 20]; const yaz2 = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](A[i])).join(""); console.log("\n" + yaz2(["ag", "blok", "eslenebilen ag", "cakisan", "yeniden adreslenir"])); for (const a of AG) { const c = AG.filter((b) => b !== a && kesisir(a, b)).length; console.log(yaz2([a.ad, a.c, AG.length - 1 - c, c, YENIDEN.includes(a) ? "evet" : "hayir"])); } console.log(`\ncift ${CIFT.length}; esleme ${CIFT.length - CAKISAN.length}/${CIFT.length}, ` + `ozel baglanti ${CIFT.length}/${CIFT.length} (adres alani gorunmez)`); console.log(`yeniden adreslenecek ag: ${YENIDEN.length} (${YENIDEN.map((x) => x.ad).join(", ")}) ` + `= ${YENIDEN.length * YENIDEN_BIRIM} birim`); // --- Geciskenlik yok: N ag icin esleme sayisi ----------------------------------- // Bir esleme yalniz iki ucunu birbirine ulastirir; ulasan cift = dogrudan kenar sayisi. const GECIS_SABIT = 120, GECIS_BAGLANTI = 30; // kurgu birim const G = [6, 14, 15, 12, 11, 15, 13, 12]; const yaz3 = (h) => h.map((d, i) => String(d)[i ? "padStart" : "padEnd"](G[i])).join(""); console.log("\n" + yaz3(["ag", "gereken cift", "yildiz ulasan", "tam esleme", "tam satir", "gecis baglanti", "gecis satir", "birim/cift"])); for (const n of [3, 4, 6, 8, 12]) { const cift = (n * (n - 1)) / 2, ucret = GECIS_SABIT + GECIS_BAGLANTI * n; console.log(yaz3([n, cift, n - 1, cift, n * (n - 1) * TABLO, n, (TABLO + 1) * n, (ucret / cift).toFixed(1)])); }
yol erisilebilen kalem gecikme(ms) donemlik birim kural+satir elde devredilen genel uc 1 14 48.0 3 5 1 esleme 384 2 24.0 7 6 0 ozel baglanti 1 3 49.0 1 2 4 ag blok eslenebilen ag cakisan yeniden adreslenir olcum-toplayici 10.42.0.0/20 5 1 hayir veri-ambari 10.42.16.0/20 5 1 hayir ortak-dogrulama 10.0.0.0/16 5 1 evet saha-birimi 10.0.0.0/16 5 1 hayir is-ortagi-a 172.31.0.0/16 5 1 evet is-ortagi-b 172.31.0.0/16 5 1 hayir arsiv 10.42.0.0/16 4 2 evet cift 21; esleme 17/21, ozel baglanti 21/21 (adres alani gorunmez) yeniden adreslenecek ag: 3 (arsiv, ortak-dogrulama, is-ortagi-a) = 4812 birim ag gereken cift yildiz ulasan tam esleme tam satir gecis baglanti gecis satir birim/cift 3 3 2 3 30 3 18 70.0 4 6 3 6 60 4 24 40.0 6 15 5 15 150 6 36 20.0 8 28 7 28 280 8 48 12.9 12 66 11 66 660 12 72 7.3
Üç Yolun Faturası
Birinci tablonun ikinci sütunu bu dersin ana ölçüsüdür: bağlantı kurulduktan sonra kaç kalem erişilebilir hale geliyor.
Genel uçta bu sayı birdir — karşı tarafın yayımladığı tek uç. Özel bağlantıda da birdir. Eşlemede üç yüz seksen dört: doksan altı örneğin dört kapısı. Eşleme bir hizmeti değil, bir ağı bağlar; hangi hizmete erişileceği artık yönlendirmenin değil, filtre kurallarının işidir.
Fatura sütunu beklenmedik. Eşleme en ucuzudur — yirmi dört birim — çünkü genel çıkış ücreti yerine ağlar arası ücret yazılır. Genel uç kırk sekiz birim. Özel bağlantı kırk dokuz birim ile en pahalısıdır: hacim ücreti eşlemeyle aynıdır, üstüne ucun kirası biner. Üç sayı yan yana okunduğunda düzen çıkıyor: en ucuz yol en geniş yüzeyi açan yoldur. Aradaki yirmi beş birim, üç yüz seksen üç kalemin kapatılma fiyatıdır.
Kural sayısı da aynı yöne bakıyor. Eşleme yedi kalem yazdırıyor: beş tablonun her birine bir satır ve iki filtre kuralı. Beş satırın hepsi aynı satırdır; dördünü yazıp birini atlamak bir alanın trafiğini sessizce başka yola düşürür. Özel bağlantı tek kalem yazdırıyor.
Devredilen Karar
Son iki sütun kursun kendi ölçüsüdür. Genel uçta sekiz karar kaleminden beşi elde, biri karşı taraftadır; sağlayıcıya devredilen kalem yoktur. Eşlemede altı kalem elde, devredilen sıfırdır. Eşleme hiçbir kararı devretmez — hangi aralığa yol yazılacağı, trafiğin yönü, ad çözümlemesi, filtreler ve adres alanlarının çakışmaması, hepsi iki tarafın ortak işidir.
Özel bağlantı bunun tersidir: iki kalem elde, dört kalem sağlayıcıda. Yol yazılmaz — uç senin bir alt ağında adres alır ve yerel yol onu zaten kapsar. Hangi hizmete erişileceği seçilmez; uç tek bir hizmete bağlıdır. Yön de seçilmez: bağlantı tek yönlüdür, karşı taraf sana bağlanamaz.
Elde kalan iki kalem filtre kuralları ile ucun hangi alt ağa yerleşeceğidir. İkincisi bu dersin küçük tuzağıdır: uç bir alt ağda oturur, onun adresini tüketir ve alt ağ sınırı önceki bir dersin geri alınamayan kalemidir. Devir bir kayıp değil takastır: dört kalem gitti, karşılığında üç yüz seksen üç erişilebilir kalem ve beş yönlendirme satırı gitti.
Adres Alanı Çakışması
İkinci tablo eşlemenin geri alınamayan kalemini ölçüyor ve bu kursun ilk dersine bağlanıyor.
İki ağ eşlenebilmek için adres alanlarının çakışmaması gerekir. Çakışırlarsa aynı adres iki ayrı makineye karşılık gelir ve yönlendirme kararı verilemez. Yedi ağlık kurgu planda yirmi bir çift var ve dördü eşlenemiyor.
Nedeni tabloda okunuyor. ortak-dogrulama ile saha-birimi aynı bloğu yazmış; is-ortagi-a ile
is-ortagi-b de öyle. Bunlar hata değil, varsayılan: iki ayrı ekip birbirinden habersiz aynı
başlangıç değerini bırakmış. Dördüncü çakışma başka türlü: arsiv bloğunu bir basamak geniş
yazmış ve kendi kurumundaki iki ağı içine almış — tek başına iki çift kaybettiriyor.
Çözüm yönlendirmede değildir. Eşleme reddedilir, hiçbir kural onu kabul ettiremez; yapılabilecek tek şey bir tarafı yeniden adreslemektir. Model dört çakışmayı kapatmak için üç ağ çıkarıyor: dört bin sekiz yüz on iki kurgu birim. Hangi tarafın taşınacağı ayrı bir karardır; ortak bir doğrulama servisini taşımak, bir saha birimini taşımaktan başka bir iştir.
Son satır asıl karşılaştırmayı veriyor. Özel bağlantı yirmi bir çiftin yirmi birini bağlıyor. Adres alanları hâlâ çakışıyor ama önemi kalmıyor: uç senin alt ağında kendi adresini alır ve karşı ağın alanı sana hiç görünmez. Dört kalemlik devrin karşılığında alınan asıl şey budur.
Geçişliliğin Olmaması
Üçüncü tablo eşlemenin ikinci sınırını sayıyor. Bir eşleme yalnız iki ucunu birbirine ulaştırır: A ile B eşliyse ve B ile C eşliyse, A ile C konuşamaz. Ortadaki ağ bir yol değildir.
Yıldız sütunu bunun sonucudur. Altı ağı merkezî bir ağa bağlamak beş eşleme ister ve beş çift ulaşır — oysa gereken on beş çifttir. Kurulum bittiğinde her ağ bir yere bağlıdır ve çiftlerin üçte ikisi birbirini bulamaz.
Tam ağ eşlemesi bunu çözer ve karesel büyür. Altı ağ için on beş eşleme ve yüz elli yönlendirme satırı; on iki ağ için altmış altı eşleme ve altı yüz altmış satır. Satır sayısı beş tabloyla çarpılıyor, çünkü her ağın kendi tabloları var.
Merkezî geçiş katmanı sayıyı doğrusal yapıyor: on iki ağ için on iki bağlantı, yetmiş iki satır ve aynı altmış altı çift. Bedeli son sütunda ve ölçek büyüdükçe düşüyor: üç ağda çift başına yetmiş birim, on iki ağda yedi virgül üç birim.
Özet
- Eşleme erişilebilir kalemi bire karşı üç yüz seksen dörde çıkarıyor ve yirmi dört birimle en ucuz yol; özel bağlantı kalemi birde tutuyor ve kırk dokuz birimle en pahalısı. Aradaki yirmi beş birim, üç yüz seksen üç kalemin kapatılma fiyatıdır.
- Eşleme hiçbir kararı devretmiyor (altı kalem elde, sıfır devir); özel bağlantı dört kalemi sağlayıcıya veriyor ve elde iki kalem bırakıyor — filtre kuralları ile ucun yerleştiği alt ağ.
- Yedi ağlık planda yirmi bir çiftin dördü adres çakışması yüzünden eşlenemiyor; düzeltmesi üç ağın yeniden adreslenmesi, dört bin sekiz yüz on iki kurgu birim. Özel bağlantı aynı planda yirmi bir çiftin yirmi birini bağlıyor.
- Eşleme geçişli olmadığı için yıldız düzeninde altı ağdan yalnız beş çift ulaşıyor; on iki ağda tam ağ eşlemesi altı yüz altmış yönlendirme satırı isterken merkezî geçiş katmanı yetmiş iki satırla aynı altmış altı çifti bağlıyor.
Kurs Kapanışı
| Ders | Elde kalan karar | Geri alınamayan kalem | Açtığı yüzey ya da bedeli |
|---|---|---|---|
| Sanal makine örnekleri | 6/11 kalem, aile ve boyut | 3 kalem: mimari, alt ağ, şifreleme | 5,3 saat filo yenileme |
| Makine imajları | 6/9 kalem, gömme düzeyi | 3 kalem: yayımlanmış imaj, gömülü sır | 1.161 dakika pişirici |
| Kalıcı ve kesintili kapasite | 5/9 kalem, iş türü eşlemesi | 3 kalem: kaydedilmemiş iş | 2,40 kat süre |
| Başlatma şablonları | 5/8 kalem, alan varsayılanları | 6 alan: imaj, alt ağ, betik | 11/12 alan geçersiz kılınır |
| Otomatik ölçekleme grupları | 6/9 kalem, eşik ve soğuma | 3 kalem: sağlıksız damgası | günde 276 başlatma |
| Yönetilen konteyner servisleri | 3/15 kalem, görev ölçeklemesi | 3 kalem: görev tanımı sürümü | 234 saat çıkış |
| Sanal özel ağ | 8/12 kalem, önek uzunluğu | 2 kalem: blok ve yeri | 1.604 birim yeniden kurma |
| Alt ağlar | 5 kalem, dilim boyu ve alan | 1 kalem: alt ağ sınırı | 6 bileşen, 5 tablo |
| Yönlendirme tabloları | 3 kalem, kural genişliği | 490 hacim birimi, yutulan ölçüm | 266 birim yanlış çıkış |
| İnternet ve dönüştürme geçitleri | 4 kalem, geçit sayısı ve yeri | 1.848 dış kayıt | %101 bağlantı doluluğu |
| Güvenlik grupları ve erişim listeleri | 4 kalem, mekanizma ve sıra | çift kaydedilen ölçüm | 9 kural, 2 kaçan akış |
| Yük dengeleyiciler | 9 kalem, katman ve eşik | 1 kalem: dengeleyici katmanı | 7 sonlandırma noktası |
| Kalıcı adres ve ad tümleştirmesi | 6 kalem, adres düzeni | bırakılmış adres | 4.875 istek yabancıya |
| İçerik dağıtım ağı | 9/15 kalem, önbellek anahtarı | yayımlanmış yanıt | 3.600 saniye istemcide |
| Özel bağlantı ve eşleme | 6 kalem eşlemede, 2 özel bağlantıda | adres alanı çakışması | 384 erişilebilir kalem |
İkinci sütun bu kursun kuralını yazıyor: kiralanan katmanda bile kararların bir bölümü sende kalır; bunların hangisinin geri alınamadığını bilmek kiralama kararından daha çok belirler. Devir oranı en yüksek derste bile üç kalem elde kaldı ve yanında üç geri alınamayan kalem durdu.
Üçüncü sütun dört kümeye toplanıyor. Adres alanı ve sınırı dört derste: bloğun kendisi, alt ağ sınırı, örneğin yerleştiği alt ağ ve eşlemeyi engelleyen çakışma. Yaratılışta sabitlenen tanım dört derste: yayımlanmış imaj, başlangıç betiği, görev tanımı sürümü, dengeleyicinin katmanı. Dışarıya çıkmış iz üç derste: geçidin dış kayıtları, bırakılmış adres, yayımlanmış yanıt — üçü de senin denetiminde olmayan bir yerde yaşıyor. Kaybolan ya da tekrarlanan iş dört derste: kesilen örneğin kaydedilmemiş işi, sonlandırılan örneğin elindekiler, yutulan ölçüm, çift kayıt.
Dört kümenin hiçbiri fatura satırı değildir. On beş dersin hiçbirinde geri alınamayan kalem bir uyarı üretmedi; hepsi kurulum günü sessizce yazıldı, bedeli dönemler sonra ölçüldü.
Makine kiralandı, ölçeklendi ve kısmen devredildi; ağ bölündü, yönlendirildi, filtrelendi, dengelendi ve kenara taşındı. Üstlerinde koşan şeyin verisi ise hâlâ hiçbir yerde durmuyor; ölçüm kayıtları ve gecelik özetler bu kursta yalnız trafik olarak geçti. M23/K03 Bulutta Depolama ve Veri o veriyi ele alır ve aynı soruyu sorar: veri kiralandığında hangi karar devrediliyor, hangi kalem yazıldıktan sonra bir daha değişmiyor?
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.