Kila mnara wa taa unaweza kumwambia mwenyeji kuhusu kila mwenza mwingine isipokuwa mahali mnara wenyewe unapoishi. Kitu kinapaswa kujulikana kabla overlay haijakuwepo, na Nebula huweka kitu hicho kwenye ramani moja ndogo. Ramani inaoanisha utambulisho wa overlay na anwani inayofanya kazi kwenye mtandao wa kawaida. Kila kitu kinachojifunzwa baadaye kinategemea uoanishaji huo kuwa sahihi.

Anwani mbili zenye majukumu mawili

Kila mwenyeji wa Nebula ana anwani ya overlay ambayo hubaki thabiti wakati kifaa kinasogea kati ya mitandao. Anwani hiyo ndiyo utambulisho unaotumiwa na vyeti, kanuni za firewall na mahusiano ya wenza, na yenyewe haielekezi popote. Kituo kinachofikiwa ni kitu kingine: jina la mwenyeji au anwani kwenye mtandao wa chini pamoja na bandari ya UDP, na hubadilika kila wakati mashine inapobadilisha mahali. Ramani thabiti ni kiungo kati ya hizo mbili.

Ramani inaingia tu wenyeji ambao lazima waitwe kwa baridi, jambo ambalo kawaida humaanisha minara ya taa na pengine relay moja. Kuweka orodha hiyo fupi ni lengo la muundo, kwa sababu kila ingizo la mkono huwa ukweli ambao mtu anapaswa kuutunza. Kuchanganya aina mbili za anwani ni kosa la kawaida la usanidi: anwani ya umma iliyowekwa kwenye orodha ya minara haianzishi ugunduzi.

Utambulisho huenda mahali utambulisho unatarajiwa. Ufikivu huenda kwenye ramani.

static_host_map:
  "10.42.0.1": ["lighthouse-01.example.net:4242"]

lighthouse:
  am_lighthouse: false
  hosts:
    - "10.42.0.1"

Muundo wa ingizo la ramani

Ufunguo ni anwani ya overlay iliyoandikwa kama mfuatano ndani ya alama za nukuu, na thamani ni orodha ya vituo, kwa hivyo utambulisho mmoja unaweza kuwa na sehemu kadhaa za kuingia. Kila kituo hubeba mwenyeji na bandari, na bandari lazima ilingane na kile upande mwingine unasikiliza kwa kweli. Thamani chaguo-msingi ya Nebula ni UDP 4242, ambayo ni mahali pa kuanzia na sio ahadi kuhusu usambazaji wako.

Vituo kadhaa ni muhimu wakati mnara wa taa una njia zaidi ya moja ya kuingia, kama anwani ya umma na anwani ya faragha kwa wenyeji wa sehemu hiyo hiyo. Mteja huzijaribu kwa mpangilio, kwa hivyo weka ile inayotegemewa zaidi kwanza. Kwa IPv6, weka anwani ndani ya mabano ya mraba kabla ya kuongeza bandari; kukosea hilo hutoa kosa la uchanganuzi linaloelekeza kwenye mstari usio sahihi.

Bandari isiyo sahihi hutoa ukimya badala ya kosa, kwa sababu UDP haina handshake ya kukataa. Kwa hivyo muundo wa ingizo unafaa kuangaliwa dhidi ya marejeleo ya static_host_map ya Nebula na sio kumbukumbu. Marejeleo pia hushughulikia orodha za vituo na tabia ya kuonyesha upya DNS.

Bootstrap lazima ifanye kazi kabla ya overlay

Jina la DNS kwenye ramani lazima litatuliwe kupitia kitatuzi ambacho mwenyeji anacho kabla ya handaki yoyote, yaani kitatuzi cha kawaida cha mfumo. Jaribu hilo kutoka mashine hiyo hiyo, wakati wa kuwasha, huku overlay imesimamishwa. Jina linalotatuliwa tu kupitia DNS ya overlay yenyewe haliwezi kubootstrap overlay. Jaribio hilo hilo linahusu njia: kanuni ya firewall inayoruhusu overlay lakini sio ubadilishanaji wa kwanza wa UDP huzuia pakiti ya kwanza.

Angalia bandari kwa chombo cha UDP badala ya kudhani imefunguliwa. Thibitisha kwamba uelekezaji wowote wa bandari kwenye njia unalenga mwenyeji sahihi wa ndani na kwamba njia ya kurudi ipo. Ikiwa jina la mwenyeji linatatuliwa kwa anwani kadhaa, jaribu kila moja, kwa sababu mteja anaweza kuchagua anwani ambayo hukuwahi kuangalia.

Maingizo thabiti huitwa moja kwa moja na kamwe hayashauriani na mnara wa taa. Kwa hivyo kushindwa hapa kunaonekana kama muda wa kusubiri wa kawaida bila mwenza yeyote.

Kinachotokea baada ya handshake ya kwanza

Mara mwenyeji anapofikia mnara wa taa, anajifunza kuhusu wenza na anwani zao zinazofikiwa bila maingizo zaidi ya mkono. Wenyeji waliohama tangu muunganisho wa mwisho huwa wanaoweza kugundulika kupitia njia hiyo. Hiyo ndiyo thawabu ya kuweka ramani ya mkono ndogo.

Wenyeji wanaweza pia kutangaza anwani zao za ziada zinazofikiwa, na hivyo mwenza aliye nyuma ya anwani ya umma inayojulikana huwasaidia wengine kuipata. Matangazo hayo hujifunzwa, hayoandikwi kwenye ramani thabiti.

Tabia ya kuonyesha upya ni muhimu kwa vituo vilivyoandikwa kama majina ya DNS, kwa sababu anwani iliyotatuliwa inaweza kubadilika wakati mchakato unaendelea kufanya kazi. Mipangilio ya Nebula hudhibiti jinsi utafutaji huo unavyofanyika, ikiwa ni pamoja na kitatuzi kinachotumika, kwa hivyo visome badala ya kudhani chaguo-msingi la mfumo. Kwenye mwenyeji ambaye kitatuzi chake hubadilika handaki inapoinuka, mpangilio usio sahihi unaweza kugeuza bootstrap inayofanya kazi kuwa jina linaloacha kutatuliwa katikati ya kikao. Kufunga utafutaji kwa kitatuzi thabiti mara nyingi ndio tofauti kati ya overlay inayotegemewa na ile inayokatika.

Wakati ugunduzi unafanya kazi na mwenza mmoja haufanyi

Ikiwa minara ya taa inafikiwa na wenza wengi wanaunganisha, bootstrap sio tatizo. Jozi iliyobaki aidha haipati njia inayotumika kwa kila mmoja au inashindwa juu ya ufikivu. Kuongeza tahajia nyingine ya anwani ya mnara wa taa hakuwezi kurekebisha hali yoyote kati ya hizo mbili.

Angalia jozi kabla ya kuhariri ramani ambayo kila kitu kingine tayari inategemea. Mabadiliko ya ramani husumbua kila mwenyeji, kwa hivyo ni kitu cha mwisho kuguswa, sio cha kwanza.

Anza na vyeti kutoka mamlaka hiyo hiyo, kwa sababu handshake iliyokataliwa inaweza kuonekana kwa mbali kama mwenza asiyefikiwa. Kisha angalia kama jozi inaweza kuanzisha njia ya moja kwa moja na kama relay imesanidiwa kwa mitandao inayokataa trafiki ya moja kwa moja. Relay huongeza hatua moja na utegemezi mmoja, lakini ni jibu linalotumika, na kurekebisha njia ya jozi ni kazi tofauti na kurekebisha ugunduzi.

Makala zinazohusiana