Bölüm 42:Alanlar Arası Yönlendirme
Ağlar'a “Sen”i Katmak yazısının parçası: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine kadar inen uzun bir teknik yolculuk.
Tüm bölümler
- Giriş
- Adres Çubuğundan İsteğe
- Paket Anahtarlamalı Yol
- İsimden Adrese
- Önbellek, Tazelik ve Güven
- Port Numarası ve Soket
- Bağlantısız Taşıma: UDP
- Üç Adımlı El Sıkışma
- Simetrik Şifreleme
- Açık Anahtarlı Kriptografi
- TLS El Sıkışması
- Sertifika Zinciri
- HTTP Mesajının Anatomisi
- Durum, Çerez ve Oturum
- HTTP/2'den HTTP/3'e
- İçerik Dağıtım Ağları
- Diğer Uygulama Protokolleri
- Katmanlı Mimari
- Kapsülleme ve Başlıklar
- Paket Yakalama ve Çözümleme
- Ağ Arayüz Kartı
- Fiziksel Adresleme
- Hata Sezme ve CRC
- Adres Çözümleme: ARP
- Anahtarlama ve Ortam Erişimi
- Ağ Topolojileri
- Sanal Yerel Ağlar
- Kablosuz Erişim: 802.11
- Radyo Kanalı ve Kapasite
- Kablosuz Ağ Güvenliği
- Hücresel Ağlar
- Spektrum ve Kuşaklar
- Hareketlilik ve Aktarma
- Adres Kiralama: DHCP
- Adresin Anatomisi
- Adres Tükenmesi ve IPv6
- Yönlendirici Mimarisi
- Kuyruk Yönetimi
- Cihaz Yapılandırma
- Yönlendirme Protokolleri
- Kontrol Düzlemi ve SDN
- Ağ İzleme ve Yönetimi
- Alanlar Arası Yönlendirme
- Adres Çevirisi
- Ara Kutular
- Tünelleme ve IPsec
- Güvenlik Duvarları
- Operatör ve Metro Ağları
- Bitten Sinyale
- Çoklama Teknikleri
- İletim Ortamları
- Kablo Sonlandırma
- Fiber Optik İletim
- Bakır Erişim Ağı: DSL
- Pasif Optik Ağlar
- Kablo Erişim Ağları
- Denizaltı Kabloları
- Veri Merkezi Ağları
- Kapsülleme Çözme
- Güvenilir Aktarım
- Tıkanıklık Denetimi
- Trafik Çözümleme
- Gecikme Bütçesi
- Son Söz
Bir ağın içinde herkes aynı yönetime bakıyordu; güven de oradan geliyordu. Sınırın ötesinde ikisi de yok, kimsenin elinde bütün ağın haritası da yok.
Yine de paket yolunu buluyor. Peki tam haritayı kimsenin görmediği bir yerde o yol nasıl seçiliyor?
Sınırı çizen şey coğrafya mı?
Şimdiye kadar anlattığım yönlendirme iki varsayıma yaslanıyordu. Bütün yönlendiriciler birbirinin aynı, ve ağ düz bir yüzey. İkisi de gerçek değil.
Düzlüğün bedelini hemen görürsün. Her yönlendirici herkesle tablo alışverişi yapsaydı o alışverişin kendisi hatları doldurur ve veri paketine yer kalmazdı. Ölçek sorununun asıl yüzü de burası.
İkinci kırılma noktası ölçekle ilgili değil. Her ağ yöneticisi kendi ağındaki yönlendirmeyi kendi denetlemek ister ve kimseye hesap vermek istemez.
İnternetin cevabı yönlendiricileri bölgelere toplamak oldu. Bu bölgeye otonom sistem deniyor; aynı yapının bir adı da alan (domain). Otonom sistem, tek bir kuruluşun yönettiği yönlendiriciler ve ağlar kümesi; çoğu zaman o kuruluş bir servis sağlayıcı oluyor. Sınırı coğrafya çizmiyor, yönetim çiziyor.
İki şartı var. Birincisi içeri bakar: bir otonom sistem kendi içinde bağlı olmak zorundadır, yani içindeki herhangi iki düğüm arasında en az bir yol bulunur. İkincisi dışarı bakar. İçeride birden çok iç protokol ve birden çok metrik koşsa bile, dışarıya tek ve tutarlı bir yönlendirme planı gösterilir.
Eski tanım daha katıydı: bir otonom sistemin bütün yönlendiricileri tek bir iç protokol koşardı. Şart zamanla dışarıya bakan yüze taşındı. Bugün iç protokolü her otonom sistem kendi seçer, komşusu bambaşkasını koşar ve kimse kimseye sormaz. Bağlantı durumu ile uzaklık vektörü aynı ağda yakınsıyordu; o karar sınırın içinde kalır.
Dış protokolde serbestlik yok: iki otonom sistem konuşacaksa aynı dış protokolü koşmak zorundadır. İnternette o protokol tek: BGP. Dördüncü sürümü RFC 4271’de tanımlı ve otonom sistemler arası fiili standart.
Sınırda duran cihaza geçit yönlendirici denir. Başka otonom sistemlerdeki yönlendiricilere doğrudan hattı vardır.

Sınırda ne konuşuluyor?
BGP oturumu iki yönlendirici arasında yarı kalıcı bir TCP bağlantısıdır. Bir kez kurulur, sürekli açık tutulur ve bütün ilanlar bu tek borudan akar. Dinleyen taraf 179 numaralı TCP portunu açar. Taşıma olarak TCP kullandığı için parçalama, yeniden iletim, onay ve sıralama BGP’nin işi olmaz.
Oturum fiziksel bir hatla birebir örtüşmez: iki uç arasında doğrudan kablo olmayabilir. Üstünden dört mesaj geçer.
| mesaj | ne yapar |
|---|---|
OPEN | oturumu açar ve karşı tarafı doğrular |
UPDATE | yeni yol ilan eder ya da eskisini geri çeker |
KEEPALIVE | sessizlikte bağlantıyı canlı tutar |
NOTIFICATION | hatayı bildirir ve oturumu kapatır |
Dördünün de başı aynı. BGP başlığı 19 bayttır: 16 baytlık Marker, 2 baytlık Length, 1 baytlık Type. Bir mesaj en çok 4.096 bayt olabilir, en kısa UPDATE ise 23 bayt. KEEPALIVE yalnızca başlıktan ibarettir, yani 19 bayt.
Marker alanı bir zamanlar kimlik doğrulama taşıyordu. Bugün yalnızca geriye uyumluluk için duruyor ve tamamı bir yapılmak zorunda.
Canlılığı iki zamanlayıcı yönetir. Hold Time ya sıfır olacak ya da en az 3 saniye; iki taraf OPEN mesajında kendi değerini önerir ve küçük olan kazanır. Önerilen varsayılan 90 saniyedir. KEEPALIVE aralığı bunun üçte biri, yani 30 saniye. Oturum düşmeden önce üç mesajlık pay kalıyor. Alt sınır da konmuş: KEEPALIVE saniyede birden sık gönderilemez.
Hold Time dolarsa oturum düşer ve o komşudan öğrenilen bütün yollar tablodan silinir. Kopan oturumu yeniden kurmak için önerilen bekleme 120 saniyedir.
İlanın kendisi de bir ritme bağlı. Aynı öneke ait iki ilan arasında dışarıya doğru en az 30 saniye, kendi sınırının içinde 5 saniye bırakılır. Bir hat saniyede on kez inip kalksa bile bu titreme komşuya aktarılmaz.
BGP’nin iki yüzü var. Komşu otonom sistemlerden erişilebilirlik bilgisi almak eBGP’nin işi; o bilgiyi kendi sınırının içine yaymak iBGP’nin. Geçit yönlendiriciler ikisini birlikte koşar.
Böyle bir yönlendirici üç ayrı tablo tutar: komşuluk tablosu, bütün komşulardan gelen yolların biriktiği BGP tablosu ve elemeden sonra kalanların yazıldığı IP yönlendirme tablosu. Yönlendirme tablosu en uzun önek eşleşmesiyle okunuyordu; BGP oraya yalnızca kazanan satırı yazar. Satırın önündeki harf kaynağını söyler: doğrudan bağlı ağ C, elle yazılan satır S, BGP’den öğrenilen yol B.
İlan edilen şey mesafe mi, güzergâh mı?
BGP bir yol vektörü protokolüdür ve adı tam olarak ne gönderdiğini söyler. Komşuya mesafe sayısı değil, geçilen otonom sistemlerin listesi gider. İlan edilen şey çıplak bir önek de olmuyor: önek artı öznitelikler gidiyor ve ikisi birlikte yol diye anılıyor. Belirleyici iki öznitelik var: güzergâhı taşıyan AS_PATH ve sonraki durağı veren NEXT_HOP.
AS_PATH somut olarak numaralardan oluşan bir dizidir. İlan dışarıya çıkarken yönlendirici kendi AS numarasını listenin başına ekler. Liste böylece yolun kendisi olur.
Döngü denetimi tek satırlık bir iş. Yönlendirici gelen yolun listesini tarar ve kendi numarasını görürse o yolu eler. Yol vektörünün uzaklık vektörüne üstünlüğü tam olarak burası. Tek bir AS_SEQUENCE parçasına en çok 255 otonom sistem sığar, taşarsa yeni bir parça açılır.
Bir ilan teknik bir bilgi değil, bir söz. İlan eden taraf o öneke giden paketleri hedefe doğru ileteceğine söz verir. İlanı geri çekmek bu sözü geri almaktır.
Sözün kapsamı genişletilebilir. Bir otonom sistem ilanında önekleri birleştirir, komşuya tek satır göndererek onlarca alt ağı kapsar ve genel tablo bu sayede şişmez.
Numaranın kendisi de bir kez dara düştü. Temel tanımda AS numarası 2 baytlıktı; tükeneceği görülünce 4 bayta çıkarıldı. Eski yazılımlar yeni numaraları okuyamadığı için 23456 numarası AS_TRANS adıyla ayrıldı ve gerçek bilgi AS4_PATH ile AS4_AGGREGATOR özniteliklerine taşındı. Kazanç büyük: 65.536 numaralık uzay 4.294.967.296’ya çıktı.
En kısa yol neden her zaman kazanmıyor?
İlanı alan geçit yönlendirici onu bir alma politikasından geçirir ve yolu kabul ya da reddeder. Politika tek bir otonom sistemi tümüyle dışlayabilir: onun üstünden geçen her yol elenir. Aynı politika o yolun komşulara ilan edilip edilmeyeceğine de karar verir.
Aynı hedefe birden çok yol öğrenildiğinde eleme sırası sabittir.
- Yerel tercih değeri — saf politika kararı, sayıyı yönetici koyar.
- En kısa AS_PATH — listedeki durak sayısı.
- En yakın NEXT_HOP — iç maliyeti en düşük çıkış.
- Kalan ölçütler — yukarıdakiler eşit çıkarsa bakılır.
Yerel tercihe AS_PATH’ten önce bakıldığı için politika kısa yolu geçersiz kılabilir.
Vakayı kuralım. 203.0.113.0/24 önekini AS 64500 ilan ediyor. Karar veren geçide bu önek iki yoldan geliyor: AS 64501’den gelen yolun AS_PATH uzunluğu 2, AS 64502 ile AS 64503 üstünden gelenin 3. Yerel tercih eşitse kısa olan seçilir. Ama AS 64502’den gelen yola daha yüksek bir yerel tercih verilirse uzun yol kazanır. Paket üç otonom sistem atlayarak gider.
Aynı önek için gelen ilanların hangi ölçütle elendiğini izleyelim:
- Önek tek yerden doğuyor. 203.0.113.0/24 önekinin sahibi AS 64500 ve ilanı o başlatıyor. İlan sınırdan çıkıp komşulara yayılıyor, karar veren geçide iki ayrı yoldan ulaşıyor.
- Üstteki liste iki durak. AS 64501 doğrudan komşu. İlan geçide vardığında AS_PATH listesinde iki numara var, çünkü yolu her geçen otonom sistem kendi numarasını listenin başına ekliyor.
- Alttaki liste üç durak. Aynı önek AS 64502 ile AS 64503 üzerinden de geliyor. Aynı hedef, aynı ilan, daha uzun liste. Geçidin BGP tablosunda artık iki aday duruyor.
- Eşitlikte kısa liste kazanır. İki yolun yerel tercihi eşitse eleme ikinci ölçüte iniyor ve AS_PATH uzunluğuna bakılıyor. İki duraklı yol seçiliyor, üç duraklı olan tabloya hiç yazılmıyor.
- Yerel tercih uzun yolu seçer. Yönetici alt yola daha yüksek bir yerel tercih verirse eleme birinci ölçütte biter. Uzunluk hiç sorulmaz ve paket üç otonom sistem atlayarak gider.
Seçim bittiğinde bir soru kalıyor: paket kendi ağından hangi kapıdan çıkacak? Sıcak patates yönlendirmesi aynı hedefe birden çok çıkış varsa iç maliyeti en düşük geçidi seçer. Kaç otonom sistem atlanacağı hesaba hiç katılmaz. AS 64500’ün iç maliyeti 30 ve 45 olan iki çıkışı varsa ucuz olan kazanır, toplam uçtan uca yol daha uzun olsa bile.
DerinleşmeBir yol neden teknik değil ticari gerekçeyle seçiliyor?
Bir otonom sistemin komşularına hangi hedefleri ilan edeceği bir politika kararıdır ve gerekçesi çoğu zaman teknik olmaz.
Tipik örüntü şu. Bir servis sağlayıcı kendi müşteri ağlarına giden ve onlardan gelen trafiği taşımak ister. Başka sağlayıcılar arasında geçiş trafiği taşımak istemez, çünkü o trafikten geliri yoktur. Uygulaması sessizdir: taşımak istemediği trafiğin yolunu komşusuna hiç ilan etmez. İlan edilmeyen yol komşunun haritasında hiç var olmaz, dolayısıyla o yönde tek paket bile gelmez.
Aynı hamleyi küçük ağ da yapar. İki sağlayıcıya birden bağlı bir ağ, ikisi arasında ücretsiz geçit olmayı reddedebilir; yöntem bir sağlayıcıya diğerine giden yolu hiç ilan etmemektir.
Merkezde iyi bağlanmış az sayıda büyük ağ duruyor: ulusal ve uluslararası kapsamı olan birinci kademe sağlayıcılar. Rakipler birbirine internet değişim noktalarında ve eşleme hatlarında bağlanıyor. Sağlayıcı ile otonom sistem de birebir aynı şey sayılmaz: bazı birinci kademe sağlayıcılar bütün ağı için tek otonom sistem kullanır, bazıları ağını onlarca birbirine bağlı otonom sisteme böler. İçerik sağlayıcılar ise kendi özel ağlarını kurup veri merkezlerini internete bağlıyor ve çoğu zaman birinci kademe ile bölgesel sağlayıcıları tümüyle atlıyor.
İlana kim kefil?
BGP’nin bilinen açığı şu: bir öneki ilan eden otonom sistemin gerçekten yetkili olup olmadığı protokolün kendisinde denetlenmiyor.
Bedeli 1997’de görüldü. Küçük bir servis sağlayıcıdaki arızalı bir yönlendirici ulusal omurga yönlendiricilerine hatalı yönlendirme bilgisi verdi. Diğerleri trafiği o cihazın üstüne boğdu ve internetin büyük bölümleri birkaç saate varan sürelerle koptu.
Aradan geçen yıllar bu mekanizmayı hiç değiştirmedi. AS 64510, kendisine ait olmayan 203.0.113.0/24 alanını 203.0.113.0/25 ve 203.0.113.128/25 diye ikiye bölüp ilan ediyor. En uzun önek eşleşmesi yüzünden bu iki satır, /24 satırını her yerde yeniyor ve trafik sorgulanmadan yön değiştiriyor. Bu işe rota kaçırma deniyor.
Önek kaynağı doğrulaması boşluğu kapatmak için sonradan eklendi ve RFC 6811’de tanımlı. Her yola üç durumdan biri veriliyor: kayıt yoksa NotFound, kayıt varsa ve ilan eden uyuyorsa Valid, kayıt varsa ama ilan eden uymuyorsa Invalid.
İşletme tarafında iki ucuz savunma daha var. Birincisi bir sayaç. Bir komşudan kabul edilecek yol sayısına tavan konur; komşu bir anda bütün tabloyu ilan etmeye kalkarsa oturum kapanır ve hata yayılmadan durur. İkincisi oturumun kendisini korur: paketler TTL 255 ile gönderilir ve alıcı tam 255 bekler, çünkü uzaktaki biri bu değeri üretemez.
Aynı öneki birden çok yerden ilan etmenin meşru bir kullanımı da var. İçerik dağıtım ağı aynı içeriği birden çok kenar sunucudan sunuyordu; anycast’in yönlendirme tarafını buraya bırakmıştım. O ilanı taşıyan şey BGP. Kendi ağının içindeki anycast’ten farkı denetimde: küresel ölçekte yönlendirme sistemi başkalarının elinde. Hangi düğümün hizmet vereceğine o sistem karar verir, ölçüt de isteğin ağın hangi noktasından doğduğudur. Sunucu seçimi uygulama katmanında yapılmaz, yol seçiminin yan ürünü olarak çıkar.
Böylece omurga sorularından üçüncüsünü kapatabiliriz.
Omurga sorusu 3 — Kimsenin yolun tamamını bilmediği bir ağda paket yolunu nasıl buluyor?
Yolu tek parça hâlinde gören kimse yok. Her otonom sistem yalnızca komşusunun ilettiği güzergâh listesini biliyor ve kendi payına düşen tek adımı seçiyor. Bütün yol, o tek adımlık kararların uç uca eklenmesinden çıkıyor.
Bir öneki kimin ilan ettiğini kendi makinenden sorabilirsin.
curl -s 'https://stat.ripe.net/data/prefix-overview/data.json?resource=1.1.1.0/24'Cevaptaki iki alan yetiyor.
"announced": true
"asns": [ { "asn": 13335, ... } ]Birincisi önekin şu anda ilan edildiğini, ikincisi ilan edenin kim olduğunu söylüyor.
Özet
Peki, ne öğrendik?
- Otonom sistem bir yönetim sınırıdır: tek bir kuruluşun elindeki yönlendirici ve ağ kümesidir, kendi içinde bağlıdır ve dışarıya tek bir yönlendirme planı gösterir.
- BGP oturumu tek borudur: 179 numaralı portta yarı kalıcı bir TCP bağlantısı kurulur, dört mesaj hep oradan geçer ve sessizliği KEEPALIVE doldurur.
- Yol vektörü güzergâhı taşır: komşuya bir maliyet sayısı gitmediği için döngü denetimi listede kendi numaranı aramaya iner.
- Politika kısa yolu ezebilir: yerel tercihe AS_PATH’ten önce bakılır, çıkış kapısını da sıcak patates seçer.
- İlan kendiliğinden denetlenmez: protokol ilan edenin yetkisini sormaz, o boşluğu kaynak doğrulaması ile yol sayacı sonradan kapatır.
Paket sınırdan çıktı ve yolunu kimsenin tek başına çizmediği bir haritada buldu. Geri dönecek cevabın da bir adrese ihtiyacı var. Peki paket eve dönerken kendi adresini nasıl bulacak?
43. bölüme devam et: Adres Çevirisi