27 puan yazan GN⁺ 2025-11-09 | 1 yorum | WhatsApp'ta paylaş
  • Kullanıcının paketinin internet üzerinden web sitesi sunucusuna ulaşırken izlediği yolu gerçek zamanlı olarak görselleştiren interaktif bir sayfa
  • Özel olarak geliştirilen ktr adlı traceroute programı, ICMP paketlerinin TTL değerini kullanarak her ağ atlamasına ilişkin bilgileri topluyor
  • Web sitesi JavaScript olmadan da çalışıyor; sunucu traceroute sonuçlarını akış halinde HTML'e yansıtıyor
  • Yol analizi için WHOIS ve PeeringDB verileri kullanılarak her IP'nin ait olduğu otonom sistem (AS) ve şirket bilgileri gösteriliyor
  • traceroute ile BGP tabanlı internet yapısını birleştirerek internetin, şirketler arasındaki peering ilişkileriyle kurulu ağlar topluluğu olduğunu gösteriyor

Paketinizin geçtiği yolculuk

  • Sayfanın üst kısmındaki traceroute, kullanıcının bilgisayarından sunucuya kadar olan paket hareket yolunu gösteriyor
    • Sırasıyla router, ISP, Amazon, NTT Global IP Network, Hetzner gibi ağlardan geçiyor
    • Bazı bölümler “(no response)” olarak görünüyor; bunun nedeni yanıt vermeyen sunucular
  • Hetzner ağı içinde birden fazla router'dan geçerek son sunucuya ulaşıyor
  • 213.239.252.10 IP adresi, ters DNS sorgusu ile core0.fra.hetzner.com olarak gösteriliyor

Perde Arkası

  • Web sitesi, kullanıcı isteğini aldığında sunucuda traceroute çalıştırıyor ve sonuçları gerçek zamanlı gönderiyor
  • traceroute, ICMP protokolünü kullanıyor ve TTL (Time To Live) değerini her seferinde 1 artırarak her atlamadan gelen yanıtları topluyor
  • TTL 0 olduğunda ilgili router bir hata mesajı döndürüyor; böylece paketin geçtiği yol izlenebiliyor
  • ktr, traceroute sonuçlarını akış halinde aktarırken her atlamanın IP, ASN ve sahip ağ bilgilerini de eşzamanlı sorguluyor

Frontend Eğlencesi

  • JavaScript olmadan da çalışıyor; tarayıcı bunu yalnızca yavaş yüklenen bir sayfa gibi algılıyor
  • Sunucu, HTTP bağlantısını açık tutarak traceroute sonuçlarını sırayla HTML içine ekliyor
  • Her güncellemede CSS blokları ekleyip önceki sonuçları gizleme yöntemiyle gerçek zamanlı yenilenme etkisi oluşturuluyor
Reklam

Önden Arkaya, Arkadan Öne

  • Aslında sunucudan kullanıcının IP'sine traceroute çalıştırılıyor ve sonuçlar ters sırada gösteriliyor
  • Bu, bir “reverse traceroute”; iki yönlü yol tamamen aynı olmasa da genellikle benzer bir rota gösteriyor

Ağlar ve otonom sistemler (AS)

  • İnternet, otonom sistem (Autonomous System, AS) adı verilen şirket düzeyindeki ağların birbirine bağlı yapısı
  • Her AS'nin benzersiz bir ASN (Autonomous System Number) değeri var ve karşılıklı peering ile trafik değiş tokuşu yapıyorlar
  • İnternet, bireylerin değil şirketlerin sahip olduğu ağların toplamı; bağlantılar mali sözleşmeler ve idari süreçler tarafından belirleniyor
  • ASN, 5 bölgesel internet kayıt kuruluşundan (RIR) biri üzerinden başvurularak alınabiliyor

WHOIS ve PeeringDB

  • traceroute içindeki her IP'nin hangi AS'ye ait olduğunu bulmak için WHOIS protokolü ve PeeringDB veritabanı kullanılıyor
  • WHOIS, TCP bağlantısı kurulduktan sonra sorgu gönderildiğinde sunucunun bilgi döndürdüğü basit bir yapıya sahip
  • Sunucudan sunucuya alan adları ve biçimler değiştiği için, parser insanın okuma biçimine yakın basit bir simülatör olarak uygulanmış
  • PeeringDB, tüm AS'lerin yaklaşık üçte biri için şirket bilgisi sağlıyor

BGP (Border Gateway Protocol)

  • BGP, internetin şeklini belirleyen temel protokol olarak AS'ler arasında yol bilgisini değiş tokuş eder
  • Sınır router'ları (border router), BGP yönlendirme tablolarını tutar ve her yol için ASN listesini saklar
  • İki AS peering yaptığında, router'ları BGP oturumu kurar ve rota ilanlarını (route advertisement) değiş tokuş eder
  • Router'lar, birden fazla yol arasından en kısa ya da en çok tercih edilen yolu seçerek paketleri iletir
Reklam

BGP'nin tarihi

  • 1969'da ARPANET ile başlayan ağ deneyleri, 1989'da Cisco ve IBM'in RFC 1105 çalışmasına uzanarak BGP v1'in ortaya çıkmasına yol açtı
  • Daha sonra BGP v2 (1990) ve v4 (1994) yayımlandı; v4 bugün hâlâ kullanılıyor
  • BGP, internetteki tüm ağlar arasındaki bağlantı yollarını belirleyen standart protokol haline geldi

Traceroute ile BGP'nin ilişkisi

  • Örnek rota: AS16509 → AS2914 → AS24940
    • Amazon (AS16509) → NTT Global IP Network (AS2914) → Hetzner (AS24940) sırası
  • Aynı ASN içinde de birden fazla atlama olabilir; bu, iç yönlendirme protokolleri veya sabit yollarla işlenir
  • AS'ler arasındaki peering ilişkileri, internetteki gerçek erişilebilirliği belirler

Kısa özet

  • Web sitesi, kullanıcının IP'sine traceroute çalıştırıyor ve sonuçları HTTP akışıyla gönderiyor
  • traceroute, ICMP paketlerinin TTL değerini kullanarak router'lar arasındaki yolu görselleştiriyor
  • Her router bir otonom sisteme (AS) ait ve bunlar BGP üzerinden birbirine bağlı
  • Peering ilişkileri, internetin erişilebilirliğini ve yapısını belirliyor

Sonsöz

  • Yazar, internet yapısına dair bilgisinin yetersiz olduğunu fark ederek protokol merkezli eğitsel bir interaktif yazı hazırladı
  • Büyük ve kusursuz bir proje yerine, küçük de olsa yayımlanmış bir iş ortaya koymayı seçti
  • Hack Club topluluğunun teşvikiyle tamamlandı ve açık kaynak traceroute programı kullanıldı
  • “Küçük de olsa tamamlanmış olması daha iyidir” mesajıyla, kalıcı web içeriği olarak yaşamayı umuyor

1 yorum

 
GN⁺ 2025-11-09
Hacker News görüşü
  • Bu reverse traceroute özelliğinin hâlâ faydalı olduğunu düşünüyorum Ama pratikte, AS yolu aynı olsa bile peering point neredeyse her zaman farklı olur Çoğu AS, hot-potato routing kullanır; yani trafiği paketin çıkış noktasına en yakın peering noktasından devreder Cold-potato kullansa bile asimetriktir. Ayrıca AS-path uzunluğu aynı olduğunda, hot-potato politikası yüzünden farklı bir rota da seçilebilir (düzenleme: hot/cold karışıklığı düzeltildi)

    • Birkaç kez traceroute ve reverse traceroute çalıştırdım; çoğu zaman AS yolu benzer çıktı Yalnız traceroute tarafının bazen ISP içindeki rotaları daha fazla gösterdiği oldu Genel olarak söylediğin doğru ve ileride hot-potato vs cold-potato routing farkını daha ayrıntılı anlatmak isterim Yine de bence yalnızca bu reverse traceroute sonuçları bile internetin yapısını açıklamak için yeterli
    • Bu arada, anlattığın şey tam olarak hot-potato routing Her AS'nin paketi mümkün olan en kısa sürede devretmesi mantığına dayanıyor Haksız gibi gelebilir ama hedef AS içindeki ayrıntılı rotaları bilmediğin için makul bir tercih Örneğin Berlin ve Hamburg'da ağın varsa, karşı tarafın da bu iki şehirde peering'i varsa, yakın olan noktadan devretmek gereksiz gidiş-gelişleri önler
  • traceroute'un aşağıdan yukarıya doğru satır satır yüklenme nedeninin açıklanması ilginçti JavaScript olmadan, CSS bloklarını periyodik olarak ekleyip önceki durumu gizleme yöntemi gerçekten hackvari ve yaratıcı

    • JavaScript olmadan da Declarative Shadow DOM ile sırası karışık HTML streaming uygulanabiliyor Örnekler ve açıklama bu blog yazısında güzel anlatılmış
  • “This is not my beautiful website.” ifadesi zekice geldi

    • Buna “This is not my beautiful home-page.” diye karşılık verilmesi de ince düşünülmüş
  • Henüz denemediyseniz

    tracepath -m60 bad.horse
    

    ve ardından

    openssl s_client -connect signed.bad.horse:443 -servername signed.bad.horse
    

    komutlarını çalıştırmanızı öneririm

    • Harika! Dr. Horrible için yapılmış geeky bir saygı duruşu gibi tracepath çıktısının “bad.horse” ile başlayıp “he.rides.across.the.nation” gibi devam etmesi gerçekten çok eğlenceli
    • Bir de şu var
      ssh funky.nondeterministic.computer
      
    • Bir de
      ssh watch.ascii.theater
      
      denemeye değer
  • Bu proje yeniden Hacker News ana sayfasına çıkınca sunucu kısa süreliğine zorlanmış Lexi, “yarın tekrar bakın” diye duyurmuş

    • Şimdi biraz daha iyi olduğu söyleniyor. Eşzamanlılık (concurrency) biraz artırılmış ve bir dahaki sefere Tokio kullanmak gerektiği dersi çıkarılmış
  • Başlığı görünce bir Talking Heads şarkısı çıkacak sandım

    • Aklıma otomatik olarak “letting the days go by” sözleri geldi
    • HTML'e bakarsanız gizli bir şey olabilir :)
  • “Once in a Lifetime” bağlantısı sanki beynime kazındı Sadece başlığı görünce bile o bas çizgisi otomatik olarak çalmaya başlıyor

    • Ben de anında varoluşsal kriz hissine kapıldım
  • Kendim çalıştırdım ve ana internet bağlantımın kopup yedek hatta geçtiğini fark ettim Bugün elektrik kesintisi olmuştu; bunu bu araç sayesinde anladım. Oldukça faydalıydı

    • Gerçekten de daha az gidilen bir rota bulmuş oldun
  • Bazen üstteki “You are here” bilgisi şöyle görünüyor

    Host               ASN   Network         Region
    123-456-789-101.static.kc.net.uk AS19905 UltraDDoS Protect    Global
    

    Ama başka zamanlarda

    Host               ASN   Network         Region
    123-456-789-101.static.kc.net.uk AS12390 Kingston Communications Europe
    

    şeklinde görünüyor. Aynı IP için ASN'nin neden 50:50 oranında değiştiğini merak ediyorum. Rastgele değişiyor gibi görünüyor

  • Sayfa başta JavaScript olmadan düzgün çalışıyordu, ama sonradan değiştirilen HTML metin olarak encode edilmeye başladı

    
     #strYQt8 { display: none; }
    
    

    Bu yüzden bozuldu Bununla ilgili düzeltme PR'ını GitHub'a gönderdim