1 puan yazan GN⁺ 2024-11-17 | 1 yorum | WhatsApp'ta paylaş
  • Yggdrasil, yapılandırılmış yönlendirme protokollerine merkeziyetsiz bir alternatif deneyen bir ağdır ve büyük ölçekli mesh ağlar düşünülerek tasarlanmış kompakt bir yönlendirme yaklaşımı kullanır
  • Mevcut uygulama, yapılandırması kolay, hafif bir kullanıcı alanı yazılım yönlendiricisidir ve katılımcılar arasında uçtan uca şifrelenmiş IPv6 yönlendirmesi sağlar
  • Düğümler arası eşleme, LAN, noktadan noktaya bağlantılar ve internet üzerindeki TCP/TLS bağlantıları ile kurulabilir; gerçek eşleme ise IPv4 veya IPv6 üzerinde mümkündür
  • Büyük ölçekli topolojiler, arıza ve hareketlilik olaylarından kurtarma, her zaman açık uçtan uca şifreleme, merkezi nokta olmadan P2P çalışma ve çoklu işletim sistemi desteğiyle öne çıkar
  • Hâlâ alfa aşamasında olsa da uyumluluğu bozan değişiklikler yaşanabilir; buna rağmen günlük kullanımda genel olarak kararlıdır ve bazı kullanıcılar tarafından yoğun biçimde stres testine tabi tutulmaktadır

Yggdrasil'in çözmeyi hedeflediği ağ problemi

  • Yggdrasil, yeni ve deneysel bir kompakt yönlendirme yaklaşımıdır
  • İnternette yaygın olarak kullanılan yapılandırılmış yönlendirme protokollerinin yerini alabilecek gelecek odaklı ve merkeziyetsiz bir alternatif olmayı hedefler
  • Gelecekte büyük ölçekli mesh ağları mümkün kılacak bir teknoloji olarak tasarlanmıştır
  • Ağ tasarım özellikleri

    • Ölçeklenebilirlik: Büyük ve karmaşık topolojileri ya da internet ölçeğindeki topolojileri destekler
    • Kendini onarma: Bağlantı kesintilerine veya hareketlilik olaylarına hızlı tepki verir
    • Şifreleme: Ağ üzerinden geçen trafik her zaman tam uçtan uca şifreleme kullanır
    • P2P: Yerleşik bir merkezi nokta olmadan ad hoc şekilde çalışır
    • Çapraz platform: Linux, macOS, Windows, iOS, Android ve diğerlerini destekler

Uygulama biçimi ve ağa katılım

  • Mevcut uygulama, hafif bir kullanıcı alanı yazılım yönlendiricisidir
    • Yapılandırması kolaydır ve çeşitli platformları destekler
    • Tüm ağ katılımcıları arasında uçtan uca şifrelenmiş IPv6 yönlendirmesi sağlar
  • Düğümler arasında eşleme, TCP/TLS bağlantıları ile kurulabilir
    • Yerel alan ağlarında, noktadan noktaya bağlantılarda ve internet üzerinde kullanılabilir
    • Yggdrasil Network düğümler arasında IPv6 yönlendirmesi sunar, ancak eşleme bağlantılarının kendisi IPv4 veya IPv6 ağları üzerinde kurulabilir
  • Proje hâlâ alfa aşamasındadır
    • Gelecekte uyumluluğu bozan değişiklikler olabilir
    • Buna rağmen günlük kullanımda genel olarak kararlıdır
    • Bazı kullanıcılar tarafından çeşitli amaçlarla yoğun şekilde kullanılarak stres testine tabi tutulmaktadır
  • Başlangıç ve katkı yolları

1 yorum

 
GN⁺ 2024-11-17
Hacker News yorumları
  • Web sitesinde ve GitHub’da ilk aradığım şey, referans uygulamadan bağımsız olarak uygulanabilecek bir protokol belirtimiydi; ancak scheme/protocol diye tanıtılmasına rağmen hiçbir yerde bir belirtime bağlantı verilmemişti.
    Kendim biraz kurcalayınca başka bir GitHub projesinin yan dalında [1]’i buldum; yazana alkış. Kriptografik kimlik, mesaj biçimi, taşıma protokolü, peering ve akış semantiği, spanning tree güncellemeleri ve kök seçimi, DHT, iletme mantığı, oturumlar gibi gerekli konular oldukça iyi yer alıyor.
    Ancak kök güncelleme doğrulaması/imzalama yöntemi gibi TODO’lar var ve sonraki sıçrama seçimi için eşitlik bozma algoritmasında belirsizlik bulunuyor. Ayrıca tüm paketlerin güvenilir biçimde ve sıralı olarak iletilmesi, MTU’ya uyacak şekilde daha küçük paketlere parçalanabilmesi gerektiğinden, taşıma katmanı TCP’ye güçlü biçimde bağlı gibi görünüyor.
    [1] https://github.com/yggdrasil-network/yggdrasil-specs/blob/ys...

    • Bağlantısını verdiğin eski v0.3 protokolünün dokümantasyonu için biraz zaman harcadık, fakat o zamandan beri tasarım iki kez büyük ölçüde değişti.
      v0.4’te DHT epey değişti, v0.5’te ise DHT’yi tamamen kaldırdık. Bu bir araştırma projesi olduğu için daha tatmin edici bir tasarıma ulaşana kadar değişmeye devam etme olasılığı yüksek; o noktada dokümantasyona kesinlikle daha fazla zaman ayıracağız.
      Sıra garantili/güvenilir bağlantılara ihtiyaç duymamız şu aşamada büyük ölçüde geliştirme kolaylığı için, ama bu kısım kesinlikle düzeltilebilir.
    • TCP’ye bağlı olması sorun mu? Tamamen merkeziyetsizlik hedefiyle çelişen bir davranış mı sergiliyor?
  • Anladığım kadarıyla yggdrasil ve cjdns, mevcut internetin üzerine kurulu sanal P2P ağlar ve genel bir 3. katman yönlendirme hizmeti sunuyor.
    Bu yüzden hâlâ ISP’lere, internet omurgasına vb. ihtiyaç var. Verizon ya da Cisco yönlendiricileri olmadan çalışabilen, IP katmanının yerini alacak dünya çapında bir P2P ağ kurmaya çalışan bir proje var mı?
    Küçük, kopuk ağlar için birkaç mesh ağ teknolojisi biliyorum ama tüketiciye yönelik olup binlerce ve daha fazla düğümü destekleyen bir şeyden pek haberdar değilim.

    • Bu aslında cjdns’nin hedefiydi. Bu yüzden WiFi dâhil Ethernet üzerinden erişilebilen diğer düğümlerle otomatik peering yapıyor (IP gerekmiyor).
      İlk paragrafa bakın: https://github.com/cjdelisle/cjdns/blob/master/doc/Whitepape.... Ne yazık ki bu yönlendirme yönteminin pratikte yeterince ölçeklenebilir olmadığı ortaya çıktı. Yggdrasil farklı bir yönlendirme algoritması kullandığından, belki bir şansı olabilir.
    • IP de başlangıçta telefon ağı üzerindeki bir overlay ağdı.
      Bu yaklaşımın birçok avantajı var; özellikle benimsenmesini kolaylaştırıyor. Şimdi ise eski uygulamalar için telefon ağını IP üzerinden çalıştırıyoruz. Bu Yggdrasil başarılı olursa, sonunda eski sistemler için IP’yi onun üzerinde çalıştıracağımızı düşünüyorum.
    • Mesh ağlar herkesin çok eskiden beri hayalini kurduğu bir şey, ama ne yazık ki ölçeklenebilirlikleri çok kötü.
      Bu, birçok sorundan sadece biri değil; tasarımdaki temel bir sınırlama. İnternet (ARPAnet) de başlangıçta bir mesh ağ olarak başladı; trunk, omurga ve yönlendirme kavramları da bu ölçeklenebilirlik sorununu çözmek için ortaya çıktı.
    • IP katmanını neden kaldırmak istiyorsunuz?
      Yoksa “internet” üzerinde değil de ayrı bir ağ üzerindeki IP katmanından mı söz ediyorsunuz? Öyleyse insanları birbirine nasıl bağlamayı düşündüğünüzü merak ediyorum. Ölçek büyüdükçe mesh yönlendirme yüzünden mesh verimsiz hâle gelir ve sonunda çok geçmeden “kendi internetinizi” yeniden icat etmiş olursunuz. Ancak tüm dünyayı gerçekten birbirine bağlayacak kaynaklarınız olmadığından, küresel ölçekte olmaz.
    • cjdns’den önce birkaçımız Athens[0]’ten ilham alarak, internetin yerini almayı ya da onu tamamlamayı amaçlayan project meshnet’i başlatmıştık.
      O dönemde bu, 2009–2010 Pirate Bay kararına verilmiş idealist/anarko bir tepkiye daha yakındı. Hatırladığım kadarıyla cjdns biraz sonra ortaya çıktı ve grubun çoğunu içine çekti.
      Memnuniyetsiz hacker’lar ve yazılım korsanları daha kötü bir internet yaparsa bunun uzun ömürlü olmayacağını kim bilebilirdi ki?
      [0] https://en.m.wikipedia.org/wiki/Athens_Wireless_Metropolitan...
  • İlgili bağlantılar:
    Yggdrasil Network - https://news.ycombinator.com/item?id=41669625 - Eylül 2024, 3 yorum
    Yggdrasil P2P mesh E2EE IPv6 network - https://news.ycombinator.com/item?id=30156551 - Ocak 2022, 77 yorum
    Yggdrasil – Early-stage implementation of an end-to-end encrypted IPv6 network - https://news.ycombinator.com/item?id=27577201 - Haziran 2021, 102 yorum
    Show HN: Yggdrasil Network – compact mesh routing experiment for mesh networks - https://news.ycombinator.com/item?id=18863554 - Ocak 2019, 15 yorum
    Announcing Yggdrasil Network v0.3 - https://news.ycombinator.com/item?id=18751991 - Aralık 2018, 3 yorum
    Yggdrasil: End-To-end Encrypted IPv6 Networking - https://news.ycombinator.com/item?id=18666245 - Aralık 2018, 1 yorum

  • Güvenlik duvarını/NAT'ı aşabilen gerçek bir mesh P2P IP ağına ihtiyacınız varsa Tailscale/Headscale kullanabilirsiniz
    Şifreleme anahtarlarıyla adresleme yapan bir P2P bağlantı ağı istiyorsanız, nispeten yeni projeler arasında bunu oldukça iyi yapan bir şey var: https://www.iroh.computer
    Güvenlik duvarını/NAT'ı aşarak QUIC bağlantısı kuruyor. Halihazırda kullanılabilir iki kavram kanıtı da var:
    https://github.com/n0-computer/sendme
    https://github.com/n0-computer/dumbpipe

    • Tam da bunu soracaktım. Neden biri Yggdrasil'i Tailscale veya WireGuard yerine kullanmalı?
      Bir avantajı var mı? Sadece kişisel, hafif bir özel VPN çalıştırmak istiyorsanız Tailscale harika; ağı kendiniz barındırmak istiyorsanız Headscale de var ve pek çok avantaj sağlıyor
  • 3-4 yıl önce epey umut verici buluyordum ama şimdi bir ölçüde terk edilmiş proje gibi görünüyor. Gerçekten kullanan var mı, izlenimleri nasıl merak ediyorum

    • Hiç de terk edilmiş değil; ben ve bir başka geliştiricinin boş zamanlarında yürüttüğü bir proje
      Geçen yılın sonunda yeni protokol tasarımını içeren 0.5 sürümünü çıkardık; yaklaşık bir ay önce de bağlantı maliyeti değişikliğiyle ağ gecikmesini önemli ölçüde iyileştiren 0.5.9'u yayımladık
    • Son dönemde birkaç güncelleme oldu ve bir süre duraklamış olan iOS uygulaması da yeniden canlandı
      Ben bunu telefonumla ev ağımı bağlayan bir VPN gibi kullanıyorum; ikisini de bir VPS'e özel olarak peer etmiş durumdayım
      Eve doğrudan bağlanmaktan biraz daha karmaşık ama dinamik IP, port yönlendirme ve WireGuard anahtar değişimiyle uğraşmaktan kurulumu daha kolaydı
      Multicast peering fena değil; evdeyken de aynı Ygg IP ile ev sunucuma doğrudan erişebiliyorum. Sorun, IP kullanmak zorunda olmak. iOS uygulaması Ygg VPN bağlantısında özel DNS sunucusu ayarını desteklemiyor
      Bu kullanım için Headscale aslında daha iyi bir çözüm, ama sadece bir peering daha ekleyince alternatif bir internetin oluşması oldukça eğlenceli
    • Yggdrasil basitçe iyi çalıştığı için geliştiricilerin sohbet odasında düzeltecek sorunları tartışmasına nispeten daha az ihtiyaç oluyor
      Şu anda tüm cihazlarımda yggdrasil kullanıyorum; NAT arkasında olsalar bile birbirlerine ssh ile erişebiliyorlar
      Android'de termux ve yggdrasil Android uygulamasını kullanınca, hareket halindeyken dosyaları bir buluta koymadan ev bilgisayarımdaki dosyalara erişebiliyorum
    • Dışarıdayken evdeki cihazlarıma erişmek için sürekli kullanıyorum; ayrıca onun üzerinde çalışan IRC sunucusu ile arkadaşlarımla sohbet ediyorum
      Geliştirme oldukça aktif ve son sürümde yönlendirme algoritması en düşük gecikmeli hop'u tercih edecek şekilde iyileştirildi; bu da hissedilir bir iyileşme sağladı
      Ağ içinde büyük topluluk hub'ları bekliyorsanız hayal kırıklığına uğrayabilirsiniz, ama kendiniz de bir tane kurabilirsiniz. Kendi kullanımına uygun şekilde kullanan çok kişi var ve proje terk edilmiş olmaktan çok uzak
  • Ben bunun bir Linux dağıtımı olduğunu sanmıştım
    https://en.m.wikipedia.org/wiki/Yggdrasil_Linux/GNU/X

  • Bu alanda Reticulum Network Stack de var: https://reticulum.network/

  • FAQ’da “Yggdrasil anonim midir? Hayır, Yggdrasil projesinin amacı anonimlik sağlamak değildir” deniyor.
    Sorunun zor olduğunu ve basit bir teknik meselenin ötesinde çözülmesi gereken konular olduğunu anlıyorum; ama açıkçası bu benim için daha başlangıçta elenme sebebi. Gerçek internetin evrimi olacaksa fiilî anonimliği içermesi gerektiğini düşünüyorum.
    Bunu dışarıda bırakırsak, mevcut hâliyle zaten çözülmemiş olan mevcut internetin hangi sorununu gerçekten çözdüğünü bilmiyorum.

    • Anonimlik Yggdrasil’in hedefi olmadığı gibi BGP, OSPF, BATMAN gibi şeylerin de hedefi değil.
      Anonim ağlar genelde çok yüksek maliyet ve ek yük getirir. Çünkü gizleme için kasıtlı olarak uzun ve dolaylı rotalar oluştururlar. Tor devrelerinin genel olarak düşük performansına ve güvenilirliğine bakınca, tüm internetin bu şekilde çalışmasını neden istemeyeceğimizi anlayabilirsiniz.
    • Neden öyle olsun ki? Mesh yönlendirme protokolüne odaklanıp anonimliği isteğe bağlı bir katman olarak bunun üzerine koymak çok daha mantıklı görünüyor.
      Yggdrasil ağını çalıştırıp onun içinde bir I2P ağı işletmemek için bir sebep yok. Böylece anonimlik gerektirmeyen iletişimlerde performans kaybı az olur, anonim eşler de clearnet’e çıkmadan oluşturulabilir.
    • Gecikme süresi optimizasyonu anonimliği bozabileceğinden, anonimleştirmeyi üst katmana koymak daha iyi olur.
  • Adresin açık anahtardan türetilmesi fikri gerçekten güzel, ama bu yaklaşımda bir sorun var. Yggdrasil şu anda IPv6 adresleri kullandığı için uzunluk çok sınırlı ve çakışmalar bulunabilir.
    Daha fazla öncü bite sahip anahtarları brute force ile bulmaya dayalı bir geçici çözüm var. Anladığım kadarıyla uzun vadeli plan, adres uzunluğu sınırı olmayan özel bir protokol eklemek.

    • Kabaca hesaplayınca çakışan adres çiftleri üretmek mümkün görünüyor. Doğum günü problemi gibi nedenlerden dolayı.
      Ama hâlihazırda kullanılan bir adres kümesiyle çakıştırmak yine de gerçekçi görünmüyor. Yggdrasil bağlamında ilki pratikte ne kadar sorun olur?
    • Açık anahtarı IPv6 adresine sığdırmak için kırpmanın tamamen ideal olmadığına katılıyorum.
      Yine de şu an için bu, neredeyse tüm mevcut IPv6 destekli uygulamaların hiçbir değişiklik olmadan Yggdrasil üzerinde çalıştığı anlamına geliyor ve bir testnet için iyi bir özellik.
    • Neden tüm açık anahtarı kullanıp geri kalanını entropiye bırakmıyorlar? Reticulum Network gibi.
  • “Yggdrasil is a new experimental compact routing scheme” deniyor, ama artık o kadar da yeni sayılmaz, değil mi? En az 6 yıl oldu.

    • Benzer bir şeyi gerçekten kullanan bir yer var mı?