Chuir tú óstach relay leis, chuir a sheoladh Nebula i gcumraíocht, agus ní labhraíonn an dá phiaraigh lena chéile fós. Tarlaíonn sé sin toisc go dteastaíonn trí dhearbhú ar leith ó chonair relay a thagann le chéile, agus níl ach ceann amháin díobh ar an meaisín ar chuir tú in eagar é is dócha. Lean mé é seo dhá uair: uair amháin nár tugadh ról an relay don óstach seolta riamh, agus uair amháin a raibh na socruithe scríofa ar an taobh mícheart den nasc. Seiceálann an seicheamh thíos an ról, an fhógra agus an cead san ord sin, agus tá ordú ag gach céim a insíonn duit an leanúint ar aghaidh.

Mapáil na trí ról sula n-athraíonn tú cumraíocht

Tugann Nebula post do gach óstach, agus ní fhaightear na poist le hoidhreacht. Freagraíonn lighthouse ceisteanna ar nós cá bhfuil an piaraigh seo ionas gur féidir le hóstaigh a chéile a aimsiú. Seolann relay trácht ar aghaidh idir dhá phiaraigh nach bhfuil aon chonair dhíreach oibre acu. Ní dhéanann gnáthóstach ceachtar díobh. Tá na trí shocrú a bhfuil tábhacht leo ar thrí mheaisín éagsúla, agus is ar an gcúis sin gur féidir le cumraíocht cliaint a bhfuil cuma iomlán uirthi an dá phiaraigh a fhágáil ag fanacht.

# on the discovery host
lighthouse:
  am_lighthouse: true
  hosts: []

# on every other host, point at the discovery host's Nebula address
lighthouse:
  hosts:
    - 10.42.0.1

Deighleann siomptóm amháin an dá aicme teipe. Má liostaíonn an dá phiaraigh a chéile agus má thaispeánann an logar iarrachtaí handshake nach gcríochnaíonn choíche, tá an fhionnachtain ag obair agus tá an chonair sonraí bactha ag NAT nó ag balla dóiteáin. Mura bhfaigheann piaraigh eolas ar sheoladh an chinn eile ar chor ar bith, tá an fhadhb sa lighthouse nó ina léarscáil óstach statach, agus ní féidir le socruithe relay é sin a dheisiú.

Deimhnigh cé acu cumraíocht a lódáil gach óstach i ndáiríre sula n-athraíonn tú aon rud eile. Is cúis choitianta agus náirithe le „ní dhearna an t-athrú aon rud“ é aonad a léann conair dhifriúil ón gcomhad ar chuir tú in eagar é:

systemctl cat nebula | grep ExecStart
nebula -version
journalctl -u nebula -n 20 --no-pager

Tá tábhacht leis an líne leagain i bhflít mheasctha. Níl láimhseáil relay, iompar punching agus eochracha cumraíochta glactha comhionann thar eisiúintí, mar sin ná glac leis go dtuigeann sean-tógáil roinn nár scríobhadh di. Ailínigh na hóstaigh ar an tsraith mhion chéanna, ritheadh nebula -test -config /etc/nebula/config.yml ar gach óstach ansin agus déan comparáid idir an t-aschur sula ndéanann tú dífhabhtú ar iompar nach gcuireann an cód i bhfeidhm é.

Cumasaigh ról an tseolta ar an óstach relay

Is aon bhratach amháin é ról an relay ar an óstach seolta, agus tá sé scartha ó bheith i do lighthouse. Ní bhíonn in óstach a bhfuil fionnachtain cumasaithe agus seoladh relay díchumasaithe aige ach seirbhís fionnachtain amháin. Ar an relay:

relay:
  am_relay: true

Dearbhaíonn an bhratach sin rún; ní chruthaíonn sí inrochtaineacht. Caithfidh relay a bheith inrochtana ón dá phiaraigh, rud a chiallaíonn go praiticiúil seoladh poiblí, UDP isteach ar an bport Nebula oscailte i mballa dóiteáin an óstaigh agus in aon ghrúpa slándála scamall, agus gan aon NAT dúbailte os a chomhair. Seiceáil an socket ag éisteacht agus féach ansin an dtagann paicéid an phiaraigh isteach:

ss -lunp | grep nebula
tcpdump -ni any udp port 4242 and host 198.51.100.7

Sábhálann dhá theorainn am duit níos déanaí. Ní féidir relay a shroicheadh trí relay eile, mar sin ní thagann slabhra d’ainmneacha relay i gcumraíocht in ionad conair inúsáidte chuig an óstach seolta. Agus seolann relay paicéid ar aghaidh; ní thugann sé cead, socraíonn rialacha isteach an chinn scríbe fós an bhfuil an sruth seolta ceadaithe. Tá an ról agus a chuid riachtanas leagtha amach sa doiciméadú ar chumraíocht an relay.

Fógair an relay ón gceann scríbe, ní ón gcliaint

Seo an t-aisiompú a itheann an t-am is mó. Baineann liosta na relay leis an óstach a bhfuil tú ag iarraidh teacht air, mar insíonn sé do phiaraigh eile cé na relay a fhéadfar a úsáid chun teacht ar an óstach sin. Ní dhéanann cur air an gcliaint a thosaíonn an nasc aon rud don treo a theastaíonn ón gcliaint:

# on the DESTINATION host: relays others may use to reach me
relay:
  relays:
    - 10.42.0.5

Tuairiscíonn piaraigh an liosta sin mar aon lena seoltaí nuair a sheiceálann siad isteach leis an lighthouse, mar sin scaipeann an fhógra tríd an bhfionnachtain seachas trí mhalartú díreach. Mura sroicheann an ceann scríbe aon lighthouse, ní scaipeann a liosta relay choíche agus fanann relay atá cumraithe i gceart díomhaoin. Breathnaíonn an teip sin go beacht cosúil le relay briste agus ní hea.

Tabhair conair tosaithe don cheann scríbe sa bheart céanna. Ceanglaíonn an léarscáil óstach statach seoladh Nebula le críochphointe poiblí ionas go mbeadh áit le dul ag an gcéad handshake, agus teastaíonn iontráil uaithi don relay más rud é go gcaithfidh an ceann scríbe trácht seolta a ghlacadh ó óstaigh nach féidir leis a shroicheadh go díreach:

static_host_map:
  "10.42.0.5": ["203.0.113.10:4242"]

Lig don phiaraigh atá ag nascadh an relay a úsáid

Teastaíonn a chead féin ón taobh tosaigh. Tá relay.use_relays ar siúl de réir réamhshocraithe, mar sin is é an cás is fiú a lorg ná false sainráite, a chóipeáiltear go minic ó theimpléad a scríobhadh sular tháinig an ghné relay chun cinn nó a d’fhág iarracht níos luaithe chun conairí díreacha a fhorchur:

relay:
  use_relays: true

Ní hé an cead ar an taobh seo an t-aon gheata amháin. Baineann rialacha isteach an chinn scríbe leis an bpaicéad seolta fós, agus is é an fhoinse a mheaitseálann siad an fhéiniúlacht laistigh den tollán seachas seoladh an relay féin. Nuair a chríochnaíonn an handshake seolta agus go dteipeann ar an bhfeidhmchlár fós, léigh logar an chinn scríbe don fhoinse a thaifead sé sula ndéanann tú riail a athscríobh.

Idirghníomhaíonn socruithe trasnaithe NAT le gach rud thuas. Cuidíonn punchy.punch le dhá phiaraigh conair dhíreach a oscailt, agus nuair a n-éiríonn leis níl aon trácht relay le breathnú; is éacht é sin, ní relay atá ar iarraidh. Ciallaíonn péire a oibríonn go hacmhainneach go n-éiríonn leis an bpunching uaireanta, mar sin tástáil an péire sin arís agus arís eile seachas conclúid a bhaint as iarracht amháin.

Fíoraigh leis an bpéire ar theip air, agus athlódáil ansin

Tástáil an dá óstach ar theip orthu i ndáiríre, leis an bhfeidhmchlár a theastaíonn uathu. Ní chruthaíonn ping rathúil ó do stáisiún oibre chuig seirbhís an relay féin aon rud faoi sheoladh idir dhá phiaraigh eile, agus is é an fals-phosaitív is coitianta sa nós imeachta seo ar fad é.

journalctl -u nebula -f | grep -iE "relay|handshake"
ping -c 3 10.42.0.9

Athlódáil seachas atosú, agus deimhnigh gur thóg an próiseas atá ag rith an comhad ar chuir tú in eagar é. Tarraingíonn atosú gach tollán anuas agus déanann sé an chéad tástáil eile níos deacra a léamh, ach coinníonn SIGHUP an próiseas agus tugann sé air an chumraíocht a athléamh:

sudo systemctl kill -s HUP nebula
# same signal when nebula runs in the foreground
kill -HUP $(pidof nebula)

Ní oibríonn systemctl reload ach amháin nuair a shainmhíníonn an t-aonad áitiúil ExecReload, agus ní dhéanann an t-aonad a sheoltar leis an tionscadal é sin, mar sin is é systemctl kill -s HUP an chéim a n-éiríonn léi ar shuiteáil chaighdeánach. Tar éis an athlódála, léigh an journal don chonair chumraíochta a d’oscail an próiseas, ionas go mbeidh a fhios agat gur léadh an comhad nua seachas an ceann a cheap tú a bhí lódáilte.

Feidhmíonn socruithe relay agus punching NAT araon ar an gconair; ní fheidhmíonn ceachtar acu ar an bhféiniúlacht. Má theipeann ar an bpéire a handshake fós nuair atá am_relay, relays agus use_relays deimhnithe sa chumraíocht atá ag rith, seiceáil go gcuireann an dá óstach teastais i láthair a eisíodh do na hainmneacha a bhfuil siad cumraithe leo agus go bhfuil an CA mar an gcéanna ar an dá thaobh. Coinnigh cumraíocht na dteastas agus an bhalla dóiteáin seasta agus tú ag athrú socrú iompair amháin ag an am, óir ní insíonn athrú teastais agus athrú relay sa tástáil chéanna aon rud duit faoi cé acu díobh a bhog an handshake. Teipeann ar mhí-chomhoiriúnú ainm nó CA san áit chéanna le relay nár aimsíodh riamh, agus is ar an gcúis sin a bhaineann an frithsheiceáil seo leis an mbeart céanna.

Ansin deimhnigh go bhfuil gach dearbhú sa chomhad dá mbaineann sé:

  • am_relay: true ar an óstach seolta, agus an t-óstach sin inrochtana trí UDP ón dá thaobh.
  • relays: ag ainmniú sheoladh Nebula an óstaigh sin ar an gceann scríbe.
  • use_relays: true ar an bpiaraigh a thosaíonn an nasc.
  • Rialacha isteach ar an gceann scríbe a ligeann don fhíorfhoinse fós tar éis an chonair a athrú.

Ailt ghaolmhara