Yggdrasil 0.5-ի թողարկում, մասնավոր ցանցի ներդրում, որն աշխատում է ինտերնետի վերևում

Երկու տարուց ավելի մշակումից հետո հրապարակվել է արձանագրության Yggdrasil 0.5 հղման իրականացման թողարկումը: Այն թույլ է տալիս տեղակայել առանձին ապակենտրոնացված մասնավոր IPv6 ցանց սովորական գլոբալ ցանցի վերևում՝ գաղտնիությունը պաշտպանելու համար, որն օգտագործում է ծայրից ծայր կոդավորում: Yggdrasil ցանցում կարող են օգտագործվել IPv6-ը աջակցող ցանկացած առկա ծրագիր: Իրականացումը գրված է Go լեզվով և տարածվում է LGPLv3 լիցենզիայի ներքո: Աջակցվող հարթակներն են՝ Linux, OpenWRT, Windows, macOS, FreeBSD, OpenBSD, VyOS և Ubiquiti EdgeRouter:

Yggdrasil-ը մշակում է նոր երթուղայնացման հայեցակարգ՝ գլոբալ ապակենտրոնացված ցանց ստեղծելու համար, որտեղ հանգույցները կարող են անմիջապես միանալ միմյանց mesh ցանցի ռեժիմով (օրինակ՝ Wi-Fi-ի կամ Bluetooth-ի միջոցով) կամ փոխազդել առկա IPv6 կամ IPv4 ցանցերի վերևում (ցանց ցանցի վերևում): Yggdrasil-ի առանձնահատկությունը դրա գործունեության ինքնակազմակերպումն է, որը չի պահանջում հստակ երթուղայնացման կարգավորում. երթուղային տեղեկատվությունը հաշվարկվում է ցանցում հանգույցի գտնվելու վայրի հիման վրա՝ համեմատած այլ հանգույցների հետ: Սարքերը հասցեագրվում են սովորական IPv6 հասցեի միջոցով, որը չի փոխվում, եթե հանգույցը տեղափոխվում է (Yggdrasil-ը օգտագործում է չօգտագործված հասցեների միջակայքը՝ 0200::/7):

Ամբողջ Yggdrasil ցանցը չի դիտարկվում որպես տարբեր ենթացանցերի հավաքածու, այլ որպես մեկ կառուցվածքային ընդգրկող ծառ՝ մեկ «արմատով», և յուրաքանչյուր հանգույց ունի մեկ ծնող և մեկ կամ ավելի ժառանգներ: Այս ծառային կառուցվածքը թույլ է տալիս կառուցել երթուղի դեպի նպատակակետային հանգույց՝ սկզբնաղբյուր հանգույցի համեմատ, օգտագործելով «տեղորոշիչ» մեխանիզմ, որը որոշում է արմատից հանգույց տանող օպտիմալ ուղին: Ծառի մասին տեղեկատվությունը բաշխվում է հանգույցների միջև և չի պահվում կենտրոնացված:

Տրաֆիկի վերլուծությունից պաշտպանվելու համար ցանցը օգտագործում է ծայրից ծայր կոդավորում (տարանցիկ հանգույցները չեն կարող որոշել բովանդակությունը), սակայն անանունությունը երաշխավորված չէ. ինտերնետի միջոցով միանալիս peer-to-peer հանգույցները, որոնց հետ իրականացվում է անմիջական փոխազդեցություն, կարող են որոշել իրական IP հասցեն, ուստի անանունության համար խորհուրդ է տրվում հանգույցները միացնել Tor-ի կամ I2P-ի միջոցով:

Չնայած նախագիծը դեռևս ալֆա մշակման փուլում է, այն արդեն բավականաչափ կայուն է ամենօրյա օգտագործման համար, բայց չի երաշխավորում հետադարձ համատեղելիություն թողարկումների միջև: Համայնքը պահպանում է Yggdrasil-ի համար ծառայությունների մի շարք, այդ թվում՝ Linux կոնտեյներների հոսթինգի հարթակ: հոսթինգ նրանց կայքերը, YaCy որոնողական համակարգը, Matrix կապի սերվերը, IRC սերվերը, DNS-ը, VoIP համակարգը, BitTorrent-ի հետևորդը, միացման կետերի քարտեզը, IPFS դարպասը և Tor, I2P և clearnet ցանցերին մուտք գործելու պրոքսիները։

Նոր տարբերակում.

  • Ավելացվել է գաղտնաբառի միջոցով գործընկերների հետ կապերը նույնականացնելու հնարավորություն: Գաղտնաբառը սահմանվում է "password=" պարամետրի միջոցով, օրինակ՝ "tls://abcd:12345?password=123456abcdef":
  • Ավելացվել է UDP-ի վրա հիմնված QUIC արձանագրությունն օգտագործելու հնարավորություն՝ գործընկերների հետ շփվելու համար: QUIC-ն օգտագործելու համար դուք պետք է նշեք quic:// URI սխեման Listen և Peers դիրեկտիվներում, սակայն QUIC-ի աջակցությունը դեռևս այնքան լավ չի փորձարկվել, որքան TCP-ն և TLS-ը:
  • Ավելացվել է PrivateKeyPath տարբերակը, որը թույլ է տալիս պահպանել մասնավոր բանալին PEM ձևաչափով՝ հիմնական կարգավորման ֆայլից առանձին: Բանալին առանձին ֆայլ արտահանելու համար կարող եք օգտագործել "-exportkey" տարբերակը:
  • Իրականացվել է նոր երթուղայնացման սխեմա, որը հետադարձ համատեղելի չէ նախորդ տարբերակների հետ (Yggdrasil 0.5-ով աշխատող հանգույցները չեն կարող կապվել Yggdrasil 0.4-ով աշխատող հոսթերի հետ), սակայն լուծում է 0.4 ճյուղում առկա կայունության և մասշտաբայնության հետ կապված խնդիրների մեծ մասը և զգալիորեն նվազեցնում է հիշողության սպառումը և երթևեկությունը, երբ ցանցային ակտիվություն չկա։

    Նոր իրականացումն օգտագործում է հավանականային Bloom Filter կառուցվածք՝ հղումներն ու հանգույցները հետևելու համար: Բաշխված հեշ աղյուսակը (DHT) այլևս չի օգտագործվում երթուղային տեղեկատվություն փոխանակելու և ծառաձև ցանցում հանրային բանալիները կապելու համար:

    Տեղական հետևողականությունը պահպանելու և արմատային հանգույցի երթուղիներից կախվածությունը նվազեցնելու համար հանգույցները այժմ առանձին են փոխանցում յուրաքանչյուր կապի մասին տեղեկատվություն, որը հետևվում է CRDT կառուցվածքներում: Աղբյուրի երթուղայնացման փոխարեն օգտագործվում է ագահ երթուղայնացումը (հարցումները ուղարկվում են ամենամոտ հարևան հանգույցին):

    Կապի բանակցությունների և բազմահեռարձակման համար օգտագործվող ձևաչափերը վերանայվել են՝ ավելի լավ ընդարձակելիության համար: Կապի մշակման կոդը վերանայվել է՝ ավելի հուսալիորեն հետևելու համար գործընկերների վիճակին: Յուրաքանչյուր կարգավորված գործընկերի համար ապահովվել է վերամիացման միջակայքերի առանձին հետևում:

    Անհաջողությունները հայտնաբերելու համար, պարբերական առանձին keepalive հարցումներ ուղարկելու փոխարեն, օգտագործվում են երթևեկության ստացման հաստատմամբ հաղորդագրություններ, որոնք թույլ են տալիս ազատվել երթևեկությունից, երբ ցանցը անգործուն է (ինչը, օրինակ, նվազեցնում է բջջային սարքերի էներգիայի սպառումը՝ անգործուն ռեժիմում երթևեկությունը բացառելու պատճառով):

Source: opennet.ru

Добавить комментарий