Planet Earth için Akıllı Ethernet Anahtarı

Planet Earth için Akıllı Ethernet Anahtarı
"Bir çözümü (bir sorunu çözerek) çeşitli şekillerde oluşturabilirsiniz, ancak en pahalı ve/veya popüler yöntem her zaman en etkili yöntem değildir!"

önsöz

Yaklaşık üç yıl önce, felaket verilerinin kurtarılması için uzaktan bir model geliştirme sürecinde, hemen fark edilmeyen bir engelle karşılaştım: topluluk kaynaklarında ağ sanallaştırmaya yönelik yeni orijinal çözümler hakkında bilgi eksikliği. 

Geliştirilen modelin algoritması şu şekilde planlandı: 

  1. Benimle iletişime geçen ve bilgisayarı bir zamanlar önyüklemeyi reddeden ve "sistem diski algılanmadı/biçimlendirilmemiş" mesajını görüntüleyen uzak bir kullanıcı, onu yaşam USB'sini kullanarak yüklüyor. 
  2. Önyükleme işlemi sırasında sistem, kendisine ek olarak yöneticinin iş istasyonunu, bu durumda bir dizüstü bilgisayarı ve bir NAS düğümünü içeren güvenli bir özel yerel ağa otomatik olarak bağlanır. 
  3. Sonra ya disk bölümlerini yeniden canlandırmak ya da oradan veri çıkarmak için bağlanıyorum.

Başlangıçta bu modeli kontrolüm altındaki bir ağdaki yerel bir yönlendiricideki VPN sunucusunu, ardından kiralanan bir VDS'yi kullanarak uyguladım. Ancak, çoğu zaman olduğu gibi ve Chisholm'un birinci yasasına göre, eğer yağmur yağarsa, İnternet sağlayıcının ağı çökecek, o zaman ticari kuruluşlar arasındaki anlaşmazlıklar, hizmet sağlayıcının "enerji" kaybetmesine neden olacaktır...

Bu nedenle öncelikle gerekli aracın karşılaması gereken temel gereksinimleri formüle etmeye karar verdim. Birincisi ademi merkeziyetçilik. İkincisi, bu tür birkaç yaşam boyu USB'ye sahip olduğum göz önüne alındığında, her birinin ayrı bir yalıtılmış ağı var. Üçüncüsü, çeşitli cihazların ağına hızlı bağlantı ve bunların basit yönetimi, dizüstü bilgisayarımın da yukarıda belirtilen yasaya kurban gitmesi durumu da dahil.

Buna dayanarak ve pek uygun olmayan birkaç seçeneğin pratik araştırması için iki buçuk ay harcadıktan sonra, kendi sorumluluğumda ve risk altında, o zamanlar tanımadığım bir girişimin ZeroTier adlı başka bir aracını denemeye karar verdim. Daha sonra hiç pişman olmadım.

Bu Yeni Yıl tatillerinde, o unutulmaz andan bu yana içerikle ilgili durumun değişip değişmediğini anlamaya çalışırken, Habr'ı kaynak olarak kullanarak bu konuyla ilgili makalelerin bulunabilirliği konusunda seçici bir denetim gerçekleştirdim. Arama sonuçlarında "ZeroTier" sorgusu için ondan bahseden yalnızca üç makale var ve en azından kısa bir açıklama içeren tek bir makale yok. Ve bu, aralarında ZeroTier, Inc.'in kurucusu tarafından yazılan bir makalenin çevirisinin bulunmasına rağmen. — Adam Ierymenko.

Sonuçlar hayal kırıklığı yarattı ve beni ZeroTier hakkında daha ayrıntılı olarak konuşmaya teşvik etti, böylece modern "arayanları" benim izlediğim rotanın aynısını gitmek zorunda kalmaktan kurtardı.

Peki sen nesin?

Geliştirici, ZeroTier'ı Dünya gezegeni için akıllı bir Ethernet anahtarı olarak konumlandırıyor. 

“Bu, kriptografik olarak güvenli bir küresel eşler arası (P2P) ağ üzerine inşa edilmiş, dağıtılmış bir ağ hipervizörüdür. Kurumsal SDN anahtarına benzer bir araç, sanal ağları hem yerel hem de küresel fiziksel ağlar üzerinden organize etmek için tasarlanmış ve hemen hemen her uygulama veya cihaza bağlanabilme özelliğine sahip."

Bu daha çok bir pazarlama açıklamasıdır, artık teknolojik özelliklerle ilgilidir.

▍Çekirdek: 

ZeroTier Ağ Hypervisor, küresel şifreli eşler arası (P2P) ağ üzerinde VXLAN'a benzer bir Ethernet ağını taklit eden bağımsız bir ağ sanallaştırma motorudur.

ZeroTier'da kullanılan protokoller, görünüş olarak VXLAN ve IPSec'e benzer olmasına rağmen orijinaldir ve kavramsal olarak ayrı ancak yakından ilişkili iki katmandan oluşur: VL1 ve VL2.

Dokümantasyona bağlantı

▍VL1, bir tür “sanal kablo” olan temel bir eşler arası (P2P) aktarım katmanıdır.

"Küresel bir veri merkezi, 'küresel bir kablo dolabı' gerektirir."

Geleneksel ağlarda, L1 (OSI Katman 1), verileri taşıyan gerçek kabloları veya kablosuz radyoları ve bu verileri modüle eden ve demodüle eden fiziksel alıcı-verici cihaz çiplerini ifade eder. VL1, sanal kabloları gerektiği gibi düzenlemek için şifreleme, kimlik doğrulama ve diğer ağ oluşturma hilelerini kullanarak aynı şeyi yapan eşler arası (P2P) bir ağdır.

Üstelik bunu otomatik olarak, hızlı bir şekilde ve kullanıcının yeni bir ZeroTier düğümü başlatmasına gerek kalmadan yapıyor.

Bunu başarmak için VL1, alan adı sistemine benzer şekilde düzenlenmiştir. Ağın merkezinde, rolü DNS kök adı sunucularına benzeyen, yüksek düzeyde kullanılabilir kök sunuculardan oluşan bir grup bulunur. Şu anda ana (gezegensel) kök sunucular geliştirici ZeroTier, Inc.'nin kontrolü altındadır. ve ücretsiz bir hizmet olarak sunulmaktadır. 

Ancak aşağıdakileri yapmanıza olanak tanıyan özel kök sunucular (lun'lar) oluşturmak mümkündür:

  • ZeroTier, Inc. altyapısına bağımlılığı azaltmak; Dokümantasyona bağlantı
  • gecikmeleri en aza indirerek üretkenliği artırın; 
  • İnternet bağlantısı kesilirse normal şekilde çalışmaya devam edin.

Başlangıçta düğümler birbirleriyle doğrudan bağlantı olmadan başlatılır. 

VL1'deki her eş, benzersiz bir 40 bitlik (10 onaltılık) ZeroTier adresine sahiptir; bu, IP adreslerinin aksine, hiçbir yönlendirme bilgisi içermeyen şifrelenmiş bir tanımlayıcıdır. Bu adres, genel/özel anahtar çiftinin genel kısmından hesaplanır. Bir düğümün adresi, genel anahtarı ve özel anahtarı birlikte onun kimliğini oluşturur.

Member ID: df56c5621c  
            |
            ZeroTier address of node

Şifrelemeye gelince, bu ayrı bir makalenin nedenidir.

Dokümantasyona bağlantı

İletişim kurmak için eşler öncelikle kök sunucu ağacının "yukarısına" paketler gönderir ve bu paketler ağda ilerledikçe yol boyunca rastgele ileri kanalların oluşturulmasını başlatırlar. Ağaç, sakladığı rota haritasına göre kendisini optimize etmek için sürekli olarak "kendi kendine çökmeye" çalışıyor.

Eşler arası bağlantı kurma mekanizması aşağıdaki gibidir:

Planet Earth için Akıllı Ethernet Anahtarı

  1. Düğüm A, Düğüm B'ye bir paket göndermek ister, ancak doğrudan yolu bilmediğinden, bunu yukarı yönde Düğüm R'ye (ay, kullanıcının kök sunucusu) gönderir.
  2. R düğümünün B düğümüyle doğrudan bağlantısı varsa paketi oraya iletir. Aksi takdirde, paketi gezegensel köklere ulaşmadan önce yukarı yönde gönderir.Gezegensel kökler tüm düğümleri bilir, dolayısıyla paket çevrimiçiyse eninde sonunda B düğümüne ulaşacaktır.
  3. Düğüm R ayrıca A düğümüne, B düğümüne nasıl ulaşabileceğine dair ipuçları içeren "randevu" adı verilen bir mesaj gönderir. Bu arada, paketi B düğümüne ileten kök sunucu, ona nasıl ulaşabileceğini bildiren bir "randevu" gönderir. A düğümüne ulaşın.
  4. A ve B düğümleri buluşma mesajlarını alır ve yol boyunca karşılaşılan herhangi bir NAT veya durum bilgisi olan güvenlik duvarlarını aşmak amacıyla birbirlerine test mesajları göndermeye çalışır. Bu işe yararsa doğrudan bağlantı kurulur ve paketler artık ileri geri gitmez.

Direkt bağlantı kurulamazsa iletişim röle üzerinden devam edecek, direkt bağlantı denemeleri başarılı sonuç alınana kadar devam edecektir. 

VL1 ayrıca LAN eş keşfi, simetrik IPv4 NAT geçişi için bağlantı noktası tahmini ve yerel fiziksel LAN'da mevcutsa uPnP ve/veya NAT-PMP kullanılarak açık bağlantı noktası eşlemesi dahil olmak üzere doğrudan bağlantı kurmaya yönelik başka özelliklere de sahiptir.

→ Dokümantasyona bağlantı

▍VL2, SDN yönetim işlevlerine sahip VXLAN benzeri bir Ethernet ağ sanallaştırma protokolüdür. İşletim sistemi ve uygulamalar için tanıdık iletişim ortamı...

VL1'den farklı olarak, VL2 ağları (VLAN'lar) oluşturmak ve düğümleri bunlara bağlamak ve yönetmek, kullanıcının doğrudan katılımını gerektirir. Bunu bir ağ denetleyicisi kullanarak yapabilir. Temelde, denetleyici işlevlerinin iki şekilde kontrol edildiği normal bir ZeroTier düğümüdür: ya doğrudan dosyaları değiştirerek ya da geliştiricinin şiddetle tavsiye ettiği gibi yayınlanmış bir API kullanarak. 

ZeroTier sanal ağlarını yönetmenin bu yöntemi ortalama bir kişi için pek uygun değildir, bu nedenle birkaç GUI vardır:
 

  • Geliştirici ZeroTier'dan bir tanesi, ücretsiz dahil olmak üzere dört abonelik planıyla genel bulut SaaS çözümü olarak sunuluyor, ancak yönetilen cihaz sayısı ve destek düzeyi sınırlı
  • İkincisi, bağımsız bir geliştiriciden geliyor, işlevsellik açısından biraz basitleştirilmiş, ancak şirket içi veya bulut kaynaklarında kullanım için özel bir açık kaynak çözümü olarak mevcut.

VL2, VL1'in üstüne uygulanır ve onun tarafından taşınır. Ancak VL1 uç noktasının şifrelemesini ve kimlik doğrulamasını devralır ve ayrıca kimlik bilgilerini imzalamak ve doğrulamak için asimetrik anahtarlarını kullanır. VL1, mevcut fiziksel ağ topolojisi hakkında endişelenmeden VL2'yi uygulamanıza olanak tanır. Yani bağlantı ve yönlendirme verimliliğiyle ilgili sorunlar VL1 sorunlarıdır. VL2 sanal ağları ile VL1 yolları arasında bağlantı olmadığını anlamak önemlidir. Kablolu LAN'daki VLAN çoğullamasına benzer şekilde, birden fazla ağ üyeliğini paylaşan iki düğüm arasında hâlâ yalnızca bir VL1 (sanal kablo) yolu olacaktır.

Her VL2 ağı (VLAN), denetleyicinin 64 bitlik ZeroTier adresini ve bu denetleyici tarafından oluşturulan ağı tanımlayan 16 bitlik bir sayıyı içeren 40 bitlik (24 onaltılık) bir ZeroTier ağ adresiyle tanımlanır.

Network ID: 8056c2e21c123456
            |         |
            |         Network number on controller
            |
            ZeroTier address of controller

Bir düğüm bir ağa katıldığında veya bir ağ yapılandırma güncellemesi istediğinde, ağ denetleyicisine bir ağ yapılandırması istek mesajı (VL1 aracılığıyla) gönderir. Denetleyici daha sonra düğümü ağda bulmak ve ona uygun sertifikaları, kimlik bilgilerini ve yapılandırma bilgilerini göndermek için düğümün VL1 adresini kullanır. VL2 sanal ağları açısından VL1 ZeroTier adresleri, devasa bir küresel sanal anahtardaki bağlantı noktası numaraları olarak düşünülebilir.

Ağ denetleyicileri tarafından belirli bir ağın üye düğümlerine verilen tüm kimlik bilgileri, tüm ağ katılımcılarının bunları doğrulayabilmesi için denetleyicinin gizli anahtarıyla imzalanır. Kimlik bilgileri, denetleyici tarafından oluşturulan zaman damgalarına sahiptir; bu, ana bilgisayarın yerel sistem saatine erişmeye gerek kalmadan göreceli karşılaştırmaya olanak tanır. 

Kimlik bilgileri yalnızca sahiplerine verilir ve daha sonra ağdaki diğer düğümlerle iletişim kurmak isteyen eşlere gönderilir. Bu, düğümlerde büyük miktarlarda kimlik bilgilerinin önbelleğe alınmasına veya sürekli olarak ağ denetleyicisiyle iletişime geçilmesine gerek kalmadan ağın çok büyük boyutlara ölçeklenmesine olanak tanır.

ZeroTier ağları, basit bir yayınlama/abone olma sistemi aracılığıyla çok noktaya yayın dağıtımını destekler.

Dokümantasyona bağlantı

Bir düğüm belirli bir dağıtım grubu için çok noktaya yayın yayını almak istediğinde, o gruptaki üyeliği iletişim kurduğu ağın diğer üyelerine ve ağ denetleyicisine duyurur. Bir düğüm çok noktaya yayın göndermek istediğinde, aynı anda en son yayınların önbelleğine erişir ve periyodik olarak ek yayınlar ister.

Bir yayın (Ethernet ff: ff: ff: ff: ff: ff), tüm katılımcıların abone olduğu bir çok noktaya yayın grubu olarak değerlendirilir. İhtiyaç duyulmadığı takdirde trafiği azaltmak için ağ düzeyinde devre dışı bırakılabilir. 

ZeroTier gerçek bir Ethernet anahtarını taklit eder. Bu gerçek bize şunları yapmamızı sağlar: oluşturulan sanal ağları diğer Ethernet ağlarıyla (kablolu LAN, WiFi, sanal arka panel vb.) veri bağlantısı düzeyinde normal bir Ethernet köprüsü kullanarak birleştirmek.

Köprü görevi görmesi için ağ denetleyicisinin bir ana bilgisayarı bu şekilde ataması gerekir. Normal ağ ana bilgisayarlarının MAC adresleri dışındaki bir kaynaktan trafik göndermesine izin verilmediğinden, bu şema güvenlik nedenleriyle uygulanır. Köprü olarak belirlenen düğümler ayrıca çok noktaya yayın algoritmasının özel bir modunu kullanır; bu mod, grup abonelikleri ve tüm yayın trafiğinin ve ARP isteklerinin kopyalanması sırasında kendileriyle daha agresif ve hedefli bir şekilde etkileşime girer. 

Anahtar ayrıca genel ve geçici ağlar, bir QoS mekanizması ve bir ağ kuralları düzenleyicisi oluşturma yeteneğine de sahiptir.

▍Düğüm:

ZeroTier Bir VPN istemcisine benzer şekilde, sanal ağ bağlantı noktası üzerinden sanal ağa bağlantı sağlayan, dizüstü bilgisayarlar, masaüstü bilgisayarlar, sunucular, sanal makineler ve konteynerler üzerinde çalışan bir hizmettir. 

Hizmet yüklenip başlatıldıktan sonra sanal ağlara 16 haneli adreslerini kullanarak bağlanabilirsiniz. Her ağ, sistemde normal bir Ethernet bağlantı noktası gibi davranan bir sanal ağ bağlantı noktası olarak görünür.

ZeroTier One şu anda aşağıdaki işletim sistemi ve sistemler için mevcuttur.

İŞLETİM SİSTEMİ:

  • Microsoft Windows - MSI yükleyici x86/x64
  • MacOS - PKG yükleyicisi
  • Apple iOS - Uygulama mağazası
  • Android - Oyun mağazası
  • Linux - DEB/RPM
  • FreeBSD -FreeBSD paketi

NAS:

  • Synology NAS
  • QNAP NAS
  • WD MyCloud NAS

diğer:

  • liman işçisi - liman işçisi dosyası
  • OpenWRT - topluluk limanı
  • Uygulama yerleştirme - SDK (libzt)

Yukarıdakilerin tümünü özetlemek gerekirse, ZeroTier'ın fiziksel, sanal veya bulut kaynaklarınızı ortak bir yerel ağda birleştirmek için mükemmel ve hızlı bir araç olduğunu, onu VLAN'lara bölme yeteneği ve tek bir arıza noktasının bulunmadığını belirtmek isterim. .

Habr için ZeroTier hakkındaki ilk makale formatındaki teorik kısım bu kadar - muhtemelen hepsi bu! Bir sonraki makalede, özel açık kaynaklı GUI şablonuna sahip bir VDS'nin ağ denetleyicisi olarak kullanılacağı ZeroTier tabanlı bir sanal ağ altyapısının oluşturulmasını pratikte göstermeyi planlıyorum. 

Sevgili okuyucular! Projelerinizde ZeroTier teknolojisini kullanıyor musunuz? Değilse, kaynaklarınızı ağ oluşturmak için hangi araçları kullanıyorsunuz?

Planet Earth için Akıllı Ethernet Anahtarı

Kaynak: habr.com

Yorum ekle