OpenVPN: staðbundin bind mistekst við ræsingu — bíða eða reyna aftur
Þegar staðbundna vistfangið er ekki komið upp getur OpenVPN ekki bundið sig. Berðu saman takmarkaða bið og endurræsingarstefnu og sjáðu hvers vegna network-online.target er engin trygging.
Fyrir OpenVPN-þjón sem ræsist ekki við ræsingu eru boðnar tvær lausnir: bíða eftir vistfanginu eða láta þjónustuna reyna aftur þar til bindingin tekst. Báðar takast á við sama einkenni með mismunandi hegðun við mistök. Bið kóðar tiltekna forsendu og mistekst hávær þegar hún vantar; endurtekin tilraun felur forsenduna og heldur áfram að reyna. Hvort tilheyrir einingunni þinni fer eftir því hvort vistfangið er hönnuð ósjálfstæði eða tilviljun í tímasetningu.
Báðar eru betri en fast svefn, sem bíður hvorki eftir neinu né segir til um hvað hann beið eftir.
Hvað local-valkosturinn krefst í raun
local nefnir vistfangið sem dæmoninn bindur socket sinn við, og binding við vistfang sem er ekki til enn mistekst samstundis með villu um umbeðið vistfang. Þegar valkosturinn vantar hlustar dæmoninn á öll vistföng, þess vegna virkar sama prófílan á vél þar sem tengið er ekki komið upp: hún hlustar alls staðar í staðinn fyrir eitt vistfangið sem þú nefndir. Sá munur er öll mistökin, og hann er ósýnilegur þar til endurræst er.
Krafan er ekki sú að tengið sé uppi í almennum skilningi. Vistfanginu verður að vera úthlutað á rétta tengið á þeirri stundu sem bindingin fer fram, og það verður að vera undirlagstengið en ekki göng sem sami dæmoninn myndi búa til síðar. Athugun sem gerð er nokkrum mínútum eftir innskráningu sannar ekkert um ræsingarferlið.
Bíða eftir vistfanginu eða reyna bindinguna aftur
Bið þýðir ExecStartPre sem fyrirspyr til að vistfangið birtist, með takmörkuðum fjölda tilrauna og útgöngu sem er ekki núll þegar tíminn rennur út. Endurtekin tilraun þýðir að láta aðalferlið mistakast og biðja þjónustustjórann um að ræsa það aftur, til dæmis Restart=on-failure með RestartSec=5. Hið fyrra tilkynnir vantaða forsendu sem mistekna einingu, en hið síðara tilkynnir hana sem röð endurræsinga sem stöðvast að lokum, sem er hávaðasamara í dagbókinni en lifir af vistfang sem kemur seint af ástæðum sem þú getur ekki séð fyrir.
Veldu bið þegar vistfangið er hönnuð ósjálfstæði, og endurtekna tilraun þegar vistfangið birtist venjulega en tímasetningin er breytileg. Að sameina þau er skynsamlegt: takmörkuð bið nær yfir algenga tilvikið og endurræsingarstefna yfir undantekninguna. Það sem hvorugt á að gera er að keyra að eilífu, því eining sem reynir endalaust aftur felur rangar stillingar í stað þess að tilkynna þær.
Hvers vegna network-online.target nægir ekki
network-online.target lofar því sem virka netútfærslan leggur í online, og engu umfram það. Með systemd-networkd ákveður systemd-networkd-wait-online hvenær þetta markmið er náð, og sjálfgefin hugmynd þess um online getur verið uppfyllt áður en tiltekið vistfang þitt er til. Undir NetworkManager beitir wait-online-þjónustan sínum eigin reglum. Að raða eftir markmiðinu er traustur grunnur, ekki trygging fyrir því að eitt vistfang, DNS-svar eða fjarlægur jafningi sé tilbúinn.
Sama röksemd útilokar venjulegu valkostina. Sjálfræsingarfærsla á skjáborði bíður eftir notendalotu sem kann að opnast aldrei á þjóni, og seinkuð cron-skipun bætir við liðnum tíma án þess að nefna auðlindina sem hún vonaðist eftir að birtist. Báðar geta virst heppnast í marga mánuði og svo mistekist við þá einu ræsingu sem skiptir máli.
Athugaðu bindinguna eftir kalt ræsingu
Staðfestu með raunverulegri kaldri ræsingu en ekki endurræsingu þjónustu, því endurræsing erfir vistfang sem ræsingarferlið varð að búa til. Eftir ræsingu sýnir ss -lntp eða ss -lunp staðbundna vistfangið sem hver hlustandi bindi sig í raun við, og journalctl -b -u openvpn-server@server sýnir hvort fyrsta tilraun mistókst. Berðu bundið vistfang saman við það sem er í prófílnni og endurtaktu svo samanburðinn eftir endurtengingu við netið.
Ef prófílan þurfti aldrei fast vistfang er að fjarlægja local lögmælt einföldun, en gerðu það að öryggisákvörðun frekar en vana við bilanaleit.
Að víkka hlustandann breytir því hver getur náð til hans, svo tengdu þá breytingu við eldveggsstefnuna sem átti að takmarka hann. Þjónusta sem ræsist áreiðanlega á hverju tengi hefur ekki leyst upprunalega vandamálið; hún hefur fært vandamálið út á jaðar netsins.